Está en la página 1de 46

11.

Procesamiento de Seales
Procesamiento de seales analgicas
tiempo continuo
transformadas continuas (Fourier, Laplace)
filtros implementados en base a funciones
matemticas: Butterworth, Chebyshev, Elpticos
filtros implementados: pasivos, activos, activos
sin L, capacitores conmutados
circuitos aritmticos analgicos (sumadores,
multiplicadores)
11. Procesamiento de Seales
Procesamiento de seales de tiempo
discreto (procesamiento digital de seales)
tiempo discreto
transformadas discretas (Fourier, Z)
Filtros: IIR y FIR
IIR: basados en un filtro prototipo
analgico y una transformacin AD
FIR: basados en la aproximacin a una
funcin de transferencia pasabajas ideal
11. Procesamiento de Seales
Requieren circuitos aritmticos digitales:
sumadores, multiplicadores, registros,...
Sistemas implementados:
software: c, c++, matlab
hardware: procesadores, DSPs, FPGAs
software/hardware

11. Procesamiento de Seales
Procesamiento Digital de Seales y:
Teora de comunicaciones
Teora de control
Teora de informacin
Probabilidad y estadstica
Electrnica analgica
Electrnica digital
Anlisis numrico
11. Procesamiento de Seales
Seal: cualquier variable o cantidad que lleva
algn tipo de informacin que puede ser
tranformada o manipulada
Seales de inters:
voz
biomdicas
audio
video, imgenes
radar
11. Procesamiento de Seales
Ventajas del procesamiento digital:

Exactitud garantizada
Reproductibilidad perfecta
No dependencia de parmetros fsicos (temp.)
Gran flexibilidad (reprogramabilidad)
Rendimiento superior
11. Procesamiento de Seales
Desventajas:

Velocidad y costo

Tiempo de diseo

Longitud de palabra finita

11. Procesamiento de Seales
reas de aplicacin:
Procesamiento de imgenes
reconocimiento de patrones
visin de robots
animacin
enriquecimiento de imgenes
imgenes por satlite
11. Procesamiento de Seales
Instrumentacin/Control
anlisis espectral
control de posicin
reduccin de ruido
compresin de datos

11. Procesamiento de Seales
Voz/Audio
reconocimiento de voz
sntesis de voz
text to espeech
audio digital
ecualizacin
11. Procesamiento de Seales
Militares
comunicaciones seguras
radar
sonar
gua de misiles
11. Procesamiento de Seales
Telecomunicaciones
cancelacin de eco
ecualizacin adaptiva
espectro disperso
video conferencias
comunicaciones de datos
11. Procesamiento de Seales
Biomedicina
monitoreo de pacientes
scaners
EEG
ECG
almacenamiento/enriquecimiento de
rayos x
11. Procesamiento de Seales
En MATLAB:

Toolbox Signal
Otros Archivos-m
Blockset dspblks
11. Procesamiento de Seales
Representacin de seales
Seales de tiempo continuo: muestras de ellas,
suficientemente cercanas (razn de Nyquist)
Graficar 5 periodos de una seal senoidal de
amplitud 1 y frecuencia 20 Hz
a) Graficar 10 puntos
b) Graficar 20 puntos
c) Graficar 150 puntos

11. Procesamiento de Seales
Seal senoidal de 20 Hz y amplitud 1. N es el
nmero de muestras a graficar

N=10;
t=0:0.05/N:0.25;
y=sin(2*pi*20*t);
plot(t,y)
11. Procesamiento de Seales
MATLAB es ideal para seales y sistemas de
tiempo discreto
Para seales y sistemas de tiempo continuo se
tienen que tomar muestras
Cada seal para que est representada requiere
de dos vectores:
valores de los elementos
tiempos a que corresponden los
elementos
11. Procesamiento de Seales
Aqu se muestran algunas secuencias comunes:
Vector de tiempos: t = (0:.001:1)';
Impulso unitario: y = [1; zeros(99,1)];
Escaln: y = ones(100,1);
Rampa: y = t;
Cuadrado: y = t.^2;
Onda cuadrada: y = square(4*t);
11. Procesamiento de Seales
Formas de onda comunes
sawtooth: diente de sierra
square: cuadrada
Ejemplo. 1.5 seg. De una onda cuadrada de 50 Hz
con una razn de muestreo de 10 KHzTo
Fs = 10000;
t = 0:1/Fs:1.5;
x = sawtooth(2*pi*50*t);
plot(t,x), axis([0 0.2 1 1])
11. Procesamiento de Seales
Funciones para generar formas de onda
aperidicas:

gauspuls: genera un pulso senoidal modulado con
una gausiana,
chirp genera una seal coseno barrida en la
frecuencia
11. Procesamiento de Seales
Ejemplo: 2 segundos de una seal lineal chirp
con una razn de muestreo de 1KHz que
comienza en DC y termina en 150 Hz en un
segundot = 0:1/1000:2;

y = chirp(t,0,1,150); % Plot the spectrogram
specgram(y,256,1000,256,250)
Frequency

11. Procesamiento de Seales
Un filtro digital es un sistema lineal e invariante en
el tiempo (LTI) cuya salida es obtenida al
atenuar selectivamente componentes de
frecuencia, tanto de magnitud como de fase
La salida y(n) de un filtro digital est relacionada
con su entrada x(n) por la convolucin de sta
con la respuesta al impulso h(n) del filtro:

y(n)=x(n)*h(n)
11. Procesamiento de Seales
Si h(n) es de longitud finita, se dice que es un
filtro FIR (finite impulse response).
Si h(n) es de longitud infinita, se dice que es un
filtro IIR (infinite impulse response).

Si tanto la respuesta al impulso como h(n) como
la seal de entrada x(n) son finitas, entonces el
filtro se puede implementar usando la funcin
conv
11. Procesamiento de Seales




Sacando la transformada Z
) ( ) (
) ( ) ( ) (
n h n x
k
k n h k x n y
- =

=
=
na
z na a z a a
nb
z nb b z b b
z H z X z Y

+ + +

+

+ + +

+
=
=
) 1 (
1
) 2 ( ) 1 (
) 1 (
1
) 2 ( ) 1 (

) ( ) ( ) (
11. Procesamiento de Seales






Y(Z), X(Z) y H(Z) son las transformadas Z de y(n), x(n)
y h(n), respectivamente
H(z) es la funcin de transferencia del filtro
b(i) y a(i) son los coeficientes del filtro

) (
) 1 (
1
) 2 ( ) 1 (
) 1 (
1
) 2 ( ) 1 (

) ( ) ( ) (
z x
na
z na a z a a
nb
z nb b z b b
z H z X z Y

+ + +

+

+ + +

+
=
=
11. Procesamiento de Seales
Ejemplo:

x = randn(5,1); % vector aleatorio de longitud 5
h = [1 1 1 1]/4; % respuesta al impulso del filtro
y = conv(h,x); % seal filtrada

11. Procesamiento de Seales
La funcin de transferencia de un filtro digital
tiene la forma:




En MATLAB, un filtro se representa por medio de
sus coeficientes:
B=[b(1) b(2) ... B(nb+1)];
A=[a(1) a(2) ... A(na+1)];
na
z na a z a a
nb
z nb b z b b
z X
z Y
z H

+ + +

+

+ + +

+
=
=
) 1 (
1
) 2 ( ) 1 (
) 1 (
1
) 2 ( ) 1 (

) (
) (
) (
11. Procesamiento de Seales
Con la funcin filter es fcil implementar un
filtro.
Esta funcin implementa la funcin de
diferencias:

y(n)+a(2)y(n-1)+...+a(na+1)y(n-na)=
b(1)x(n)+b(2)x(n-1)+...+b(nb+1)x(n-nb)

la cual se puede obtener de la funcin de
transferencia H(z)
11. Procesamiento de Seales
Por ejemplo: un filtro pasabajas es:
b = 1; % numerador
a = [1 0.9]; % denominador
los vectores b y a contienen a los coeficientes del
filtro en su forma de funcin de transferencia
y = filter(b,a,x);
se obtiene el mismo nmero de muestras de salida que
de entrada (length(y)==length(x))
si el primer elemento de a no es 1, filter divide los
coeficientes de a por a(1) para implementar la ecuacin
de diferencia
11. Procesamiento de Seales
Para implementar un filtro se requiere de una
estructura

11. Procesamiento de Seales
Respuesta al impulso
Es la salida de un sistema cuando la entrada es
un impulso unitario
En MATLAB, se pueden generar impulsos de varias
maneras: imp = [1; zeros(49,1)];
Si se tiene el filtro con b = 1 a = [1 0.9], su
respuesta al impulso es:
h = filter(b,a,imp);
O, se puede usar la funcin de MATLAB
impz(b,a)
11. Procesamiento de Seales
Dominio de la frecuencia
Se usan las transformadas discretas
Fourier:
transformada de Fourier de tiempo
discreto
transformada discreta de Fourier (DFT)
transformada rpida de Fourier (FFT)
Transformada z
11. Procesamiento de Seales
Las transformadas junto con las transformadas
inversas proporcionan la relacin entre la
representacin en el dominio del tiempo y de la
frecuencia.
Los dos dominios proporcionan informacin
complementaria de los mismos datos
En algunas aplicaciones suele usarse ms la
informacin de un dominio que del otro
En filtrado es particularmente til la informacin
en el dominio de la frecuencia
11. Procesamiento de Seales
La transformada de Fourier de tiempo
discreto de la seal x(n):


produce el espectro X(w) de x(n)
si x(n) es peridica ---> serie de Fourier y el
espectro es discreto
si x(n) es no peridica ---> transf. de Fourier y
el espectro es continuo

n j
e
n
n x
j
e X
e e

=
= ] [ ) (
11. Procesamiento de Seales
En la mayora de las aplicaciones x(n) es no
peridica ---> espectros continuos:
Los espectros continuos no se pueden
representar exactamente en una computadora
digital
Solo se pueden representar por medio de sus
muestras adecuadamente espaciadas
La transformada de Fourier de tiempo discreto
no se puede implementar en una computadora
digital. Entonces se desarrolla:
11. Procesamiento de Seales
La transformada discreta de Fourier (DFT)
de x(n) es:




Son N muestras del espectro original que es
continuo
Son muestras para valores discretos de
frecuencia
1 ,... 1 , 0 , ] [
| ) ( ) (
/ 2
1
0
/ 2
= =
=

=
=

N k e n x
e X k X
N k
N
n
N k
j
t
t e
e
11. Procesamiento de Seales
El nmero mnimo de muestras es N (que es el
nmero de muestras de la seal de tiempo
discreto)
Para obtener una buena representacin del
espectro real, es necesario tener un nmero
suficiente de muestras, normalmente un nmero
mayor que N
Como el clculo de la DFT involucra muchas
multiplicaciones, es computacionalmente
costoso. Se desarroll la:
11. Procesamiento de Seales
La transformada rpida de Fourier (FFT)
es un algoritmo que implementa la DFT
es muy eficiente, reduce el nmero de
operaciones aritmticas
usa el hecho de que la DFT tiene simetras
existen varios algoritmos
En MATLAB la funcin que realiza la FFT es fft,
mientras que ifft implementa la transformada
rpida inversa
11. Procesamiento de Seales
Respuesta en frecuencia
La respuesta en frecuencia del filtro con funcin
de transferencia H(z) es:



La funcin freqz usa un algoritmo basado en
FFT based algorithm para calcular la respuesta
en frecuencia de un filtro digital
e e
e e
e
j
e na a
j
e a a
j
e nb b
j
e b b j
e H

+ + +

+

+ + +

+
=
) 1 ( ) 2 ( ) 1 (
) 1 ( ) 2 ( ) 1 (
) (
11. Procesamiento de Seales
La sentencia: [h,w] = freqz(b,a,n)

regresa n puntos de la respuesta en frecuencia
compleja del filtro digital

regresa el vector h de respuesta en frecuencia
compleja y el vector w de frecuencias en
rad/seg
11. Procesamiento de Seales
Ejemplo: Se encuentran 256 puntos de la
respuesta en frecuencia de un filtro Chebyshev
de orden 12. Se usa en freqz una frecuencia de
muestreo de 1000 Hz

[b,a] = cheby1(12,0.5,200/500);
[h,f] = freqz(b,a,256,1000);
11. Procesamiento de Seales
Normalizacin en frecuencia
Normalmente se usa la convencin de que la
frecuencia unitaria es la frecuencia de Nyquist
La frecuencia de Nyquist se define como la
mitad de la frecuencia de muestreo
La frecuencia de corte de los filtros es
normalizada por la frecuencia de Nyquist
As, para un sistema con una frecuencia de
muestreo de 1000Hz, la frecuencia 300 Hz es
300/500 = 0.6 (frecuencia normalizada)
11. Procesamiento de Seales
Magnitud y Fase
La respuesta en frecuencia de sistemas como los
filtros suelen ser cantidades complejas
Para analizar su comportamiento es necesario
graficar la respuesta en frecuencia
Lo que se hace es observar una cantidad real: la
magnitud de la respuesta en frecuencia y su
fase
Para ello se usan las funciones abs y phase
11. Procesamiento de Seales
Ejemplo: Filtro Butterworth

[b,a] = butter(6,300/500);
[h,w] = freqz(b,a,512,1000);
m = abs(h);
p = angle(h);
semilogy(w,m);
plot(w,p*180/pi)

11. Procesamiento de Seales
Obtencin de los coeficientes de filtros
digitales
En MATLAB existen las funciones:
buttord, butter
cheb1ord, cheby1
cheb2ord, cheby2
ellipord, ellip
fir1, fir2
remezord, remez
11. Procesamiento de Seales
Al trabajar con frecuencias normalizadas, el rango
de frecuencias para los filtros digitales queda
restringido al rango:
0<w<2o, o -o<w< o, en radianes/muestra

También podría gustarte