Escolar Documentos
Profissional Documentos
Cultura Documentos
AREQUIPA PER
2012
Ventajas
Desventaja
x(t)
y(t)
Filtro
Analgico
x(t)
y(t)
t
Ecuacin diferencial
y t c1
d y t
dt
c N
d N y t
dt
d 0 x t d1
d xt
dt
d M
Funcin de transferencia
H s
Y s
X s
d 0 d1 s d M s M
1 c1 s c N s N
2
d M xt
dt
y t x h t d
Respuesta en frecuencia
H j
0
Sistema de tiempo discreto
x[n]
Filtro
Digital
x[n]
y[n]
y[n]
Y z b0 b1 z 1 bM z M
H z
X z 1 a1 z 1 a N z N
y n x m h n m
m
Respuesta en frecuencia
H e j
Conocimientos previos
Fundamentos de clculo. Algebra de nmeros complejos. Anlisis de Fourier de
tiempo continuo. Filtros analgicos. Programacin en MATLAB.
Bibliografa
[1] OPPENHEIM A. V., SCHAFER R.W. Segunda Edicin.
Tratamiento de Seales en Tiempo Discreto.
Prentice Hall Iberia, Madrid, 2000
[2] PROAKIS J. G., MANOLAKIS D. G. Tercera Edicin.
Tratamiento Digital de Seales. Principios, algoritmos y aplicaciones.
Prentice Hall, Madrid, 1998
[3] LI TAN.
Digital Signal Processing. Fundamentals and Applications.
Elsevier, DeVry University, Decatur, Georgia, 2008
[4] MARIO ACEBAL J. B. Segunda Edicin.
Tratamiento Digital de la Seal. Una introduccin experimental
Alfaomega, Mxico, 1999
x(t)
Filtro
Antisolapamiento
Sensor
x[n]
xc(t)
y[n]
DAC
DSP
ADC
yc(t) Filtro de
Reconstruccin
x[n]
xc(t)
Sistema de
Tiempo Discreto
C/D
y[n]
yc(t)
D/C
xs(t)
Conversor de Tren de
Impulsos Ponderados a
Secuencia
s(t)
Dominio Temporal
st
t n T
x s t x c t s t
x[n]
yr(t)
x s t x c t t n T
n
x s t x c nT t n T
n
x s t x n t n T
n
Dominio Frecuencial
S j
2
2
k T
T k
X s j
1
X c j S j
2
1
2
X s j
X c j k T ;
T k
s 2
T
1
X s j
X c j k s
T k
-S
X S j
-2S
-S
0
6
2S
Filtro Antisolapamiento
xc(t)
Filtro
xa(t)
Antisolapamiento
Sistema de
Tiempo
Discreto
x[n]
C/D
y[n]
yc(t)
D/C
Haa(j)
T
Ejemplo 1
La frecuencia de muestreo es 40 kHz. El filtro anti-solapamiento usado es un filtro de
Butterworth pasa-bajas con frecuencia de corte de 8 kHz. El nivel de solapamiento
en la frecuencia de corte debe ser 1%. Determine el orden del filtro antisolapamiento.
Para el filtro de Butterworth la magnitud de la respuesta en frecuencia es:
| (
)|
( )
H j
-S
( )
(
n
1
2
3
4
Nivel de solapamiento (%) 34.30 8.82 2.21 0.55
[n]
1
Escaln unitario
u[n]
1
...
Secuencia exponencial
x n A n , n ; A, R;
0 1
A, 0
x[n]
0
x[n]
Secuencia senoidal
x n Asen0n , n
x[n]
Operaciones bsicas
Sean x1 n y x2 n dos secuencias,
Adicin :
y n x1 n x2 n
y n x1 n x2 n
y n x2 n
y x1 n x2 n
x1 n x2 n
n
Desplazamiento :
nd 0 y n x1 n nd
x1[n]
n
x1[n - nd]
0
x1[n + nd]
Ejemplo 2
Dadas las secuencias x1 n y x2 n , escribir un programa en MATLAB para
determinar y graficar:
a) La secuencia x3 n que es la suma de las secuencias x1 n , x2 n .
b) La secuencia x4 n como el producto de las secuencias x1 n , x2 n .
x2[n]
%************************************************
%
Programa Matlab para el Ejercicio 1
%************************************************
% Reinicializar el ambiente
clear; clf;
% Generar las secuencias
x1=[0 0 0 1 2 3 4 3 2 1 0 0 0];
x2=[0 0 4 3 2 1 0 0 0 0 0 0 0];
% a) Adicion
x3=x1+x2;
% b) Multiplicacion
x4=x1.*x2;
% c) Dezplazamiento a la izquierda en 2 posiciones
x5=zeros(1,13);
nd=2;
x5(1:13-nd)=x1(nd+1:13);
%for m=1:13-nd
% x5(m)=x1(m+2);
%end;
% Graficar x1,x2,x3
subplot(3,1,1);
stem([-6:6],x1);
ylabel('x1'); xlabel('n');
subplot(3,1,2);
stem([-6:6],x2);
ylabel('x2'); xlabel('n');
subplot(3,1,3);
stem([-6:6],x3);
title('Adicion'); ylabel('x3'); xlabel('n');
pause;
% Graficar x1,x2,x4
subplot(3,1,3);
stem([-6:6],x4);
10
Relaciones importantes
u n
n u n u n 1
Toda secuencia puede ser expresada como una suma ponderada de impulsos
unitarios :
xn
x m n m
n1 / x n 0, n n1
y n2 / x n 0, n n2
n2
n1
n1 / x n 0, n n1
y n2 / x n 0, n n2
...
n
n1
b) Secuencia izquierda
n1 / x n 0, n n1
y n2 / x n 0, n n2
...
11
n2
c) Secuencia bilateral
n1 / x n 0, n n1
y n2 / x n 0, n n2
...
...
Secuencia peridica
xn es peridica N / xn xn N n
2
0
2 k
N
N 8 . En cambio, la
j 0 n
12
x n
T
Ejemplo. Sistema de diferencia regresiva
y n x n x n 1
x[n]
-2 -1 0 1 2
y[n]
-1 0
Tipos de sistemas
Sistema causal
La salida depende de valores pasados y/o del valor presente de la entrada.
Sistema no causal
La salida depende de valores futuros.
Ejemplo. Sistema de diferencia progresiva:
y n x n 1 x n
Sistema estable.
A toda secuencia limitada de entrada le corresponde una secuencia limitada de
salida.
Lx x n Lx , n Ly y n Ly , n
Sistema inestable
Por lo menos, a una secuencia limitada de entrada le corresponde una secuencia
ilimitada de salida.
Ejemplo. Sistema acumulador :
y n
x k
13
Sistema lineal
Sistema que cumple con el principio de superposicin.
T ax1 n bx2 n aT x1 n bT x2 n
T x n y n T x n nd
yn n
d
x mh n m
y n
Sistema FIR : h n tiene extensin finita
y n
h n
y n
x m h n m
Ejemplo 3
La secuencia x n es aplicada a la entrada de un sistema LTI. Encontrar la
secuencia de salida, si la respuesta del sistema al impulso unitario es h n .
h[n]
x[n]
4
3
2
Convolucin lineal
Es la operacin efectuada sobre secuencias :
x1 n x2 n
En sistemas LTI tenemos : y n x n h n
x m x n m
14
Propiedades de la convolucin
Conmutativa
Asociativa
Distributiva
h1 n
h1 n h2 n
h1 n h2 n
+
h2 n
Secuencia de salida:
yn xn* hn ;
yn xr n rL * hn xr n rL* hn;
r 0
r 0
Bloque de salida: y r n x r n * h n
L P 1
yn y r n rL
r 0
a yn k b xn r
Si hacemos a0 1
k 0
r 0
y n b0 x n b1 x n 1 ...b M x n M
a1 y n 1...a N y n N
15
2
xn 1 2 yn 1 yn 2
2
hallar la salida si xn n, si las condiciones iniciales son: y 1 0 , y 2 0
Solucin:
y0
y1
y2
y3
y4
y5
2
0
2
2
1
2
2
0
2
2
0
2
2
0
2
2
0
2
2 00 0
2
2
2 00
2
0 1
2
2
2
2 1
2
2
2
2
1 0
2
2
2
2 0
2
2
2
yn 2
xn 1 2 yn 1 yn
2
2
ym
xm 1 2 ym 1 ym 2
2
2
yn
xn 1 2 yn 1 yn 2
2
2
2
y 3
x 2 2 y 2 y 1
0 2 00 0
2
2
2
b 0 x n b1 x n 1 ... b M x n M
(1)
a 1 y n 1 ... a N y n N
Despejamos y n N :
b0
y n N
aN
1
aN
x n
y n
b1
aN
a1
aN
x n 1 ...
y n 1 ...
bM
aN
a N 1
aN
x n M
y n N 1
(2)
(2)
Condiciones
iniciales
16
(1)
h n
Suficiencia
Demostraremos que, si
Sea x n acotada, x n Lx .
Luego,
y n
x k h n k
x n k h k x n k h k Lx h k
y n Lx h k
Si
h n entonces y n es acotada. En
n
.
consecuencia, el sistema es estable.
Necesidad
Demostraremos que, si
Sea x n definida por:
h n , si h n 0
x n h n
si h n 0
0,
x n es acotada, ya que x n 1.
La salida es: y n
Para
x k h n k
n 0 , tenemos:
y 0 x k h k =
k
h k
k h k
h k =
h 2 k
k h k
y 0 h k
k
Si
h n , entonces h k .
Ejemplo 5
La secuencia
1, 0 n 10,
x n
c. c.
0,
1 n , n 0
h n 2
.
0,
c. c.
%****************************************************
%
Programa para el Ejercicio 2 a)
%****************************************************
% Reinicializar el ambiente
clear; clf
% Formar la secuencia de salida con 20 muestras
y0_9=2-(1/2).^[0:9];
y10_19=((2^10)-1)*((1/2).^[10:19]);
y=[y0_9 y10_19];
% Graficar la secuencia de salida
stem([0:19],y);
title('Secuencia de salida');
ylabel('y[n]'); xlabel('n');
%*****************************************************
%
Programa para el Ejercicio 2 b)
%*****************************************************
% Reinicializar el ambiente
clear; clf
% Formar la secuencia de entrada
x=[ones(1,10) zeros(1,10)];
% Formar la respuesta al impulso
h=[(1/2).^[0:19]];
% Efectuar la convolucion
yy=conv(x,h);
% Tomar 20 muestras de la secuencia de salida
y=yy(1:20);
% Graficar x,h,y
subplot(3,1,1);
stem([0:19],x);
grid; title('Secuencia de entrada');
ylabel('x[n]'); xlabel('n');
subplot(3,1,2);
18
stem([0:19],h);
grid; title('Respuesta al impulso');
ylabel('h[n]'); xlabel('n');
subplot(3,1,3);
stem([0:19],y);
grid; title('Secuencia de salida');
ylabel('y[n]'); xlabel('n');
Ejemplo 6
Escriba un programa en MATLAB para efectuar las siguientes tareas :
a) Generar una secuencia senoidal x n de 50 muestras con frecuencia 2 25
rad/muestra.
b) Obtener una secuencia x1 n adicionando a la secuencia inicial un ruido
aleatorio uniformemente distribuido en el intervalo -0,25 a 0,25.
c) Obtener la secuencia y n recursivamente filtrando la secuencia x1 n con un
sistema promedio mvil de tamao 5.
%****************************************************
%
Programa para el Ejercicio 3
%****************************************************
% Reinicializar el ambiente
clear; clf
% Formar la secuencia de entrada
N=50;
x=sin(2*pi*[0:N-1]/25);
% Formar la secuencia con ruido aditivo
x1=x+0.5*(rand(1,N)-0.5);
% Calcular la secuencia de salida para el sistema de
% promedio movil de tamano 5
for n=1:N
y(n)=mean(x1(max(n-4,1):n));
end;
% Graficar las secuencias
subplot(3,1,1);
stem([0:N-1],x);
grid; ylabel('x[n]'); xlabel('n');
subplot(3,1,2);
stem([0:N-1],x1);
grid; ylabel('x1[n]'); xlabel('n');
subplot(3,1,3);
stem([0:N-1],y);
grid; ylabel('y[n]'); xlabel('n');
19
Correlacin cruzada
Para las secuencias x n e y n , la secuencia
r xy n x k n y k
r xy n x k y k n
k
r yx n y k x k n =
k
y k n xk
Se cumple que r xy n r yx n .
r xy n x k y k n podemos escribir r xy n x n y n
k
Autocorrelacin
x=[ 4 2 1 0];
y=[-1 -1 1 1];
Rxy=xcorr(x,y)
Ryx=xcorr(y,x)
Rxx=xcorr(x)
Ryy=xcorr(y)
M
1
xk xk n
M 2 M 1 k M
r xx n lim
y n x n w n
x n es una secuencia peridica con periodo desconocido N ,
w n es un ruido aleatorio.
1 M 1
y k y k n =
M k 0
1 M 1
x k w k x k n w k n =
M k 0
1 M 1
1 M 1
xk xk n +
x k w k n +
M k 0
M k 0
1 M 1
1 M 1
+
w k x k n +
w k w k n =
M k 0
M k 0
= r xx n r xw n rwx n rww n
Ejemplo 7
Escriba un programa en MATLAB que realice las siguientes tareas:
a) Genere la seal [ ]
(
)
(
) con 500 muestras.
b) Forme la seal [ ] adicionando a [ ] un ruido aleatorio, uniformemente
distribuido, con amplitud 1 y una media de 0.
c) Calcule [ ] como la autocorrelacin peridica de [ ].
[ ] como la autocorrelacin peridica de [ ].
d) Halle
[ ], determine el periodo de [ ].
e) A partir de
f) Forme un tren de impulsos [ ] con el periodo encontrado.
[ ] como la correlacin cruzada peridica de [ ] con el tren
g) Determine
de impulsos.
[ ] como la auto-correlacin peridica de
[ ].
h) Determine
21
%********************************************
% Aplicacion de la correlacion en la
% identificacion de una seal peridica
% oculta en una seal con ruido
%********************************************
close all; clear all;
N=500;
n=[0:N-1];
x=0.5*cos((pi/26)*n)+0.5*cos((pi/13)*n);
w=2*(rand(1,N)-0.5);
y=x+w;
Rx=xcorr(x,'biased');
Ry=xcorr(y,'biased');
RRy=xcorr(Ry,'biased');
%Determinamos el periodo
[max1,pos1] = max(RRy)
[min2,pos2] = min(RRy(pos1+1:length(RRy)))
[max3,pos3] = max(RRy(pos1+pos2+1:length(RRy)))
periodo=pos2+pos3
% Formamos el tren de impulsos
s=zeros(1,length(y));
m=1;
while m<length(y)
s(m)=1;
m=m+periodo;
end
% Hallamos la correlacin de y con el tren de impulsos
Rys=periodo*xcorr(y,s, 'biased');
RRys=8*xcorr(Rys,'biased');
% Graficamos
subplot(311);
plot(n,x);grid;
title('Secuencia original');
subplot(312);
plot(n,y);grid;
title('Secuencia con ruido');
subplot(313);
stem(n,s);grid;
title('Tren de impulsos');
pause;
NRx=length(Rx);
nRx=[0:NRx-1]-((NRx-1)/2);
subplot(311);
22
plot(nRx,Rx);grid;
title('Rx - Autocorrellacion de x ');
NRy=length(Ry);
nRy=[0:NRy-1]-((NRy-1)/2);
subplot(312);
plot(nRy,Ry);grid;
title('Ry - Autocorrellacion de y ');
NRRy=length(RRy);
nRRy=[0:NRRy-1]-((NRRy-1)/2);
Ninicio=((NRRy-1)/2)-((NRy-1)/2);
Nfin=((NRRy-1)/2)+((NRy-1)/2);
subplot(313);
plot(nRy,RRy(Ninicio:Nfin));grid;
title('RRy - Autocorrelacion de Ry');
pause;
subplot(311);
plot(n,x);grid;
title('Secuencia original');
subplot(312);
NRys=length(Rys);
Ninicio=(NRys-1)/2;
plot(Rys(Ninicio:Ninicio+N-1));grid;
title('Rys - Correlacion cruzada de y con el tren s');
subplot(313);
NRRys=length(RRys);
Ninicio=(NRRys-1)/2;
plot(RRys(Ninicio:Ninicio+N-1));grid;
title('RRys - Autocorrelacion de Rys');
23
1
0.5
0
-0.5
-1
50
100
150
200
250
300
350
400
450
500
300
350
400
450
500
300
350
400
450
500
100
200
300
400
500
100
200
300
400
500
100
200
300
400
500
300
350
400
450
500
300
350
400
450
500
300
350
400
450
500
50
100
150
200
250
Tren de impulsos
0.5
50
100
150
200
250
Rx - Autocorrellacion de x
0.6
0.4
0.2
0
-0.2
-500
-400
-300
-200
-100
0
Ry - Autocorrellacion de y
0.6
0.4
0.2
0
-0.2
-500
10
x 10
-400
-300
-200
-100
-3
0
RRy - Autocorrelacion de Ry
5
0
-5
-500
-400
-300
-200
-100
Secuencia original
1
0.5
0
-0.5
-1
50
100
150
200
250
50
100
150
200
250
RRys - Autocorrelacion de Rys
1
0.5
0
-0.5
50
100
150
200
250
24
5. La Transformada Z
Clculo por medio de transformadas
La secuencia exponencial compleja: x n z n
se llama auto secuencia porque:
zn
y n =
A z n
h k x n k =
h k z n k =
h k z k
n
z
H z = h k z k
k
y n = H z z n
H z es el autovalor, se llama funcin de transferencia del sistema y es la
transformada Z de la respuesta al impulso
El clculo de la salida se puede hacer como sigue:
x[n]
X(z)
h[n]
H(z)
Y(z)
y[n]
x [n]
h [n]
Transformada Z directa :
X z
xnz
Transformada Z inversa :
xn
1
X z z n 1dz
2j C
25
y [n]
Ejemplo 8
x [n]
3
1
X z x0 z x1 z x2 z 2 x3 z 3
0
2 z 0 1 z 1 3 z 2 2 z 3
X z 2 z 1 3 z 2 2 z 3
Se debe indicar la regin de convergencia (RC).
RC: Plano z completo excepto z = 0
Ejemplo 9
x [n]
8
xn un
9
...
Solucin:
8
X z unz n
n 9
1
8
1 z 1
9
1
X z
8
1 z 1
9
1
1
Im{z}
8 1
z 1
9
RC : z
8
9
8
9
RC
n 0
8
z n
n 0 9
8
z 1
n 0 9
26
Re{z}
Ejemplo 10
Encontrar la secuencia cuya transformada Z es :
X z
1
z
1
2
RC : z
1
2
Solucin
X z
1
1 z
1
1 12 z 1
1
2
xn
z 1
a n u n
12 n u n
1
1 az
,z a
xn n d X z z nd
12 n1 u n 1
Ejemplo 11
Hallar la transformada z inversa de la funcin
( )
Im z
| |
12
Re z
2
RC
( )
(
(
(
)(
)
)
( )
( )
( )
[ ]
[ ]
[ ]
( )
[ ]
Ejemplo 12
Hallar la respuesta al impulso del sistema causal con funcin de transferencia
( )
Haga la expansin en fracciones parciales mediante la funcin residuez del MATLAB.
27
Solucin
Corremos el programa
b =[1
-1
-6];
a =[1 -1.5
-1];
[R,P,K]=residuez(b,a)
En la ventana de comandos del matlab obtenemos:
R =
-0.8000
-4.2000
P =
2.0000
-0.5000
K =
6
( )
Luego,
[ ]
( ) [ ]
(
) [ ]
Por tanto, [ ]
X z
1
1 az
RC : z a
Solucin
az 1 1
1 a 1 z
a 1 z a 2 z 2 a 3 z 3
a 1 z
a 1 z a 2 z 2
a 2 z 2
a 2 z 2 a 3 z 3
a 3 z 3
n m
X z a 1 z a 2 z 2 a 3 z 3 a m z m ,
m1
X z
z
1
a
z n
n 1
x n a n u n 1
28
z 0 RC
Si z z 0
Secuencia izquierda :
z 0 RC
Si z z 0
z RC
z RC
pk RC
RC : z max pk
Im{z}
Re{z}
...
n
n1
RC
Secuencia izquierda
RC : z min pk
Im{z}
Re{z}
}
...
Secuencia bilateral
...
n2
RC
n
Im{z}
...
Re{z}
RC
29
Funcin de Transferencia
Transformada Z de su respuesta impulsional
H z Z hn
A partir de la LCCDE
Y z b0 b1 z 1 bM z M
H z
X z 1 a1 z 1 aN z N
H z
B(z) y A(z)
B z
Az
Estabilidad
hn
hnz n
z 1
Im{z}
La RC de la funcin de transferencia de un
sistema estable contiene a la circunferencia de
radio unitario
Re{z}
RC
Causalidad
La RC de la funcin de transferencia de un sistema causal es el exterior de una
circunferencia y contiene al punto z = .
Im{z}
Re{z}
RC
30
Ejemplo 13
Un sistema LTI causal tiene funcin de transferencia :
3 4 z 1
H z
1 3.5 z 1 1.5 z 2
1) Determine manualmente la RC y la respuesta impulsional.
Es estable el sistema?
2) Compruebe los resultados anteriores usando MATLAB
Solucin
3 1 43 z 1
3z z 43
3 4 z 1
H z
Ceros :
Im{z}
Polos :
La RC es :
0.5 4/3
Re{z}
RC
No es estable el sistema.
( )
)(
( )
[ ]
[ ]
( )
[ ]
%************************************************
% Determinar el diagrama de polos y ceros
% y la respuesta impulsional
% de un sistema de tiempo discreto
%************************************************
% Reinicializar el ambiente
close all; clear all;
% Funcion de Transferencia
31
B = [3 -4
0 ];
A = [1 -3.5 1.5];
% Diagrama de polos y ceros
ceros=roots(B)
polos=roots(A)
zplane(B,A); grid;
pause;
% Respuesta impulsional
[h,n]=impz(B,A);
subplot(2,1,1);
stem(n,h);
grid; ylabel('h[n]'); xlabel('n');
title('Respuesta Impulsional segun impz');
% Respuesta impulsional analitica
%n=[0:11];
hh=((1/2).^(n))+2*((3).^(n));
subplot(2,1,2);
stem(n,hh);
grid; ylabel('hh[n]'); xlabel('n');
title('Respuesta Impulsional analitica');
1.5
0.5
Imaginary Part
0
-0.5
-1
-1.5
-1
-0.5
0.5
1
Real Part
32
1.5
2.5
ceros =
0
1.3333
polos =
3.0000
0.5000
x 10 5
3
h[n]
2
1
0
0
4
x 10 5
6
8
n
Respuesta Impulsional analitica
10
12
10
12
3
hh[n]
2
1
0
0
6
n
33
X e j X z z e j
Im{z}
z e j ,
x[n] e
X e
Re{z}
jn
Existencia de la DTFT
Condicin suficiente:
Si la secuencia es absolutamente sumable, la DTFT existe.
Es decir, si
x n , la DTFT existe.
La DTFT inversa
xn
1
X e
2
e jn d
Ejemplo 14
Determinar la DTFT de la secuencia impulso unitario x n n .
Solucin:
X e j n e jn 1
n
X e j
[n
]1
Ejemplo 15
( )|
34
[ ]
-1.5
-1
-0.5
0.5
1.5
0.5
1.5
Fase
30
20
10
0
-10
-20
-30
-2
-1.5
-1
-0.5
Interpretacin de la DTFT
|X(Z)|
Im{Z}
e j
|H(ej)|
Re{Z}
35
Respuesta en Frecuencia
Es la DTFT de la respuesta impulsional :
H e j
H e j
(Respuesta en amplitud o
H e j
(Respuesta en fase o
H e j H z z e j
Solucin
x[n]
y[n]
H(z)
%************************************************
% Obtencin Experimental de la Respuesta
% en amplitud y la Respuesta en fase de un
% Sistema de Tiempo Discreto
%************************************************
% Reinicializar el ambiente
close all; clear all;
36
% Funcin de Transferencia
B = [0.0000 0.0042 0.0147 0.0034 0.0000]
A = [1.0000 -3.1582 4.0820 -2.5235 0.6279]
% Respuesta impulsional
[h,n]=impz(B,A);
stem(n,h);
grid; ylabel('h[n]'); xlabel('n');
pause;
% Obtencin Experimental de la Respuesta en magnitud
% y la Respuesta en Fase
%N=length(n);
N=1000;
n=1:N-1;
W=[0*pi:pi/800:pi]; % Vector de Frecuencias
Nw=length(W)
for m = 1:Nw
x=sin(W(m)*n);
% Secuencia de entrada
y=filter(B,A,x); % Obtencion de la salida
x=x(N-900:N-1);
y=y(N-900:N-1);
% Salida estable
ganancia(m)= max(y)/max(x);
xh = hilbert(x);
yh = hilbert(y);
fase(m)=wrapToPi( angle(yh(800)) - angle(xh(800)) );
end
% Con freqz
H=freqz(B,A,W);
Hdecibelios=20*log10(abs(H));
% Graficos
subplot(2,2,1);
plot(W/pi,20*log10(ganancia)); grid;
xlabel('w/pi'); ylabel('|H(e^jw)|,db');
title('Respuesta en amplitud obtenida experimentalmente');
subplot(2,2,3);
plot(W/pi,Hdecibelios); grid;
xlabel('w/pi'); ylabel('|H(e^jw)|,db');
title('Con la funcion freqz');
subplot(2,2,2);
plot(W/pi,180*fase/pi); grid;
xlabel('w/pi'); ylabel('<H(e^jw),');
title('Respuesta en fase obtenida experimentalmente');
subplot(2,2,4);
plot(W/pi,180*angle(H)/pi); grid;
xlabel('w/pi'); ylabel('<H(e^jw),');
title('Con la funcion freqz');
37
0.25
0.2
0.15
0.1
h[n]
0.05
-0.05
-0.1
50
100
150
n
Respuesta en amplitud obtenida experimentalmente
20
200
0
100
w)|,db
-20
w),
j <H(e
j |H(e
-40
-100
-60
-80
-200
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.1
0.2
0.3
0.4
w/pi
0.5
0.6
0.7
0.8
0.9
0.7
0.8
0.9
w/pi
20
200
0
100
w)|,db
-20
w),
j <H(e
j |H(e
-40
-100
-60
-80
-200
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.1
0.2
0.3
w/pi
0.5
w/pi
Ejemplo 17
Para el sistema de promedio mvil de tamao N
1) Determine analticamente la respuesta en frecuencia.
2) Grafique la magnitud y la fase para N=5.
3) Compruebe los resultados anteriores usando MATLAB.
Solucin
h[n]
0.4
1/N
38
0.6
hne
He
N 1
j n
e
n0
1
N
j N2 j N2
e
e
e
N1
j
j
j
e 2 e 2 e 2
He
N
2
j n
j N
1
e
N1
1e j
1 R1
1
r 0
R
N j N 1
sen
2
2
N1
e
sen 2
sen 52 j 2
sen 2
1
5
%******************************************
% Respuesta Frecuencial del
% Sistema Promedio Mvil N=5
%******************************************
% Reinicializar el ambiente
close all; clear all;
% 1) Funcin H hallada analiticamente
N=5;
w=[(-1)*pi:(2*pi)/800:pi];
j=sqrt(-1);
H=(1/N).*((sin(w.*(N/2)))./(sin(w./2)))...
.*exp(((-1)*j).*(w./2).*(N-1));
% 2)Grficos de la solucin analtica
% Graficar la magnitud de H(e^jw)
subplot(2,2,1);
plot(w/pi,abs(H));
grid; title('Magnitud calculada analiticamente');
ylabel('|H(e^jw)|'); xlabel('w/pi');
% Graficar la fase de H(e^jw)
subplot(2,2,2);
plot(w/pi,angle(H));
grid; title('Fase calculada analticamente');
ylabel('< H(e^jw)'); xlabel('w/pi');
% 2)Comprobacion con freqz
B=[1/5 1/5 1/5 1/5 1/5];
A=[1
0
0
0
0];
H=freqz(B,A,w);
% Graficar la magnitud de H(e^jw)
subplot(2,2,3);
plot(w/pi,abs(H));
grid; title('Magnitud (Comprobacion con freqz)');
39
ylabel('|H(e^jw)|'); xlabel('w/pi');
% Graficar la fase de H(e^jw)
subplot(2,2,4);
plot(w/pi,angle(H));
grid; title('Fase (Comprobacion con freqz)');
ylabel('< H(e^jw)'); xlabel('w/pi');
Magnitud calculada analiticamente
3
2
0.8
1
w)
H(e
0
w)| 0.6
j<
j |H(e
0.4
-1
0.2
-2
0
-1
-0.8
-0.6
-0.4
-0.2
0
w/pi
0.2
0.4
0.6
0.8
-3
-1
-0.8
-0.6
-0.4
-0.2
0
w/pi
0.2
0.4
0.6
0.8
0.4
0.6
0.8
3
2
0.8
1
w)
H(e
0
w)| 0.6
j<
j |H(e
0.4
-1
0.2
-2
0
-1
-0.8
-0.6
-0.4
-0.2
0
w/pi
0.2
0.4
0.6
0.8
-3
-1
-0.8
-0.6
-0.4
-0.2
0
w/pi
0.2
Filtros clsicos
|H(ej)|
|H(ej)|
40
|H(ej)|
|H(ej)|
-
Filtros Ideales Clsicos
[ ]
H(ej)
[ ]
[ ]
-c
H(ej)
)
-c
Ejemplo 18
1) Generar una secuencia senoidal x[n] de 80 muestras con frecuencia 2/25
rad/muestra.
2) Obtener una secuencia x1[n] adicionando a la secuencia inicial un ruido aleatorio
uniformemente distribuido en el intervalo -0,25 a 0,25.
3) Obtener la secuencia y[n] filtrando la secuencia x1[n] con un sistema promedio
mvil de tamao 5 recursivamente usando la funcin filter.
4) Lo mismo del punto 3 usando la funcin fft.
41
x [n]
Tamao=84
h [n]
y [n]
Tamao=84
Tamao=84
%*****************************************
% Filtrado con el Sistema de Promedio
% Movil de Tamao 5
%*****************************************
% Reinicializar el ambiente
close all; clear all;
% 1) Formar la secuencia de entrada
N=80;
n=[0:N-1];
x=sin(2*pi*n/25);
% 2) Formar la secuencia con ruido aditivo
x1=x+0.5*(rand(1,N)-0.5);
% 3) Calcular la salida usando la funcin filter
B=[1/5 1/5 1/5 1/5 1/5];
A=[1
0
0
0
0 ];
y1=filter(B,A,x1);
% 4) Usando la funcin fft
% El tamao de h, x1 debe ser N+5-1=N+4
h=[1/5 1/5 1/5 1/5 1/5 zeros(1,N-1)];
x2=[x1 zeros(1,4)];
H=fft(h);
X2=fft(x2);
Y2=H.*X2;
y2=ifft(Y2);
y2=real(y2);
% Graficar las secuencias
subplot(4,1,1); stem(n,x);
grid; ylabel('x[n]'); xlabel('n');
subplot(4,1,2); stem(n,x1);
grid; ylabel('x1[n]'); xlabel('n');
subplot(4,1,3); stem(n,y1);
grid; ylabel('y1[n]'); xlabel('n');
title('Salida obtenida empleando la funcion filter');
subplot(4,1,4); stem(n,y2(1:N));
grid; ylabel('y2[n]'); xlabel('n');
title('Salida obtenida empleando la funcion fft');
42
1
x[n]
0
-1
10
20
30
10
20
30
10
20
30
10
20
30
40
n
50
60
70
80
40
n
Salida obtenida empleando la funcion filter
50
60
70
80
40
n
Salida obtenida empleando la funcion fft
50
60
70
80
50
60
70
80
2
x1[n]
0
-2
2
y1[n]
-2
2
y2[n]
0
-2
40
n
X e
1
-0
X e j 0 0
1
j
e jn d =
X e
2
1
jn
=
0 0 e d =
2
1
1
jn
=
0 e d
0 e
2
2
xn =
jn
d =
1 j 0 n
1 j 0 n
e
e
=
2
2
1
e j 0 n e j 0 n
=
2
1
= cos 0 n
=
cos 0 n
e
j 0 n
0 0 con periodo
2 0 con periodo
43
hid n n nd
Su respuesta en frecuencia es
(
)
cuya magnitud y la fase son: | (
)|
;
(
)
Se observa que la fase es funcin lineal de la frecuencia.
[ ]
))
Retardo de grupo
Es una medida de la linealidad de la fase:
( )
)}
; yn ?
x n
H (e
X (e j )
y n
)
-
Y e j X e j H e j
S e H e e S e H e e
j
12 S e j 0 12 S e j 0 H e j e jH e
1
2
j 0
jH e j
1
2
j 0
-0
jH e j
H (e j )
-0
-
-0
0
0
44
Aproximamos H e j en 0 : H e j 0 0
Aproximamos H e j en 0 : H e j 0 0
Y e j 12 S e j 0 H e j0 e j 0 0 12 S e j 0 H e j0 e j 0 0
Y e j S e j 0 e j 0 H e j0 12 e j0 S e j 0 e j 0 H e j0 12 e j0
yn sn 0 e j0 n 0 H e j0 12 e j0 sn 0 e j0 n 0 H e j0 12 e j0
yn H e j0 sn 0 cos0n 0 0 0
Interpretacin grfica de la respuesta en frecuencia
| (
)|
| (
)|
que
1 r e
se
j 0
b0
b0
H e j
j 0
j 0
1
j
z 1 r e
z ,
1 r e e 1 r e j0 e j
1
cumpla
H e j0 1
b0 1 r 1 r 2 2r cos20 .
45
el
coeficiente
b0
debe
ser
2r
es 21 r .
Ejemplo 19
Hallar la funcin de transferencia de un resonador digital con ganancia pico unitaria
a 50 Hz, un ancho de banda de 3 db de 6 Hz, sabiendo que la frecuencia de
muestreo es 300 Hz.
clf; clear;
f0=50; deltaf=6; fs=300;
w0=f0*2*pi/fs
deltaw=deltaf*2*pi/fs
r=1-0.5*deltaw
b0=(1-r)*sqrt(1+r*r-2*r*cos(2*w0))
B=[b0 0 0]
j=sqrt(-1);
A=conv([1 (-1)*r*exp(j*w0)],[1 (-1)*r*exp((-1)*j*w0)])
W=[0:0.5:150]*2*pi/fs;
subplot(1,2,1);
H=freqz(B,A,W);
plot(W*fs/(2*pi),abs(H));grid;
subplot(1,2,2);
W=([45:0.1:55]*2*pi)/fs;
H=freqz(B,A,W);
plot(W*fs/(2*pi),abs(H));grid;
1.4
1.2
1.2
1.1
0.8
0.9
0.6
0.8
0.4
0.7
0.2
0.6
0 0
50
100
0.545 46 47 48 49 50 51 52 53 54 55
150
1 z 1 z
1 r e z 1 r e
1
j 0
j 0
H e j b0
1 e j 2
e j 1 r e j0 e j
z 1 ,
1 r e j0
Ejercicio 1. Para ambos tipos de resonador, graficar con MATLAB la magnitud y la
fase en el intervalo de a ; para 0 3 , r 0.8 y para 0 3 , r 0.95 .
1
46
Filtro Ranura
Filtro con uno o ms cortes profundos en su respuesta en frecuencia.
Para implementar un filtro ranura se pueden tomar dos ceros complejos conjugados
sobre la circunferencia de radio uno.
H z b0 1 e j0 z 1 1 e j0 z 1
Para reducir el ancho de banda del corte se pueden introducir dos polos
conjugados complejos
1 e j0 z 1 1 e j0 z 1
H z b0
1 r e j0 z 1 1 r e j0 z 1
Ejemplo 20
Para el filtro ranura de dos ceros y dos polos, graficar con MATLAB la respuesta en
amplitud en el intervalo de a para 0 4 , r 0.85 .
Solucin
1.2
0.8
0.6
0.4
0.2
0.1
0.2
0.3
0.4
0.5
47
0.6
0.7
0.8
0.9
Filtro Peine
Su respuesta en magnitud consiste en una serie de picos regularmente espaciados,
cuya figura es semejante a la de un peine.
El sistema promedio mvil es un ejemplo sencillo de filtro peine. yn
H z
Si
1
M 1
, H z
k 0
reemplazamos
H L e j
1
M 1
M 1
1
M 1
1 z
1 z 1
, H e j
por
1
M 1
zL
sen M21 L j M2 L
e
sen2L
1
M 1
sen j M2
e
.
sen2
xn k
k 0
M 1
2
tenemos
H L z
1
M 1
1 z L M 1
,
1 zL
Ejemplo 21
Para el filtro peine con
y
magnitud y en fase en el intervalo de
Solucin
a .
48
|H(ejw)|
0.8
0.6
0.4
0.2
0.1
0.2
0.3
0.4
0.5
w/pi
0.6
0.7
0.8
0.9
0.7
0.8
0.9
< H(ejw)
1
0
-1
-2
-3
0.1
0.2
0.3
0.4
0.5
w/pi
0.6
Sistema inverso
Para un sistema LTI su sistema inverso es aquel que al conectrsele en cascada da
por resultado un sistema identidad
H z G z 1
Gz
1
H z
Ver ejemplo 5.4 y ejemplo 5.5 de Oppenheim
H e j 1
z 1 a
1 a z 1
j
e j a
j
j 1 a e
H ap e
= e
1 a e j
1 a e j
Ejemplo, H ap z
z 1 a
1
Si a es real: H ap z
. Polo: z a
1 . Cero: z
1 a z
a
49
Re{z}
1
H z H min z H ap z
Ejemplo 22
1 2 z 1
H z
1 0.2 z 1 1 0.7 z 1
Para el sistema:
Hallar la descomposicin en pasa todo y fase mnima
Im{z}
Re{z}
0.2
0.7
Im{z}
0.5
0.2
50
0.7
Re{z}
H z
1 2 z 1
1 0.5 z 1
1 0.5 z 1
1 2 z 1
z 1 a
H ap z
;
1 a z 1
1
1 0.5 z 1
1 1 2 z
H z 2
1 0.2 z 1 1 0.7 z 1 2 1 0.5 z 1
H z 2
1 0.5 z 1
z 1 0.5
H e j
= H e j e j
Ae
- Es una funcin real.
Para que un sistema causal de funcin de transferencia racional tenga fase lineal
generalizada su respuesta al impulso de tamao N debe ser real, FIR, simtrica (
h n h N 1 n ) o anti-simtrica ( h n h N 1 n ).
N impar N par
h n simtrica
Tipo I
Tipo II
h n anti-simtrica Tipo III
Tipo IV
x [n]
x [n]
Tipo I
Tipo II
x [n]
x [n]
Tipo III
Tipo IV
H e j
N
1
2
N 1
h n e jn + h n e jn ;
n0
m N 1 n; n N 1 m
N
n
2
51
H e j
H e j
N
1
2
=
=
N
1
2
N
1
2
n0
m0
N
1
2
N
1
2
n0
m0
h n e jn + h N 1 m e j N 1m ; h m h N 1 m
h n e jn + h m e j N 1 m
N
1
2
j
= h n e jn e j N 1 n = h n e
n0
n0
N
1
N 1
2
N 1
j =
2 h n cos 2 n e j 2
H e
n0
H e
= H r e e
j
N 1
2
N impar
Tipo I
h n simtrica
h n anti-simtrica Tipo III
Tipo
H r e j
o H i e j
N 1
II
N
1
2
N 1
2
N 1
n
2
N
1
2
H e j0
H e j
N 1
h
+ 2hn
2 n 0
N 1
2
N
2
2 hn
n0
N 1
n
2
N 1
n
2
j 2 h n sen
n0
N 1
n
2
Tipo IV
j 2 h n sen
n0
IV
2 h n cos
n0
III
N 1 2
h
+ 2 h n cos
2 n0
N par
Tipo II
Conclusiones:
Los filtros de tipo II no pueden ser pasa altas ni supresores de banda.
Los filtros de tipo III slo pueden ser filtros pasa banda.
Los filtros de tipo IV no pueden ser pasa bajas ni supresores de banda.
Los filtros de tipo I puede implementar cualquier filtro. Es el nico tipo capaz de
realizar filtros supresores de banda.
Los ceros de la funcin de transferencia de un sistema de fase lineal se presentan en
pares conjugados recprocos.
52
xc(t)
C/D
X
X e
C/D
T
(1)
(2)
x[n]
xc(t)
2
x n x c nT
X e
1
jt
xc t
X c j e d
2
xn
1
jnT
d ,
X c j e
2
T ,
jn d
xn
X c j T e
T
2
d
, d
T
T
2 k 1
1
1
xn
X c j e jn d ,
T
2 k 2 k 1 T
2 k , 2 k , d d
1 1
2 k
xn
T X c j T e j 2 k n d
2 k
1 1
2 k
xn
T X c j T
2 k
(3)
1
xn
X e
2
e j n d
e jn d
X e
T1
Xc j
54
2 k
T
Interpretacin grfica
Para k 0 :
1
X 0 e j X c j ;
T
T
Para k 1:
2
1
X 1 e j X c j
Para k 1:
2
1
X 1 e j X c j
, T
T
Xc j
-S
-M
X e j
X 1 e j
-2
X 0 e j
1
T
-MT
X 1 e j
M T
X S j
1
T
X S j X e j T
-M 0
-S
j T
T X e
X c j
55
c .c .
X c j X e jT H r j
x[n]
Conversor de
secuencia en tren de
impulsos
ponderados
T
xs(t)
Filtro de
reconstruccin
H r j
H r j
T
X c j x n e jTn
n
H r j
x c t x n t nT * h r t
n
senT t
hr t
T t
sen Tt n
xc t xn
Tt n
n
56
xc(t)
X e
xa(t)
Retenedor de
orden cero
X a j
x[n]
xc(t)
xa(t)
n
p (t)
x a t x n p t nT
X a j x n P j e jnT
n
X a j P j x n e jnT
n
X a j P j X e jT
P j p t e jt dt
P j e jt dt
0
P j
1
e jt
j
P j
1
j
T
0
e jT 1
T
T
j T j T
1 j 2 j 2
2e
2
P j
e
e
e
j
P j 2
57
sen
2T
T
2
X a j P j X e jT
X a j 2
sen 2T
X a j T
X e jT T1
sen 2T
T
2
T
2
T
2
sen
X c j X e
jT
j T2
X e jT
j T2
X e jT
j T2
X a j
H j
r
1
T
T
2
T
2
sen
j T2
X a j H r j
2T
j 2T
e
X a j T T
X c j sen 2T
0
c.c.
2T
j 2T
H rr j sen 2T
0
x[n]
X e
Retenedor de
orden cero
j
T T
c.c.
Filtro de
reconstruccin
xa(t)
xc(t)
H rr j
X c j
X a j
H rr j
58
Ejemplo 23
Graficar la respuesta en amplitud del filtro de reconstruccin, conectado en
cascada con el retenedor de orden cero, para la frecuencia de muestreo de 8
kHz.
2T
j 2T
H rr j sen 2T
T T
c.c.
% Reinicializar el ambiente
close all; clear all;
% Hallamos la funcin Hrr
fs=8000;
T=1/fs;
W=[(-1)*2*pi/T:(2*pi/T)/400:2*pi/T];
N=length(W);
j=sqrt(-1);
for i=1:1:N
if abs(W(i))<pi/T
x=W(i)*T/2;
Hrr(i)=(x/(sin(x)))*exp(j*x);
else
Hrr(i)=0;
end
end
% Graficamos la Magnitud de Hrr
plot(W/(2*pi),abs(Hrr));
grid; title('Respuesta en Amplitud del Filtro');
ylabel('|Hrr(jW)|'); xlabel('f');
Respuesta en Amplitud del Filtro
1.6
1.4
1.2
1
|Hrr(jW)|
0.8
0.6
0.4
0.2
0 -8000
-6000
-4000
-2000
0
f
59
2000
4000
6000
8000
X e
T1
Xc j
2 k
T
X e
2 r
1
X d e j
X c j MT
MT r
r i kM , 0 i M 1, k
2 i 2kM
1 M 1 1
X d e j
T X c j
MT
M i 0 k
2 i
1 M 1 j M
X d e j
X e
M i 0
j
Si M 2 , X d e j 1 X e 2
2
j 2
Xe 2
Sistema diezmador
Filtro pasabajas
Ganancia = 1
Corte = /M
60
X d e j
TL
x i n x c nT x c n
Sistema expansor
xe n xk n k L
k
X e e j x k n k L e jn
n k
X e e j x k n k L e jn
n
X e e j x k e jk L
k
X e jL
Xe e
Sistema interpolador
Filtro pasabajas
Ganancia = L
Corte = /L
61
H e j
X
X e
Y e j
Y r j
Y r j T Y e j T ,
T
T1 X c j TT , T T
Y r j T H e j T X e j T ,
T
Y r j T H e j T
Y r j H e j T X c j ,
T
H e j T
H eff j
0
62
T
T
Ejemplo 24
Dado el sistema
Sistema de
tiempo
discreto
H e j
X e
donde,
Y e j
Y r j
Xc j
-2 1000
2 1000
1
H e j
0
c
c.c.
Y e j ,
Y r j , y hallar H eff j
63
Sistema de
tiempo
discreto
Filtro
antisolapamiento
Xc j
-N
H aa j
-M1
-N
M1
Filtro antisolapamiento
exacto
Corte=/M
Filtro antisolapamiento
simple
64
Xc j
-4N
-N
4N
4N
4N
H aa j
-4N
-N
X a j
-4N
-N
X e j
T
-2
NT
H e j
-2
X d e j
1
T
-2
T MT
0
65
10. Cuantizacin
Cuantizacin por redondeo:
Unipolar
- Tamao de paso de cuantizacin
Bipolar:
, -
, -
66
, -
f e
( )
Ejemplo 25
Una seal vara en el intervalo -2.5V a +2.5V. Cul debe ser la cantidad de bits
para que el error rms de cuantizacin sea menor que 5mV?
D=5V;
;
; B=9 bits.
67
Forma directa I
Forma directa II
Forma serial
Forma paralela
Directa
I, II
Serial
Paralela
Smbolos
x2[n]
x1[n]
x[n]
x[n]
x1[n]+ x2[n]
a
a x [n]
z-1
x [n-1]
Ejemplo 26
Para el sistema con funcin de transferencia
dar la representacin en la forma directa I, forma directa II, forma serial y forma
paralela.
Solucin
Forma directa I
y[n]
x[n]
x[n]
y[n]
0.5
z-1
z-1
-1.3
0
z-1
-0.36
-0.5
z-1
Forma directa II
x[n]
y[n]
0.5
z-1
z-1
-1.3
-0.36
0
z-1
z-1
w[n]
x[n]
-0.5
0.5
z-1
-1.3
-0.36
0
z-1
-0.5
wn xn 1.3wn 1 0.36wn 2
yn 0.5wn 0.5wn 2
69
y[n]
Forma serial
w1[n]
x[n]
y1[n]
0.5
w2[n]
z-1
z-1
-0.4
-0.9
-0.5
w1n xn 0.4w1n 1
y1n 0.5w1n 0.5w1n 1
w2 n y1 n 0.9w2 n 1
yn w2 n w2 n 1
Forma paralela
-1.39
x[n]
w2[n]
y2[n]
2.1
z-1
-0.4
w3[n]
-0.21
z-1
-0.9
y1n 1.39 xn
w2 n xn 0.4w2 n 1
y2 n 2.1w2 n
w3 n xn 0.9w3 n 1
y3 n 0.21w3 n
yn y1n y2 n y3 n
70
y3[n]
y[n]
y[n]
Forma directa I
y n b 0 x n b1 x n 1 ... b M x n M
a1 y n 1 ... a N y n N
x[n]
H z
b 0 b1 z 1 ... b M z M
1 a1 z 1 ... a N z N
y[n]
b0
z-1
z-1
-a1
b1
z-1
z-1
-aN-1
bM-1
z-1
z-1
-aN
bM
v n b 0 x n b1 x n 1 ... b M x n M
y n a1 y n 1 ... a N y n N v n
V z b 0 b1 z 1 ... b M z M X z
Y z
1
1 a1 z
... a N z
V z
Forma directa II
y[n]
x[n]
b0
z-1
-a1
b1
z-1
-aN-1
bM-1
z-1
-aN
bM
w n a1 w n 1 ... a N w n N x n
y n b 0 w n b1 w n 1 ... b M w n M
W z
1
1 a1 z 1 ... a N z N
Y z b 0 b1 z 1 ... b M z M W z
X z
71
Forma serial
M1
H z b0
1 g k z
k 1
N1
1 h k z 1 1 h k* z 1
M2
k 1
N2
1 c k z 1 1 d k z 1 1 d k* k z 1
k 1
Ns
1 b1 k z 1 b 2 k z 2
k 1
1 a1 k z 1 a 2 k z 2
H z b0
k 1
b0
y0 n xn
w k n a 1 k w k n 1 a 2 k w k n 2 y k 1 n
y k n w k n b1 k w k n 1 b 2 k w k n 2
y n b0 y N s
72
Forma paralela
M N
H z Ck z
N1
Ak
k 11 c k
k 0
z 1
N2
N2
Bk
k 11 d k
z 1
N1 N 2 N
M N
H z Ck z
k 0
Ns
b 0 k b1 k z 1
k 1
1 a1 k z 1 a 2 k z 2
b01
b11
b02
b12
b03
b13
w k n a1 k w k n 1 a 2 k w k n 2 x n
y k n b 0 k w k n b1 k w k n 1
M N
Ns
k 0
k 1
y n C k x n y k n
73
B k*
k 11 d k* z 1
, -
( , -
, , -
, ,
, -
]
-
1[
,
0
-[
1;
,
,
,
,
,
,
]
-
]
-
-)
, -
, -
0 1 , , -
0 1
-;
En matlab escribimos:
b=[0.5 0 -0.5]
a=[1 1.3 0.36]
[A,B,C,D]=tf2ss(b,a)
74
N k 0
La DFS es la descomposicin de ~
x n en una suma de N exponenciales
Ejemplo 28
~
Hallar los coeficientes de la DFS de la secuencia peridica x n
esta secuencia como una serie de Fourier Discreta
...
...
0
, -
, -
Solucin
, , , -
, -
, -
, -
, -
, , -
, , -
, -
, -
, -
, , -
, -
/
(
, .
.
/
/
, , -
)
/
, , 75
y expresar
, -
La DFS y la DTFT
Para la secuencia peridica ~
x n con periodo N los coeficientes de la DFS son:
N 1
j
~
X k ~
x n e
2
kn
N
n0
X e j =
N 1
n0
X e j = x n e jn = x n e jn
N 1
~x n e jn
n0
~
X k X e j
Ejemplo 29
2
k
N
X e j
0
=
x n e jn
1 e j 0 1 e j1 1 e j
Si comparamos esta DTFT con los coeficientes de la DFS del ejemplo anterior
vemos que se cumple la relacin:
~ k 1 e j 23 k X e j
X
23 k
La convolucin peridica
Dadas las secuencias peridicas ~
x1 n , ~
x 2 n ambas con periodo N, se define
la convolucin peridica como la operacin:
~
x1 n
N 1
~
x2 n ~
x1 m ~
x2 n m
m0
Ejemplo 30
Hallar la convolucin peridica de las secuencias ~
x1 m y ~
x2 m
N 1
~
x3 n ~
x1 m ~
x2 n m
m 0
76
~
x1 m
4
0
~
x2 m
0
~
x2 m
m
~
x 2 1 m
0
~
x3 0 7
~
x 1 5
3
~
x3 2 3
~
x3 3 6
~
x 4 9
3
77
N-1
X e j en las frecuencias
0 , 1 , ..., N 1 .
X e j = x n e jn
n
= x 0 x 1e j x 2 e j 2 ... x N 1e j N 1
= x 0 x 1e j x 2 e j 2 ... x N 1e j
X e j
X e j 0
N 1
N 1
N 1 N 1
N 1
2
N
0,
c .c .
0,
c .c .
N 1
kn
xn WN , 0 k N 1
X k n0
0,
c .c .
X e j
se llaman
1 N 1
kn
X k W N , 0 n N 1
x n N k 0
0,
c.c.
Operacin n mdulo N
n
Re siduo de ,
n0
N
nN
Re siduo de n N , n 0
La DFT y la DFS
x n x n r N , entonces
Si definimos ~
~
X k X k ,
0 k N 1.
r
Esto significa que X k corresponde a un periodo de la DFS de una secuencia
peridica ~
x n obtenida por la repeticin de x n .
X e j
, 0 k N 1
2
k
X k
N
0
,
c .c .
La DFT y la Transformada Z
2
j
k
X z
, 0 k N 1
z e N
X k
0,
c.c.
Desplazamiento Circular
xn
0 1 2 3 4
x n 3 5
0 1 2 3 4
79
~
X k X k N
La convolucin circular
Dadas las secuencias x1 n ,
circular como la operacin:
x1 n
x2 n
N 1
x 2 n x1 m x 2 n m N
m 0
0 n N 1
Ejemplo
Hallar la convolucin circular de las secuencias
x1 n , x 2 n .
5
x1 m
x2 m
3
2
0
5
x 2 m 5
3
2
1
0
x 2 1 m 5
5
4
x1 m 5
x2 m
2
12
1
10
9
8
x 2 2 m 5
5
4
3
2
1
m
80
x1 n
x2 n
Ejemplo
La convolucin lineal de las secuencias del ejemplo anterior es:
x1 n x 2 n
12
9
9
6
5
3
1
0
Si
x1 n
tiene extensin
x1 n
x2 n
N1
Ejemplo
La convolucin circular de longitud 7 de las secuencias
convolucin lineal.
5
x2 n
3
2
es igual a la
x1 n
x1 n , x 2 n
81
y n
h n
y n x m h n m
m
1+2+...+M-1+M+M-1+...+2+1
0+1+...+M-2+M-1+M-2+...+1+0
Total
M2
(M-1)2
X[k]
h[n]
H[k]
M 1
X k xn e
Y[k]
2
kn
N
n0
k 0 ,1,..., N 1
N 2M 1
X k
Operaciones
Total
M
M-1
Operaciones
Total
M (2M-1)
(M-1) (2M-1)
Para el producto
X k H k
Operaciones
Total
2M-1
0
82
y[n]
Para la IDFT
2
j kn
1 2 M 2
Y k e N ,
2 M 1 k 0
yn
0 n 2M 2
Total
2M-1
2M-2
+
Total mediante DFT
Operaciones
Total
(2M-1)2
(2M-2) (2M-1)
Total Aprox.
8M2
8(M-1)2
X k xn e
2
N
k n
n 0
X k x n e
2
k n
N
n par
N
1
2
X k x 2 r e
r 0
, 0 k N 1
x n e
2
k n
N
n impar
2
k 2 r
N
N
1
2
x 2 r 1 e
r 0
83
2
k 2 r 1
N
N
1
2
2
N
2
k r
X k x 2 r e
r 0
2
N
j k r
2
1
N
j k 2
e N x 2 r 1 e 2
r 0
X k G k N
2
k
N H k N
Usando la notacin W N e
X k G k N
2
N
W k H k N
N
DFT de N/2
puntos
DFT
de de
N/2
DFT
puntos
N/2
puntos
84
+
N
Nmero de etapas: log 2 N
Total Operaciones por FFT:
Operaciones
+
Estructura Mariposa
Total
N log 2 N
N log 2 N
85
WN
N
2
2
N
r N2 W r
Nmero de operaciones:
Operaciones
Total
(N/2) log 2
N log 2 N
3
log 2 2 M 2 M
Total
M 5 3 log 2 M
3 2 M log 2 2 M
6 M 1 log 2 M
Ejemplo
Para N=256
Operaciones
X[k]
h[n]
H[k]
1
86
Y[k]
y[n]
x1 n
P1
ceros
x2 n
P1
ceros
x3 n
y1 n
P 1 puntos
que se suman
y 2 n
P 1 puntos
que se suman
y 3 n
87
x1 n
P-1
P1
ceros
x2 n
x3 n
y1 n
P1
puntos
que se
desprecian
y 2 n
P1
puntos
que se
desprecian
y 3 n
P1
puntos
que se
desprecian
88
y n b0 x n b1 x n 1 ...b M x n M
a1 y n 1...a N y n N
|H(ej)|
1+p
1
1-p
r
0
H e j
dB
-p
-r
89
Paso 1
Esquema de Tolerancias del Filtro Analgico
Paso 2
Funcin de Transferencia del Filtro Analgico
Ha(s)
Paso 3
Funcin de Transferencia del Filtro Digital
H(z)
Paso 4
Ecuacin en Diferencias
90
Filtro de Butterworth
|H(j)|, dB
p
-p
-r
10r
10 1
log p
10
10 1
N
r
2 log
p
p
p
10
10 1
1
2N
sk C
sk
N 1 k 2
2N
k 0,1,2,..., N 1
H a s
|Ha(j)|
1
CN
1
2
s s
k
k 1
0
91
Filtro de Chebyshev
|H(j)|, dB
p
0
10
10
1
1
cosh
p
10
10 1
N
cosh 1 r
p
-p
-r
p
10 10 1
a 12 N
1
1 1 2
N1
b 12 N
1
N1
sk a p cos k j b p sen k
N 1 k 2
2N
; k 0,1,..., N 1
K:
1
, N par
2
1
H a 0
1,
N impar
|Ha(j)|
1
1-p
H a s
K
N
s s
k
k 1
92
K:
|Ha(j)|
1
1
, N par
H a 0 1 2
1,
N impar
1-p
0
H a s
H a j 0
1
, N par
1 2
1,
N impar
s s
1
, N par
H a 0 N
1 2
N impar
sk 1,
k 1
k 1
N
1
sk , N par
2
K N1 k 1
s ,
N impar
k
k 1
Invarianza Impulsional
Se basa en el muestreo de la respuesta impulsional del filtro analgico
h n T h a nT
Paso 1
Al pasar de las especificaciones del filtro digital a las especificaciones del filtro
analgico basta hacer :
Relacin entre los polos del filtro analgico y los polos del filtro digital
N
H a s
Ak
k 1 ss k
ha t Ak e sk t u t
k 1
93
h n T h a nT T A k e s k nT u nT
k 1
T A k e s k T
k 1
n u n
Ak
H zT
k 1 1e s k T
z 1
s
p k e k T e T Re S k e jT Im S k
Si Resk 0
pk 1
Paso 3
Ba s
H a s
H z
Aa s
Residue()
H a s
Ak
h a t Ak e
k 1
s k t
A z
Residuez()
Ak
H zT
k 1 1e s k T z 1
k 1 ss k
B z
h n T A k e s k T
u t
k 1
94
n u n
Ejemplo 31
A partir de un filtro analgico de Butterworth disear un filtro digital IIR pasa
bajas, por Invarianza Impulsional, con las especificaciones :
H e j , dB
0,2 0,3
0
-1
-15
r 15
p 1
H a j
0.2
T
p r
0.3
T
r
H a s
CN
N 5.89
s s
N 6
k 1
s1, 6
0.703 j 180 75
e
T
s2 , 5
95
0.703
T
0.703 j 180 45
e
T
0.703 j 18015
e
T
6
0.703
H a s
s s1 ... s s6
s3, 4
H a s
A6
A1
...
s s1
s s6
A6
A1
H z T
...
1 z z 1
1 z 6 z 1
z1, 6 e
s1, 6T
0.649 j 0.524
z 2,5 e
s 2 , 5T
0.535 j 0.290
z 3, 4 e
s3 , 4T
0.499 j 0.092
%****************************************************
% Diseo de un filtro digital a partir de un filtro
% analogico de Butterworth por Invarianza Impulsional
%****************************************************
% Reinicializar el ambiente
clear;clf;
ap=1;
ar=15;
wp=0.2*pi;
wr=0.3*pi;
% PASO 1
T=1;
Wp=wp/T;
Wr=wr/T;
% PASO 2
% Hallamos la orden del filtro
N=(log10(((10^(ar/10))-1)/((10^(ap/10))-1)))...
/(2*log10(Wr/Wp));
N=ceil(N);
N=N
% Hallamos la frecuencia de media potencia
Wc=(Wp)/(((10^(ap/10))-1)^(1/(2*N)));
% Hallamos los polos del filtro analogico
theta= (pi*(N+1)+2*pi*[0:N-1])./(2*N);
j=sqrt(-1);
sk=Wc*cos(theta)+j*Wc*sin(theta);
% Funcion de transferencia del filtro analogico
96
B=[ Wc^(N)];
A=poly(sk);
% PASO 3
% Expandimos en fracciones parciales
[R,P,K] = residue(B,A);
% Hallamos los polos del filtro digital
pk=exp(P*T);
[b,a] = residuez(R,pk,K);
% PASO 4
b=real(b)
a=real(a)
% Graficar la magnitud de la respuesta en frecuencia
W=[0:pi/50:0.35*pi];
H=freqz(b,a,W);
Hdecibelios=20*log10(abs(H));
plot(W/pi,Hdecibelios);
grid; title('Respuesta en frecuencia');
ylabel('|H(e^jw)|, db'); xlabel('w/pi');
Respuesta en frecuencia
|H(e^jw)|, db
-5
-10
-15
-20
-25
N =
b =
a =
yn
0.05
6
0.0000 0.0006
1.0000 -3.3635
= 0.0000*xn +
+ 0.0161*xn-3
+ 0*xn-6 +
+ 3.3635*yn-1
- 2.1066*yn-4
0.1
0.15
w/pi
0.2
0.25
0.3
0.35
97
Transformacin Bilineal
Para obtener la funcin de transferencia del filtro digital a partir de la funcin
de transferencia del filtro analgico se aplica la transformacin
H z H a s
1 z 1
s T2
1 z 1
2
T
Plano S
Plano Z
2
2
T
2
T
j
ze
j j T2 tan2
Paso1
1 e
1 e
j tan
2
tan
T
2
|H(ej)|
|Ha(j)|
0
98
1 T s
2
1 T
2
H z A
z z
k
k 1
N
z p
k
k 1
H e j
H a j
H e j
H a j
H 1 H a 0
1
, N par
H 1 H a 0 1 2
1,
N impar
N
1 z
1
, N par
H 1 A
1 2
N impar
1 pk 1,
k
k 1
N
k 1
1 pk
k N1
, N par
2
1
1 zk
k 1
A N
1 pk
k 1
,
N impar
N
1 z k
k 1
99
Ejemplo 32
A partir de un filtro analgico de Chebyshev tipo I disear un filtro digital IIR
pasa bajas, por Transformacin Bilineal, con las especificaciones :
H e j , dB
0,2 0,3
0
-1
-15
p 1
r 15
H a j
0.2 0.650
p T2 tan
T
2
0.3 1.02
r T2 tan
T
2
p r
100
H a s
N 3.02
K
N
s s
N 4
0.044
K
T4
k 1
s1, 4
0.219 j 0.265
T
s2 , 3
0.091 j 0.640
T
0.044
T4
H a s
s s1 s s2 s s3 s s4
H z H a s s 2 1 z
T
s sk
2
T
1 z 1
z 1
sk
z 1
2
T
2
T
1 z 1
1 z 1
2
T
z 1
z 1
z 1 T s k z 1
2
z 1
1 T s k z 1 T s k
2
2
2
z 1
0.044
T4
Hz
1 T2 s k z 1 T2 s k
16 4
4
T k 1
Hz
z 1
0.044
z 1 z 1 z 1 z 1
4
T
1 T2 s k z 1 T2 s k
16 4
4
T k 1
pk
1 T s k
2
1 T s k
2
z 1 , 2 , 3 , 4 1
101
1 T s
2
1 T s
2
%******************************************
% Diseno de un filtro digital
% a partir del filtro de Chebyshev I
% por transformacion bilineal
%******************************************
% Reinicializar el ambiente
clear;clf;
ap=1;
ar=15;
wp=0.2*pi;
wr=0.3*pi;
% PASO 1
Wp=2*tan(wp/2);
Wr=2*tan(wr/2);
% PASO 2
% Hallamos el orden del filtro
N=acosh(sqrt((10^(ar/10)-1)...
/ (10^(ap/10)-1))) / acosh(Wr/Wp);
N=ceil(N);
N=N
% Hallamos los polos del filtro analogico
epsilon=sqrt(10^(ap/10)-1);
j=sqrt(-1);
angulos=( pi*(N+1) + [0:N-1]*2*pi )./(2*N);
alfa=(epsilon^(-1)) + sqrt(1+epsilon^(-2));
aa=(1/2)*( (alfa^(1/N)) - (alfa^(-1/N)) );
bb=(1/2)*( (alfa^(1/N)) + (alfa^(-1/N)) );
sk=aa*Wp*cos(angulos)+j*bb*Wp*sin(angulos);
% Hallamos la constante multiplicativa k preliminar
if rem(N,2)==1
K=1;
else
K=1/sqrt(1+epsilon^2);
end
% PASO 3
% Hallamos los polos y zeros del filtro digital
pk=(1+sk/2)./(1-sk/2);
zk=-1*ones(1,N);
A=K*prod(ones(1,N)-pk)/prod(ones(1,N)-zk);
% PASO 4
% Coeficientes del filtro digital
b=A*poly(zk);
a=poly(pk);
a=real(a)
b=real(b)
102
% GRAFICO
W=[0:pi/50:0.45*pi];
H=freqz(b,a,W);
Hdecibelios=20*log10(abs(H));
plot(W/pi,Hdecibelios);
grid; title('Respuesta en frecuencia');
ylabel('|H(e^jw)|, db');
xlabel('w/pi');
Respuesta en frecuencia
0
-5
-10
|H(e^jw)|, db
-15
-20
-25
-30
-35
-40
-45
0
N
b
a
y
0.05
0.1
0.15
0.2
0.25
w/pi
0.3
= 4
=
0.0018
0.0073
0.0110
0.0073
=
1.0000
-3.0543
3.8290
-2.2925
n = 0.0018*xn+0.0073*xn-1+0.0110*xn-2+
+0.0073*xn-3+0.0018*xn-4+
+3.0543*yn-1-3.8290*yn-2+
+2.2925*yn-3-0.5507*yn-4
103
0.35
0.0018
0.5507
0.4
0.45
Mtodo de Enventanado
Un filtro pasa bajas ideal tiene respuesta en frecuencia:
Hi (e j)
1
-C
La respuesta impulsional es :
hi [n]
1/4
hi n
senC n
n
...
...
n
hi [n]
1/4
...
...
0
w [n]
Ventana
Rectangular
hn hi n wn
h [n]
1/4
104
senC n
n
1, N21 n N21
wn
0, c.c.
hn hi n wn
hi n
Ventana Rectangular
Respuesta al impulso real
senC n
, N21 n
hn n
0, c.c.
N 1
2
W (ej)
-C
H (ej)
H e j H i e j W e j
W e j
senN 2
sen 2
-
DTFT de la Ventana
|W (ej)|
A
-
105
|H (ej)|
|Hi (ej)|
1+
1-
W (e j( - ) )
Ejemplos de ventanas
w [n]
Ventana Rectangular
wn 1, 0 n N 1
w [n]
2Nn11 ,
wn
2 n 1
2
,
N 1
0n
N 1
2
N 1
2
n N 1
106
w [n]
1
Ventana de Hanning
wn 12 12 cos
2 n 1
N 1
, 0 n N 1
w [n]
1
Ventana de Hamming
, 0 n N 1
2 n
N 1
w [n]
1
Ventana de Blackman
2 n 1
N 1
0,08 cos
4 n 1
N 1
w [n]
=4
Ventana de Kaiser
0
2
I 0 1 n
, 0 n N 1
wn
I 0
N 1 2,
I 0 . es funcin de Bessel
107
Tabla comparativa
A, dB
, dB
Rectangular
-13
4/N
-21
1,81/N
Bartlett
-25
8/N
-25
1,33
2,37/N
Hanning
-31
8/N
-44
3,86
5,01/N
Hamming
-41
8/N
-53
4,86
6,27/N
Blackman
-57
12/N
-74
7,04
9,19/N
Ventana
p/ Kaiser de Kaiser
|Hi (ej)|
1+p
1-p
r
0
2.
3.
4.
5.
6.
Hallar hi [n]
Escoger una ventana con error mximo inferior a las tolerancias
Calcular N y redondear hacia arriba
Obtener el filtro h [n] = hi [n] wi [n]
Verificar si las tolerancias son satisfechas:
o Si no satisface, aumentar N e ir al paso 5 hasta que satisfaga
o Si satisface, reducir N e ir al paso 5 mientras satisface
108
Ejemplo 33
Disear un filtro pasa-bajas que cumpla las especificaciones
|Hi (e j)|
1 + 0,02
1 - 0,02
0,01
0
0,2
0,3
|Hi (e j)|
1 + 0,02
1 - 0,02
0,01
0
2. Hallamos hi [n] :
0,2
0,3
C p r 2
hi n
sen0.25n
n
min r , p 0,01
N 80
%********************************************
% Diseo de un filtro digital por Enventanado
%********************************************
% Reinicializar el ambiente
clear;clf;
% PASO 1
deltap=0.02;
deltar=0.01;
wp=0.2*pi;
wr=0.3*pi;
% PASO 2
wc=(wp+wr)/2;
% PASO 3
delta=min(deltar,deltap);
deltadB=20*log10(delta)
109
% PASO 4
N=8*pi/(wr-wp);
N=ceil(N);
if rem(N,2)==1 %Para filtros LP no es necesario
N=N
else
N=N+1
end
%N=N-20
% PASO 5
% Formamos la Ventana de Hanning
w = hanning(N);
w=w';
n=[0:N-1];
stem(n,w);
grid; title('Ventana de Hanning');
ylabel('w[n]'); xlabel('n');
% Respuesta Impulsional Ideal
pause;
hi=(sin(wc*(n-(N-1)/2)))./((n-(N-1)/2)*pi);
hi(((N-1)/2)+1)=wc/pi;
stem(n,hi);
grid; title('Respuesta Impulsional Ideal');
ylabel('hi[n]'); xlabel('n');
% Respuesta Impulsional del Filtro
pause;
h=hi.*w;
stem(n,h);grid;
title('Respuesta Impulsional del Filtro');
ylabel('h[n]'); xlabel('n');
% Formamos los coeficientes de la Ecuacin
b=h;
a=zeros(1,N);
a(1)=1;
% Graficamos la magnitud de la
% respuesta en frecuencia
W=[0:pi/400:0.4*pi];
H=freqz(b,a,W);
Hdecibelios=20*log10(abs(H));
pause;
plot(W/pi,Hdecibelios);
grid; title('Respuesta en frecuencia');
ylabel('|H(e^jw)|, db'); xlabel('w/pi');
110
Ventana de Hanning
1
0.9
0.8
w[n]
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
10
20
30
n
Respuesta Impulsional Ideal
40
50
60
0.25
0.2
hi[n]
0.15
0.1
0.05
0
-0.05
-0.1
10
20
30
n
40
50
60
40
50
60
0.2
h[n]
0.15
0.1
0.05
-0.05
10
20
30
n
111
Respuesta en frecuencia
20
|H(e^jw)|, db
-20
-40
-60
-80
-100
0.05
0.1
0.15
0.2
w/pi
0.25
0.3
0.35
0.4
b =
0.0000
-0.0001
0.0000
0.0003
0.0008
0.0008
0.0000
-0.0015
-0.0028
-0.0025
0.0000
0.0039
0.0066
0.0056
0.0000
-0.0079
-0.0131
-0.0108
0.0000
0.0147
0.0243
0.0202
0.0000
-0.0283
-0.0483
-0.0422
0.0000
0.0733
0.1575
0.2245
0.2500
0.2245
0.1575
0.0733
0.0000
-0.0422
-0.0483
-0.0283
0.0000
0.0202
0.0243
0.0147
0.0000
-0.0108
-0.0131
-0.0079
0.0000
0.0056
0.0066
0.0039
0.0000
-0.0025
-0.0028
-0.0015
0.0000
0.0008
0.0008
0.0003
0.0000
-0.0001
0.0000
112
N 1 2,
I 0 . es funcin de Bessel
%******************************************************
% Diseo de un filtro pasa-bajas empleando la ventana de Kaiser
%******************************************************
close all; clear all;
%PASO 1
wp=0.2*pi
wr=0.3*pi
deltap=0.02
deltar=0.01
delta=min(deltap,deltar)
%PASO2
wc=(wp+wr)/2
%PASO3
deltaw=wr-wp
A=(-1)*20*log10(delta)
if A<21 beta=0
elseif A<=50
beta=0.5842*((A-21)^(0.4))+0.07886*(A-21)
else
beta=0.1102*(A-8.7)
end
N=((A-8)/(2.285*deltaw))+1
N=ceil(N)
if rem(N,2)==1
N=N
else
N=N+1
end
alfa=(N-1)/2
%PASO 4
wkaiser=kaiser(N,beta)
w=wkaiser'
113
n=0:N-1;
hi=(sin(wc*(n-alfa)))./(pi*(n-alfa))
hi(((N-1)/2)+1)=wc/pi;
x=length(hi)
y=length(w)
h=hi.*w
% Formamos los coeficientes de la Ecuacin
b=h;
a=zeros(1,N);
a(1)=1;
% Graficamos la magnitud de la
% respuesta en frecuencia
W=[0:pi/400:0.4*pi];
H=freqz(b,a,W);
Hdecibelios=20*log10(abs(H));
plot(W/pi,Hdecibelios);
grid; title('Respuesta en frecuencia');
ylabel('|H(e^jw)|, db'); xlabel('w/pi');
Respuesta en frecuencia
10
-10
|H(ejw)|, db
-20
-30
-40
-50
-60
-70
-80
0.05
0.1
0.15
0.2
w/pi
0.25
0.3
0.35
0.4
%******************************************************
%Diseo de un filtro pasa-altas empleando la ventana de Kaiser
%******************************************************
close all; clear all;
%PASO 1
wp=0.5*pi
wr=0.35*pi
deltap=0.021
deltar=0.021
delta=min(deltap,deltar)
%PASO2
wc=(wp+wr)/2
%PASO3
deltaw=wp-wr
A=(-1)*20*log10(delta)
if A<21 beta=0
114
elseif A<=50
beta=0.5842*((A-21)^(0.4))+0.07886*(A-21)
else
beta=0.1102*(A-8.7)
end
N=((A-8)/(2.285*deltaw))+1
N=ceil(N)
if rem(N,2)==1
N=N
else
N=N+1
end
alfa=(N-1)/2
%PASO 4
wkaiser=kaiser(N,beta)
w=wkaiser'
n=0:N-1;
hi=(sin(wc*(n-alfa)))./(pi*(n-alfa))
%hi(((N-1)/2)+1)=wc/pi;
hi=(-1)*hi
hi(((N-1)/2)+1)=1-(wc/pi)
h=hi.*w
% Formamos los coeficientes de la Ecuacin
b=h;
a=zeros(1,N);
a(1)=1;
% Graficamos la magnitud de la
% respuesta en frecuencia
W=[0.2*pi:pi/400:pi];
H=freqz(b,a,W);
Hdecibelios=20*log10(abs(H));
plot(W/pi,Hdecibelios);
grid; title('Respuesta en frecuencia');
ylabel('|H(e^jw)|, db'); xlabel('w/pi');
Respuesta en frecuencia
10
-10
-20
|H(ejw)|, db
-30
-40
-50
-60
-70
-80
-90
0.2
0.3
0.4
0.5
0.6
w/pi
115
0.7
0.8
0.9
Ejemplo 34
Disear un filtro pasa-bajas con frecuencia de corte
Solucin
Tomamos 10 muestras (
) dentro de un periodo de la respuesta en
frecuencia ideal:
| , -| *
+
(
)
, Para que la respuesta al impulso , - sea real, , - debe ser conjugada
simtrica con respecto a
.
, , , , , , , , , , , , , , Ahora calculamos la DFT inversa:
clear;clf;
j=sqrt(-1);
H0=1;
H1= exp((-1)*j*0.9*pi);
H2= exp((-1)*j*1.8*pi);
H3=0; H4=0; H5=0; H6=0; H7=0;
H8=conj(H2);
H9=conj(H1);
H=[H0 H1 H2 H3 H4 H5 H6 H7 H8 H9];
h=ifft(H)
W=[0:2*pi/100:2*pi];
H=freqz(h,1,W);
plot(W/pi,abs(H));grid;
1.4
1.2
1
0.8
0.6
0.4
0.2
0 0
0.2
0.4
0.6
0.8
116
1.2
1.4
1.6
1.8
El resultado es:
clear;clf;
j=sqrt(-1);
H0=1;
H1= exp((-1)*j*0.9*pi);
H2= 0.5*exp((-1)*j*1.8*pi);
H3=0; H4=0; H5=0; H6=0; H7=0;
H8=conj(H2);
H9=conj(H1);
H=[H0 H1 H2 H3 H4 H5 H6 H7 H8 H9];
h=ifft(H)
W=[0:2*pi/100:2*pi];
H=freqz(h,1,W);
plot(W/pi,abs(H));grid;
1.4
1.2
1
0.8
0.6
0.4
0.2
0 0
0.2
0.4
0.6
0.8
1.2
1.4
1.6
1.8
El resultado es:
117
118
Filtro Adaptativo
Cancelacin de ruido con filtro adaptativo
Seal y
Ruido
, -
, -
, -
, -
ADC
+
, -
Ruido
, ADC
Filtro Adaptativo
, , -
Algoritmo LMS
, - , -
DAC
y(m)=sum;
e(m)=d(m)-y(m);
for i=1:1:Nw
w(i)=w(i)+2*mu*e(m)*x(m-i+1);
end
end
subplot(2,1,1);
plot(t,s);grid;title('Seal original');
subplot(2,1,2);
plot(t,d);grid;title('Seal original + Ruido');
pause;
subplot(2,1,1);
plot(t,s);grid;title('Seal original');
subplot(2,1,2);
plot(t,e);grid;title('Seal restaurada');
wavwrite(d,'arch_voz_ruid.wav');
wavwrite(e,'arch_voz_rest.wav');
Seal original
0.15
0.1
0.05
0
-0.05
-0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.5
0.6
0.7
0.5
0.6
0.7
0.1
0.2
0.3
0.4
Seal restaurada
0.2
0.1
0
-0.1
-0.2
0.1
0.2
0.3
0.4
120
ANEXO
Tablas de Transformadas tomadas de
OPPENHEIM A. V., SCHAFER R.W. Tratamiento de Seales en Tiempo Discreto.
121
Transformada Z
121
122
DTFT
123
124
125
DFS
126
DFT
127