Diseño De Filtros Fir Utilizando Ventanas (Matlab)
Ejemplo: filtro FIR de fase lineal diseñado mediante el método de ventana.
» N=44100;
» n=[0:N-1];
»wc=2*pi*5000*(1/44100);
» hd=sin(wc*(n-(N-1)/2))./(pi*(n-(N-1)/2));
» for M=1:128
h(M)=hd((N/2)-64+M);
end
» plot(h)
» xlabel('Muestras');ylabel('Amplitud') |
La función detransferencia que describe a un sistema lineal e invariante en el tiempo se define como
Para un sistema con respuesta de impulso finita, esta ecuación se reduce a:Entonces,
» a(1)=1;
» for k=1:127
a(k+1)=0;
end |
» freqz(h,a,8192,44100)
No estamos en presencia de una respuesta ideal:
» H=fft(h,8192);
» ABSH=abs(H);
»W=linspace(0,44100,8192);
» plot(W(1:8192/2),ABSH(1:8192/2)) |
En las siguientes figuras, se utiliza una ventana rectangular de medida M = 64:
Diseño de Filtros FIR porel método de Ventanas
Ejemplo: diseño de filtro FIR de pasobajo mediante ventana Hamming de largo M = 128.
» N=44100;n=[0:N-1];wc=2*pi*5000*(1/44100);
»hd=sin(wc*(n-(N-1)/2))./(pi*(n-(N-1)/2));
» for M=1:128
h(M)=hd((N/2)-64+M);
end
» hm=Hamming(128);
» for k=0:127
vh(k+1)=hm(128-k);
end
» hh=h.*vh;
»plot(hh);xlabel('Muestras');ylabel('Amplitud') |
La respuesta de frecuencia del filtro es:
Diseño de Filtros FIR por el método de Ventanas
Ejemplo: filtro FIR de fase lineal de pasobajo diseñadomediante ventana rectangular de largo M = 128 para filtrar, por medio del comando filter, la señal del habla “us”, capturada con una frecuencia de muestreo de 44100 Hz.
Elfiltro posee una frecuencia de corte igual a 6500 Hz. y presenta una ganancia unitaria en la banda de paso:
http://audiodifusion.webempresario.cl/DSP/filtros028.pl
Regístrate para leer el documento completo.