4
Universidad de El Salvador Facultad de Ingeniería y Arquitectura Escuela de Ingeniería Eléctrica Análisis de Señales y Sistemas Manuel Edgardo Orellana Castillo José Rigoberto Osegueda Miranda Elaboración de Filtro Digital FIR Paso Alto con Ventana Hanning Resumen Los filtros digitales son sistemas de tiempo que puede realizar funciones de filtrado de señales. Una clase importante de filtros digitales es aquella cuya respuesta al impulso es finita y se le denomina FIR. En este ensayo se plantea el desarrollo de un filtro digital FIR pasa alto mediante ventana Hanning con frecuencias de operación de: fs = 300 Hz, y fp = 400 Hz y una banda de transición a 100 Hz con una atenuación mínima en la banda de supresión de 44 dB, en el entorno de desarrollo de octave bajo la plataforma de Linux, utilizando funciones de la librería de señales y archivos de codificación M. El proceso de diseño consiste en establecer el orden del filtro en base a la banda de transición y satisfacer las especificaciones planteadas de las bandas de supresión y paso. Introducción El juego de herramientas para procesamiento de señales (signal-1.0.11) de octave contiene funciones propias para diseño de filtros digitales con respuesta al impulso finita (FIR) por lo tanto se hará uso de octave y algunas de estas funciones serán empleadas en la implementación del filtro, Además en este diseño se hará uso de codificación desde archivo con extensión M para un mayor entendimiento y posibilidades de documentación y comentario. Diseño de Filtro FIR Pasa Alto con tipo de Ventana Hanning Como se había mencionado Octave posee funciones para implementación directa de filtros digitales FIR, la funciona “fir1” diseña filtros FIR por el método de ventanas. La función es llamada desde el archivo de codificación en donde también se han definido parámetros de diseño del filtro. El prototipo de la función fir1 es la siguiente: B = fir1(N,W,'tipo',ventana,'normalización') Donde: B: Vector de coeficientes de longitud (N+1). N: Orden del filtro. W: Frecuencia de corte. Tipo: 'high' para un pasa alto. Ventana: Ventana Hanning de longitud (N+1). N: Normalizado a la unidad. El filtro resultante es real y tiene fase lineal esto es posee simetría par en sus coeficientes. Para filtros con una banda de paso cercana a la mitad de la frecuencia de muestreo es decir pasa alto N debe ser par. Con respecto al ventaneo empleado. La ventana Hanning es una función que corresponde al coseno elevado y esta dada por: Donde n = 0, 1, . . . , N − 1. de manera similar en octave se accede a esta ventana con la función 'hanning()' que se muestra a continuación. Ventana Hanning.

Reporte Filtro Fir

Embed Size (px)

Citation preview

Page 1: Reporte Filtro Fir

Universidad de El SalvadorFacultad de Ingeniería y Arquitectura Escuela de Ingeniería EléctricaAnálisis de Señales y Sistemas

Manuel Edgardo Orellana CastilloJosé Rigoberto Osegueda Miranda

Elaboración de Filtro Digital FIR Paso Alto con Ventana HanningResumen

Los filtros digitales son sistemas de tiempo que puede realizar funciones de filtrado de señales. Una clase importante de filtros digitales es aquella cuya respuesta al impulso es finita y se le denomina FIR.En este ensayo se plantea el desarrollo de un filtro digital FIR pasa alto mediante ventana Hanning con frecuencias de operación de: fs = 300 Hz, y fp = 400 Hz y una banda de transición a 100 Hz con una atenuación mínima en la banda de supresión de 44 dB, en el entorno de desarrollo de octave bajo la plataforma de Linux, utilizando funciones de la librería de señales y archivos de codificación M. El proceso de diseño consiste en establecer el orden del filtro en base a la banda de transición y satisfacer las especificaciones planteadas de las bandas de supresión y paso.

Introducción

El juego de herramientas para procesamiento de señales (signal-1.0.11) de octave contiene funciones propias para diseño de filtros digitales con respuesta al impulso finita (FIR) por lo tanto se hará uso de octave y algunas de estas funciones serán empleadas en la implementación del filtro, Además en este diseño se hará uso de codificación desde archivo con extensión M para un mayor entendimiento y posibilidades de documentación y comentario.

Diseño de Filtro FIR Pasa Alto con tipo de Ventana Hanning

Como se había mencionado Octave posee funciones para implementación directa de filtros digitales FIR, la funciona “fir1” diseña filtros FIR por el método de ventanas. La función es llamada desde el archivo de codificación en donde también se han definido parámetros de diseño del filtro. El prototipo de la función fir1 es la siguiente:

B = fir1(N,W,'tipo',ventana,'normalización')

Donde:B: Vector de coeficientes de longitud (N+1).N: Orden del filtro.W: Frecuencia de corte. Tipo: 'high' para un pasa alto.Ventana: Ventana Hanning de longitud (N+1).N: Normalizado a la unidad.

El filtro resultante es real y tiene fase lineal esto es posee simetría par en sus coeficientes.Para filtros con una banda de paso cercana a la mitad de la frecuencia de muestreo es decir pasa alto N debe ser par. Con respecto al ventaneo empleado. La ventana Hanning es una función que corresponde al coseno elevado y esta dada por:

Donde n = 0, 1, . . . , N − 1. de manera similar en octave se accede a esta ventana con la función 'hanning()' que se muestra a continuación.

Ventana Hanning.

Page 2: Reporte Filtro Fir

Esta ventana es la que se aplicará al filtro para obtener un mínimo de atenuación de 44dB.El diseño del filtro digital en su totalidad esta basado en el uso de estas funciones, lo que interesa entonces es establecer los parámetros de la función fir1 para satisfacer las especificaciones de diseño.

Dado para un pasa alto con banda de supresión con frecuencias inferiores a fs = 300Hz y con una banda de paso de frecuencias superiores a fp = 400Hz, se establece una frecuencia de corte fc = (fs+fp)/2 = 350Hz y una banda de transición de 100Hz. Utilizando el criterio de Nyquist sobre la frecuencia más dinámica se establece una frecuencia de muestreo de 2000. por lo que la frecuencia de Nyquist será fn = fs/2. Para la banda de transición de 100Hz un orden apropiado se establece a N = 70.Establecidas las características del filtro pasa alto se procede a su implementación en octave a través del archivo M de la siguiente manera.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% Diseño de filtro digital FIR pasa alta %%%% mediante el método de la ventana  %%%% Hanning haciendo uso de la función fir1 %%%% %%%% Jose Rigoberto Osegueda Miranda %%%% Manuel Edgardo Orellana Castillo %%%% %%%% Fecha: 24 de Junio de 2011 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Descripción del filtro % fc : frecuencia de operación % fm : frecuencia de muestreo % fn : frecuencia de Nyquist % n  : orden el filtro % fs : frecuencia en banda de rechazo % fp : frecuencia en banda de paso fs = 300; fp = 400; fc = (400+300)/2; fm = 2000; fn = fm/2; n = 70; b = fir1(n,fc/fn,'high',hanning(n+1),'scale'); [H,f] = freqz(b,1,512,fm); figure(1), subplot(111);semilogx(f,20*log10(abs(H))); %axis([100 1000]); title('Respuesta en frecuencia'); ylabel('Magnitud [dB]'); xlabel('frecuencia [Hz]'); grid; figure(2), subplot(111);plot(f,abs(H));grid; title('Respuesta en Frecuencia'); ylabel('Magnitud'); xlabel('Frecuencia Hz');%  Descripción  de   las  señales  a   filtrar   y filtrado t = 0:0.01:100; signal1 = sin(2*pi*t); 

signal2 = sin(2*pi*25*t); %signal3 = real(conv(signal1,signal2)); signal4 = signal1 + signal2; filtrado1 = filter(b,1,signal4); %filtrado2 = real(conv(b,signal4)); % Gráficos de resultados figure(2), subplot(311);plot(signal1);axis([0 100]);grid; title('Senal de Baja Frecuencia'); ylabel('Amplitud'); xlabel('Tiempo'); subplot(312);plot(signal2);axis([0 100]);grid; title('Senal de Alta Frecuencia'); ylabel('Amplitud'); xlabel('Tiempo'); subplot(313);plot(signal4);axis([0 100]);grid; title('Senal Combinada') ylabel('Amplitud'); xlabel('Tiempo'); figure(3), subplot(211);plot(signal4);axis([50 200]);grid; title('senal a ser Filtrada'); ylabel('Amplitud'); xlabel('Tiempo'); subplot(212);plot(filtrado1);axis([50 200]);grid; title('Senal Filtrada') ylabel('Amplitud'); xlabel('Tiempo'); figure(5), freqz(b,1,512,fm); figure(6), plot(b);title('Respuesta al Impulso');% Fin de aplicación de filtrado.

Como ya se mencionaba antes la función fir1 devuelve los coeficientes de un filtro fir. En el código. En la linea donde se hace el llamado a la función fir1. b= fir1(n,fc/fn,'high',hanning(n+1),'scale')

Se establece un filtro pasa alto “high” de orden n = 70, frecuencia de corte de fc = 350Hz con ventana hanning(n+1), normalizado a la unidad scale. La función [H,f]   =   freqz(b,1,512,fm) devuelve la respuesta en frecuencia “H” la cual se gráfica en la figura 1 en una escala logarítmica.Las señales signal1   =  sin(2*pi*t) y signal2   = sin(2*pi*25*t) son las señales de baja y alta frecuencia correspondientemente, la señal signal4 = signal1 + signal2 corresponde a la suma de las señales anteriores y es la cual será filtrada con la función filtrado1   =   filter(b,1,signal4) que realiza el proceso de filtrado en base a los siguientes parámetros “b” coeficientes del filtro, “1” denota filtro FIR, “signal4” señal a ser filtrada.Posterior a esto se grafican todas las señales generadas para el proceso de filtrado y en la figura 5 la función freqz(b,1,512,fm) hace ploteo de la banda de supresión, paso y la fase del filtro fir. El plot(b) final en el código gráfica la respuesta al

Page 3: Reporte Filtro Fir

impulso del filtro fir pasa alta desarrollado.  Los gráficos obtenidos del proceso de filtrado se muestran a continuación.

Figura 1.Este gráfico anterior representa la respuesta en frecuencia del filtro desarrollado en escala logarítmica en la frecuencia en donde se puede observar la atenuación de 44 dB y la banda de transición definida por el lóbulo principal.

La gráfica siguiente esta en escala lineal con el propósito de mostrar las frecuencias de operación fp = 400 Hz, fs = 300 Hz, fc = 350 Hz y la banda de transición igual a 100 Hz. El gráfico también representa la respuesta en frecuencia.

Figura 2.

Dado que el filtro no atenúa ni amplifica es de esperar que la señal de entrada filtrada posea la misma amplitud en la salida del sistema de filtrado, lo cuál representa una característica importante ya

que no modifica las propiedades de la señal de interés.

Figura 3.Las señales a ser empleadas en la prueba del filtro se muestran en el gráfico anterior, la primera es la de baja frecuencia, a continuación le sigue la señal de alta frecuencia y por último la combinación de ambas que se utilizará en la prueba del filtro FIR pasa alto. La señal combinada es la suma de las señales de baja y alta frecuencia.

Figura 4.

Tras la aplicación del filtrado a la señal combinada de la Figura 3 y figura 4 . Es de esperar que la salida del sistema sea una señal de alta frecuencia dado que el filtro es un pasa alto, lo que también significa que todas aquellas componentes de baja frecuencia se atenuaran. Lo cual es correcto y se observa en la figura 4. Donde la señal resultante del proceso de filtrado es la componente de alta frecuencia de la señal a ser filtrada.

Page 4: Reporte Filtro Fir

A continuación un gráfico en donde se resumen las características del filtro FIR paso alto, en el que se observa: la banda de paso, la banda de supresión y la fase lineal de los filtros FIR.

Figura 5.

Un último gráfico se muestra a continuación la respuesta al impulso del filtro pasa alto desarrollado.

Figura 6.

Conclusión

Los filtros digitales FIR son importantes en aplicaciones donde se desea tener una baja distorsión en la señal a la salida del filtro es decir se tiene el requisito de una respuesta en fase lineal.

El desarrollo de filtros utilizando las herramientas de diseño establecidas previamente, facilita la implementación en diseños más complejos donde se requiera el filtrado. Mejorando así el tiempo de desarrollo y la legibilidad de códigos desarrollados

permitiendo con esto hacer código estándar entre las diferentes plataformas de desarrollo.

Bibliografía

• Diseño de filtros RIF usando funciones ventana, G. Miramontes, ISBN 968-5923-15-9.

• A high-level interactive language for numerical computations , 3º Ed for Octave version 2.1.x , February 1999 , John Eaton.

• Digital Signal Processing Using Matlab v.4 , Vinay K. Ingle, John G. Proakis, ISBN 0534938051 .