UNIVERS IDAD NACIONAL DEL CALLAO FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA INS TITUTO DE INVESTIGACIÓN DE LA FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA DIS EÑO Y S IMULACIÓN DE FILTROS DIGITALES PARA LA CALIDAD DE S ONIDO” Informe Final del Proyecto de Investigación elaborado por el Ing JORGE ELIAS MOS COS O S ANCHEZ Docente Investigador de la FIEE-UNAC. CALLAO - LIMA - PERU 2010 • Periodo de ejecución del 1/01/10 – 31/12/10 • Aprobación del proyecto:”RR. 030-2010-R” CALLAO-LIMA- PERU 2010 - 1- ÍNDICE Pág . INDICE……………………………………………………………………….. 2 RES UMEN…………………………………………………………………… 4 I.- INTRODUCCIÓN…………………………………………………….. 5 1.1. Planteamiento del Problema de Investigación…………………… 6 1.2. Objetivos y Alcances de la Investigación………………………… 6 1.2.1.Objetivo general……………………………………………… 6 1.2.2.Objetivos específicos………………………………………… 6 Importancia y Justificación de la Investigación………………….. 7 1.3.1. Importancia…………………………………………………… 7 1.3.2. Justificación…………………………………………………… 7 1.4. Formulación de la Hipótesis……………………………………….. 7 II.- MARCO TEÓRICO………………………………………………….. 8 2.1. Proceso digital de señales. Adquisición, envío y manipulación 1.3. de datos………………………………………………………………. 8 2.2. Filtros digitales ……………………………………………………. 9 2.3. Clasificción de los filtros digitales…………………………………. 12 2.3.1. Filtros FIR (Finite Impulse Response)…………………….. 12 2.3.2.Filtro Digital IIR (Infinite Impulse Response)………………. 17 2.4. Análisis y diseño de filtros digitalesProceso del circuito ………. 19 2.5. Ejemplos de Cálculo……………………………………………….. 20 2.5.1 Método de transformación de filtros analógicos………… 20 Implementación de filtros IIR en DSP……………………………. 22 2.6. - 2- Pág . 2.7. Diseño de un filtro FIR pasabanda y procesamiento de una señal de audio con ruido filtrada a su salida con Matlab……… 27 2.7.1. Diseño de un filtro FIR pasabanda utilizando series de Fourier…………………………………………………….. 27 Procesamiento de una señal de audio ………………………….. 32 2.10. Proceso del circuito: esquemas del diseño de los filtros………. 37 III.- MATERIALES Y METODOS ……………………………………… 51 IV.- RES ULTADOS …………………………………………………….. 52 V.- DIS CUS ION ………………………………………………………… 53 REFERENCIALES ………………………………………………………… 54 APENDICE …………………………………………………………………. 55 ANEXOS ……………………………………………………………………. 58 2.8. - 3- RES UMEN En este proyecto pretendemos mostrar cómo con ayuda de herramientas para cálculo numérico podemos diseñar filtros digitales apropiados para una gran diversidad de aplicaciones. en estos contenidos, sí resulta de interés que conozcan los alumnos la existencia de herramientas no específicas para diseño de circuitos pero que pueden facilitar mucho la labor e diseño, en este caso de filtros. Tal vez estamos comentiendo un error al decir “no espe íficas” ya que Matlab tiene una completa gama de herramientas para diseño de filtros mediante e ta utilidad. Pero también es cierto que esta “toolbox” ha ido desarrollandose a lo largo de los años pues esas funciones especiales no sonmás que scripts totalmente desarrollados y comprobados en base a los c mandos matemáticos básicos de Matlab. O, lo que es lo mismo, nosotros mis os podemos enriquecer la gama de herramientas mediante el desarrollo de scripts propios para realizar determinadas tareas (porejemplo, para automatizar determinados diseños). En definitiva, el proyecto de investigación que aquí desarrollado se dirige principalmente a los alumnos de Ingenieria Electronica para que puedan usar los resultados y conocimientos aquí mostrados a la hora de mostrar a los alumnos otras formas de realizar diseños electrónicos la vez que adquieren unos conocimientos básicos sobre filtrado. En dicha investigación ademas se toma como punto de partida el PROCES O DIGITAL DE S EÑALES Filtros digitales la Adquisición, envío y manipulación de datos los el Análisis y diseño de filtros digitales el Proceso del circuito filtrado digital en matlab DIS EÑO DE UN FILTRO FIR PAS ABANDA Y PROCES AMIENTO DE UNA S EÑAL DE AUDIO CON RUIDO FILTRADA A S U S ALIDA CON MATLAB - 4- I.- INTRODUCCIÓN El Proyecto de Investigación titulado “DIS EÑO Y S IMULACIÓN DE FILTROS DIGITALES PARA LA CALIDAD DE S ONIDO” desarrollado observamos de la gran importancia que tiene, la justif ión planteada en la investigación que permite realizar y diseñar en forma sustancial mínima la realización de filtros digitales muy aplicados en el tratamiento de la información y su aplicación utilizando Programas como el MTLAB el C++ He alcanzado el objetivo general el cual era: “Diseñar filtros digitales para la calidad del sonido” , lo cual servirá como modelo de desarrollo de temas de laboratorio para el proceso digital de señales Igualmente en la hipótesis que había planteado: “realización del Filtro digital, permitirá ahondar los temas de Comunicaciones, y de aplicación e digitales, señales podemos afirmar tambien que estos filtros digitales no necesariamente son mejor a los analogicos, pues depende de su tecnología de desarrollo por lo que podria ser tema Adelante para otras tesis que quieran ampliar mas. - 5- 1.1. PLANTEAMIENTO DEL PROBLEMA DE INVES TIGACIÓN El problema del sonido de restauración de señal de una grabación de audio realizado en un equipo de mala calidad deberá se filtrada para conseguir una mayor calidad de sonido que el grabado. ro ejemplo puede ser la imagen borrosa adquirida por un mal uso de los objetivos, o una mala cámara. En un inicio, no se tuvo esta problemática pues no se izaba filtros de gran exactitud y el sonido no tenía buena resolución ni buena calidad. La calidad del sonido digital depende de la frecuencia del muestreo y la resolución. Frecuencias de muestreo o de sampleo, se ref re al número de mediciones que se hacen por segundo. Cuanto mayor sea el número de muestras, mejor es la calidad del sonido, por ejemplo: si la velocidad de muestreo es de una cada un segundo, las variaciones del sonido que se produzcan en el intermedio no serán registradas. En la actualidad, los filtros digitales se usan frecuentemente para el tratamiento digital de la imagen o para respuesta fini 1.2. l impulso. OBJETIVOS Y ALCANCES DE LA INVESTIGACIÓN 1.2.1. Objetivo g eneral Simular el diseño de un filtro digital para calidad de sonido. 1.2.2. Objetivo s es pecífico s • Determinar la alta precisión de los filtros digitales FIR IIR como herramientas en la elaboración de nuestro diseño. • Analizar el comportamiento de los diferentes filtros digitales y observar dicha dependencia con el diseño. - 6- • Simular y observar que tipo de resultados nos ofrece e filtro digital. • Orientar el diseño a futuras investigaciones, brindando parámetros de partida para dicho efecto. 1.3. IMPORTANCIA Y JUS TIFICACIÓN DE LA INVESTIGACIÓN 1.3.1. Importanc ia El conocimiento de la restauración de las señales de audio o el sonido, nos orienta simular el diseño de un filtro digital, que nos muestre la repercusión que tiene el mismo, para el mejoramiento de la reproducción de sonido. 1.3.2. Jus tificació n Por lo expresado anteriormente, el proyecto se justifi a porque es un aporte científico de investigación que beneficiará todo aquel que necesite tener información sobre sonido y como repercute en el procesamiento digital de señal 1.4. FORMULACIÓN DE LA HIPÓTES IS El diseño y simulación de filtros digitales es una her amienta tecnológica que permitirá mejorar la calidad de la restauración de la señal de sonido. Variable dependiente : Calidad de restauración de señal de sonido Variable independiente : Filtro digital - 7- II. MARCO TEÓRICO 2.1. PROCES O DIGITAL DE S EÑALES . ADQUIS ICION, ENVIO Y MANIPULACION DE DATOS La tarjeta DAQ son tarjetas insertables que permiten la entrada y salida de datos de computador a otros aparatos donde se conectan sensores y actuadotes para interactuar con el mundo real. Los datos que entran y salen pueden ser señales digitales o análogas simplemente co s de ocurrencias digitales tanto de entrada como de salida. Las tarjetas se comportan como si fueran un puerto más en el computador, y poseen todo un protocolo y sistema de manejo, por lo q entender cada tarjeta, como es su funcionamiento, al igual que otro nstrumento o cualquier instrumento requiere de tiempo y cuidado. Existen tarjetas de alto y de bajo desempeño. Las de alto desempeño son programables y facilitan altas ratas de manejo de info n, pues son en cierta forma inteligentes y suficientes, y por tanto n comprometen la velocidad y el rendimiento del computador. Las tarjetas de bajo desempeño requieren de un control directo del computador, y se deben limitadas por la velocidad de este. El Windows es un sistema operativo que no trabaja en t real, para operaciones donde la rata de muestreo es muy alta, como en aplicaciones de audio, radar, vibraciones y video; aunque para aplicaciones de lentitud considerable es bueno, como en controles de hornos. Las tarjetas como cualquier otro periférico requiere de sus parámetros de programación, y hasta protocolos de comunicación por lo que se requiere de un software Driver que maneje lo bajo de programación y deje en la superficie la posibilidad de programar aplicaciones con los beneficios de dichas tarjetas de una forma sencilla. - 8- 2.2. FILTROS DIGITALES El término filtro digital lo entenderemos como cualquier procesamiento realizado en una señal de entrada digital. Un filtro digital es la implementación en hardware o software de una ecuación diferencia Son sistemas discretos encargados de atenuar o cancela algunos componentes de frecuencias En el área de las señales, el filtrado es un proceso mediante el cual se modifica el contenido espectral de una señal. Ventajas de lo s filtro s dig itales • Alta inmunidad al ruido • Alta precisión (limitada por los errores de redondeo n la aritmética empleada • Fácil modificación de las características del filtro • Muy bajo costo • Los filtros digitales están reemplazando rápidamente analógicos. - 9- los filtros Filtro Digital Software: C,C++,V .Basic,Assembler,Excel IMPLEMENTARIOS Hardware: DSPIC, DSP, FPGA C++ ASS - 10 - C++ ASS UHDL CLASIFICACION CLASIFICACION No Recursivos Recursivos Invariante al Tiempo - 11 - Variante al Tiempo (adaptivo) 2.3. CLAS IFICACIÓN DE LOS FILTROS DIGITALES 2.3.1. FILTROS FIR (Finite Impuls e Res po ns e) Los filtros digitales se usan frecuentemente para tratamiento digital de la imagen o para R e s pue s ta finita al im puls o . Se trata de un tipo de filtros digitales en el que, como su nombre indica, si la entrada es una señal impulso, la salida tendrá un número finito de términos no nulos. tratamiento del sonido digital. FIR Para obtener la salida sólo se basan en entradas actua y anteriores. Su expresión en el dominio n es: En la expresión anterior N es el orden del filtro, que también coincide con el número de términos no nulos y con el número de coeficientes del filtro. Los coeficientes son bk. La salida también puede expresarse como la convolución de la señal de entrada x(n) con la respuesta impulsional h(n ): Aplicando la transformada Z a la expresión anterior: - 12 - La estructura básica de un FIR se presenta en la Fig. 2. Estructura básica de un FIR Se puede ver que es la misma Entrada retardada cada vez más en el tiempo, multiplicada por diversos coeficientes y finalmente su da al final. Hay muchas variaciones de esta estructura. Si tenemos una respuesta de frec ncia como objetivo, conseguiremos que la respuesta del filtro se asemeje más a ella cuanto más largo sea o número de coeficientes tenga. En la figura 2 los términos ß son los coeficientes y los T son retardos. Pueden hacerse multitud de variaciones de esta estructura. Hacerlo como varios filtros en serie, en cascada, etc. Hay tres métodos básicos para diseñar este tipo de filtros: Método de las ventanas. Un filtro FIR de orden M se describe por la siguiente ecuación diferencia y[n] =B0 x[n] +B 1x[n -1] +……+B M x[n - M] , lo que da lugar a la función de transferencia -1 -M H(z) = B0 + B1 z + B M z . - 13 - La secuencia {BK} son los coeficientes del filtro. No hay recursión, es decir, la salida depende sólo de la entrada y no de valores pasa s de la salida. La respuesta es por tanto una suma ponderada de valores pasados y presentes de la entrada. De ahí que se denomine Media Movimiento (Moving Average) La función de Transferencia tiene un denominador constante y sólo tiene ceros. La respuesta es de duración finita ya que si la entrada se mantiene en cero durante M periodos consecutivos, la salida será tambié ro Ventanas El truncamiento de las series de Fourier produce los filtros FIR con oscilaciones indeseables en la banda de paso y en la banda de rechazo, las cuales resultan de la lenta convergencia de las series de Fourier. Para reducir estas oscilaciones, una clase particular funciones son usadas para modificar los coeficientes de Fourier (respuesta impulso), estas son llamadas ve ntanas El truncamiento de las series infinitas de Fourier es equivalente a la multiplicación de los coeficientes co • a función ventana. Rectangular Es la más ineficiente La atenuación máxima de ventana tangular es de 13 decibeles. • Hamming La ecuación para calcular los coeficientes de una ventana de Hamming es: La atenuación máxima de la ventana hamming es de 43 decibeles. - 14 - • >Blackman Los coeficientes para la ventana blackman son: Las ventanas de Blackman tienen lóbulos centrales levemente más anchos y menos da de la banda lateral que la longitud equivalente Hamming. La atenua máxima de la ventana blackman es de 58 decibeles - 15 - Filtros El procesamiento de señales digitales es fundamental e muchas áreas de la Informática Industrial relacionadas con el control y l regulación automática. Los filtros son usados en muchas aplicaciones, algunas de las cuales se citan a continuación: Ø Filtro Pas o Bajo .- Deja pasar frecuencias bajas, y atenúa la saltas. Ø Filtro Pas o Alto .- Deja pasar frecuencias altas, y atenúa las bajas. Ø Filtro Pas o Banda .- Deja pasar las frecuencias que se encuentren dentro de un intervalo. Ø Filtro RechazaBanda .- No deja pasar las frecuencias que se encuentren dentro de un intervalo. Filtros recuperado res de s eñal: Filtros basados en Funcio nes de Trans ferencia. Filtros de convo lució n . Normalmente usados para el control en lazo cerrado de una planta lineal e invariante en el tiempo. Filtros de Res pues ta Finita al Impuls o (Finite Im p uls e R es pons e - FIR) y de Res pues ta Infinita al Impuls o (Infinite Im puls e R e s pons e - IIR), y otro tipo de filtros avanzados basados en transformada Z. Filtros para encontrar patrones, de análisis de la señal, etc Existen dos tipos básicos de filtros digitales: Ø No Recursivos Ø Recursivos. - 16 - Para los filtros no recursivos la función de transferencia contiene un número finito de elementos, cuya ecuación en diferencias es: A los primeros pertenecen los filtros tipo FIR, caracte s por no poseer realimentación, y a los segundos los filtros tipo IIR, en donde la salida se encuentra dada en función de la entrada y de las salid s en instantes previos. 2.3.2. FILTRO DIGITAL IIR (Infinite Impuls e Re s pons e) es un tipo de filtro digital que si su entrada es un impulso (un delta de kronecker) la salida sera un numero ilimitado de terminos no nulos es decir que nunca volverá aun estado de reposos para obtener la salida se emplean valores de entrada actual y anteriores .además valores de salidas anteriores que son almacenados en memoria y realimentados ala entrada también se llaman filtros digitales recursivos su expresión en dominio discreto es: - 17 - Se desea eliminar alguna componente de frecuencia (comúnmente llamado ruido), identificación de un sistema desconocido o ecualización de un canal. Respuesta infinita al impulso, y su forma es del tipo Donde los coeficientes “a” y “b” determinan el orden y el número de polos del filtro. El orden del filtro esta dado por el máximo entre P y Q Es tructura de un filtro dig ital IIR Se puede ver en la figura como la salida y (K) es int oducido de nuevo en el sistemas la transformada Z del mismo es : Vemos ahora tenemos un denominador, es decir, ceros además de polos que son causantes de las posibles inestabilidades que pueden comprometer la estabilidad y causalidad del sistema - 18 - Los filtros digitales se clasifican en Filtros FIR: En estos sistemas la entrada depende de entradas anteriores, la respuesta s finita, además es no recursivo. "La Función del Sistema puede expresarse como un polin en el numerador" Filtros IIR: En estos sistemas la salida depende de salidas anterio , la respuesta es infinita y es recursivo.N > 0 "La Función del Sistema tendrá polos, de c/n de los cuales Contribuye con una sec. Exponencial a la k(n)" 2.4.- ANÁLIS IS Y DIS EÑO DE FILTROS DIGITALES . PROCES O DEL CIRCUITO Reglas de diseño • Todos los polos deben estar dentro de la circunferencia unidad. - 19 - • Los ceros pueden estar en cualquier parte del sistema. • Si hay polos complejos deben estar acompañados de su respectivo polo o cero conjugado. Sugerencias • Normalizar la respuesta de amplitud del filtro. • Las funciones del filtro deben ser propias M<N 2.5.- EJEMPLOS DE CÁLCULO 2.5.1 MÉTODO DE TRANSFORMACIÓN DE FILTROS ANALÓGICOS . 1. Diseñar un filtro digital IIR pasa-bajos para filtrar una señal analógica que es muestreada, y debe ser filtrada según los siguientes r querimientos: • Frecuencia de corte de la banda pasante: 1000 Hz • Frecuencia de corte de la banda suprimida: 1600 Hz • Frecuencia de muestreo y reconstrucción: 8 kHz • Atenuación en la banda pasante: 3 dB • Atenuación en la banda suprimida: 23 Db S o luc ió n: Para realizar el diseño, se debe partir de las especificaciones digitales. En este caso, como se trata de una señal analógica que se muest ea, se filtra digitalmente y finalmente se reconstruye, se deben calcular las frecuencias digitales de corte en base a las frecuencias analógicas dadas y la frecuencia de muestreo con la que se trabaja - 20 - Los rizados en la banda pasante y suprimida están especificados en dB. Los valores de los mismos en veces se pueden calcular como: En función de dichas frecuencias de corte y rizados en cada banda se expresan las: Especificaciones digitales. Este es el punto de partid para el diseño del filtro digital El paso siguiente, es elegir la transformación que se va a utilizar. La idea fundamental es diseñar un filtro digital pero calculando un filtro analógico. Utilizando algún tipo de transformación se realiza el paso de un dominio a otro. En un sentido, se obtienen las especificaciones de frecuencia del filtro analógico transformando los valores digitales. En el sentido inverso, se obtienen los coeficientes del filtro digital transformando el filtro analógico calculado. - 21 - La transformación invariante al impulso permite calcul este filtro siempre y cuando no se produzca solapamiento apreciable en las altas frecuencias ya que el filtro, al no ser ideal, no es exactamente de banda limitada. Esto imposibilita diseñar un filtro pasa-altos o rechazabanda con este método. El método de la transformación bilineal no ofrece problemas en este sentido. Si bien deforma la respuesta espectral (dado que la transformación no es lineal), en las bandas donde la respuesta es plana se mantiene dic forma. Para contrarrestar el efecto que produce la transformación no lineal de la escala de frecuencias, previamente se calculan las frecuencias de corte transformadas (pre-distorsión). En el caso de utilizar la transformación invariante al impulso, la transformación de la escala de frecuencias vuelve a dar los mismos valores nalógicos que se tenían como especificaciones iniciales 2.6.- IMPLEMENTACIÓN DE FILTROS IIR EN DSP. Filtros FIR Existen diversos métodos para el diseño de filtros FIR, entre ellos destacan tres. El más sencillo es el de enventanado de la respuesta impulsional. Durante mucho tiempo se ha trabajado en el diseño de filtros analógicos obteniendo para ello implementaciones caracterizadas porque al llevarlas al campo digital tenían una respuesta de tipo IIR. Parece más o menos intuitivo el pensar que si tomamos la secuencia infinita de la respuesta impulsional h(n) y nos quedamos con una parte de ella, el resultado desde el punto de vista de la función de filtrado del sistema sería el mismo. Aunque grosso modo eso es así, desde el punto de vista frecuencial se producen una serie de deformaciones en el espectro del filtro obtenido que nos - 22 - llevarían a considerables errores a no ser por el uso de ventanas pensadas para este uso. Esas ventanas no son más que secuencias de longitud finita que tienen una respuesta frecuencial que permite que al ser multiplicadas por la función de transferencia utilizada el error no sea muy grande. Esto es una descripción intuitiva y nada rigurosa del sentido del enventanado. Básicamente se utilizan tres tipos de ventanas, la de Kaiser, la de Hamming y la de Blackman. Nosotros estudiaremos más adelante un ejemplo concreto. Otra metodología simple para el diseño de filtros la ofrece el muestreo en frecuencia de la respuesta Ideal. El procedimiento asegura un error nul para la aproximación en un conjunto finito de frecuencias equiespaciadas, aquéllas en las que se muestrea la respuesta frecuencial ideal. El diseño por muestreo en frecuencia es muy popular da su sencillez. Presenta, sin embargo, importantes deficiencias. No es posible controlar directamente la amplitud del error. Tampoco se conoce n criterio estimativo del orden del filtro. Para conseguir un comportamiento ajustado una plantilla debe acudirse a una estrategia de ensayo y error tediosa, que en la mayorí de los casos proporciona un filtro de orden excesivo y que, incluso, no garantiza la existencia de solución. La tercera metodología empleada es la del uso de filtr óptimos, considerados así aquellos con rizado de amplitud constante. La respuest frecuencial que ofrecen los filtros diseñados mediante la manipulación directa del comportamiento ideal (el enventanado de la respuesta impulsional o el muestreo de la respuesta frecuencial) presenta un error en las bandas de paso y atenuadas cuya amplitud crece en las proximidades de las bandas de transición. - 23 - La solución a ese problema que aporta esta metodología es la de repartir el error por las diversas bandas usando una función que lo permita. En nuestro caso, para ejemplificar, usaremos el método de Parks-McClellan o también denominado método de Remez. A continuación presentamos dos ejemplos de diseño de filtros FIR empleando Matlab. Entre las propiedades que podremos comprobar en los resultados del enventanado para la obtención de filtros FIR está, gra as al ajuste del orden del filtro por el método de Remez, que la anchura de la banda de transición del filtro, que se corresponde con la anchura del lóbulo principal de la transformada de la ventana, es tanto menor cuanto mayor sea la longitud, y en definitiva el orden, de la misma. También descubriremos el por qué la ventana de Kais er es una de las más utilizadas. Sólo dos parámetros son necesarios para la obtención del filtro y dichos parámetros (beta y N) son fácilmente obtenibles a partir de unas fórmulas fáciles de usar. Su sencillez, por tanto, es lo más destacable. Y podremos observar que a diferencia del caso de los f ros IIR, el cumplimiento de los requisitos del filtro no se realiza de una forma tan exacta e inmediata. Esta característica es propia del uso de la técnica de enventanado en la que generalmente se acepta un notable sobrecumplimiento de los requerimientos para la banda de paso, debido a que los máximos del error en la banda de paso y la banda atenuada son del mismo ord n de magnitud, ya - 24 - que ambos provienen de la amplitud de los lóbulos secundarios d la transformada de la ventana. Por último, veremos que el orden del filtro FIR obteni por el método de Remez es menor que el obtenido usando la ventana de Kaiser. Como recordaremos más adelante, del estudio del diseño de filtros analógicos la aproximación que menor orden requiere para satisfacerlas es aquella en que los máximos del valor absoluto del error en la banda de paso son todos iguales, así como en la banda de atenuación. Es la aproximación elíptica la que al tener un comportamiento de rizado constante en ambas bandas bilita que el error presente alternativamente máximos y mínimos. Es por ta de esperar que el caso de diseño de filtros FIR no sea distinto y este t po de comportamiento resulte óptimo. Esto se traduce en que para una selectividad y una discriminación dada no exista un diseño de menor orden que el que presenta comportamiento con rizado de amplitud constante. O de otra forma, fijados el orden y la selectividad del filtro, no puede obtenerse un diseño con menor discriminación. Des cripcion • Filtra una señal completa de audio, utilizando el filtro FIR a impleme r. • El filtro debera ser implementado en un modulo FIR.como una funcion de C tal como lo especifica su encabezado asociado fir.h. • La funcion de filtrado recibe las muestras una a una, almacena en un buffer de estados (memoria) del mismo tamaño no que el orden del filtro. • La Convolucion se realiza entonces entre los coeficientes del FIR y las muestras almacenadas en el buffer. - 25 - • El número de taps, el buffer de estados y los coeficientes el filtro serán suministrados por otro m´odulo (fil dat.asm), por lo q e dentro del módulo fir.c deben declararse las variableas asociadas a esto datos como externas Optimizacion del FIR Una vez escrita una primera version funcional del FIR, debera modificarse su codigo hasta lograr el mejor tiempo de ejecucion posible. Para la optimizacion del tiempo de ejecucion se sugiere probar las siguientes posibilidades: • Cambiar contadores locales por globales. • Cambiar buffers locales por globales. • Utilizar punteros. • Utilizar variables de tipo register. • Cambiar operador modulo por sentencia if Forma de trabajo 1. Verificacion con simulador basico RUN563 MATLAB 2. Generar filtro, se˜nal y ruido en MATLAB usando genero senales.m 3. Salvar se˜nal ruidosa y filtro como archivos .asm 4. Filtrar en MATLAB. RUN563 5. Tomar filtro y se˜nal ruidosa. 6. Filtrar con funci´on C. 7. Sacar se˜nal filtrada con biblioteca libdsp. MATLAB Tomar resultado desde RUN563. Comparar con resultado MATLAB usando comparo soluciones.m Verificación con simulador grafico (SIM56300) - 26 - Previo a la prueba en el simulador se deber´a eliminar todo código de I/O que exista los m´odulos desarrollados, en particular las partes que guardan y leen resultados con las funciones guardar ascii leer ascii. Para este fin se recomienda utilizar las directivas #if, #else y #endif (vistas en la práctica 0) para lograr la compilaci´on condicional. MATLAB Generar filtro, se˜nal y ruido en MATLAB usando genero nales.m Salvar señal ruidosa y filtro como archivos .asm Filtrar en MATLAB. SIM56300 (se recomienda utilizar un archivo de comandos) Tomar filtro y señal ruidosa. Filtrar con función C. Salvar señal filtrada en formato .LOD con función SAVE del SIM. 2.7. DIS EÑO DE UN FILTRO FIR PAS ABANDA Y PROCES AMIENTO DE UNA S EÑAL DE AUDIO CON RUIDO FILTRADA A S U S ALIDA CON MATLAB 2.7.1. DIS EÑO DE UN FILTRO FIR PAS ABANDA UTILIZANDO S ERIE clear all; close all; fp1 = 2e3; fs1 = 10e3; fs2 = 12e3; fp2 = 16e3; fm = 44e3; - 27 - FOURIER Interesa que las especificaciones del filtro sean simétricas por lo que calculo cual de las dos zonas de transición es menor y modifico la frecuencia de pasa banda. [mm,jj] = min([fs1-fp1 fp2-fs2]); if jj==1 fs2 = fp2-mm; else fs1 = fp1+mm; end Calc ulo de lo s parámetro s del filtro pas a banda Fc y F0 fc1 = (fp1+fs1)/2; fc2 = (fp2+fs2)/2; Fc1 = fc1/fm; Fc2 = fc2/fm; F0 = (Fc1+Fc2)/2; Fc = (Fc2-Fc1)/2; windows=['boxcar ';'bartlett';'hamming ';'hanning ';'blackman']; colors=['b ';'r ';'m ';'--b';'--r']; Núme ro de punto s del filtro N solo puede ser impar y la secuencia deber ser par ya ue es la única forma de diseñar un filtro FIR pasa banda - 28 - N = 41; n=0:N-1; Filtro pas o bajo ideal hlpi = 2*Fc*sinc(2*Fc*(n-(N-1)/2)); Calc ulando delta delta = zeros(1,N); delta((N+1)/2) = 1; Aplicamos ventanas espectrales a este filtro ideal M=500; %% Nº de puntos para calcular la Resp Freq for i=1:size(windows) eval(['w=' windows(i,:) '(N);']); hlp = hlpi.*w'; Normalizar de forma que |H(0)|=1 hlp = hlp/sum(hlp); hbs = delta - 2*hlp.*cos(2*pi*F0*(n-(N-1)/2)); [H,f]=freqz(hbs,1,M,fm); plot(f,abs(H),colors(i,:)); hold on; if (i==5) - 29 - Ventana de blackma figure;stem(n,hbs,'o');grid;pause; eval(['print -depsc2 fir_bs_coef_N' num2str(N)]); close; figure;plot(f,20*log10(abs(H)));grid; axis([-inf inf -60 1]); xlabel(['Frecuencia (Hz)']); ylabel(['|H(F|']);pause; eval(['print -depsc2 fir_bs_rf_N' num2str(N)]); close; end end grid;hold off; legend('rect','bartlett','hamming','hanning','blackman'); xlabel(['Frecuencia (Hz)']); ylabel(['|H(F|']); title(['Filtro Parabanda, fc=' num2str(Fc*fm/1000) 'KHz, f0=' ... num2str(F0*fm/1000) 'KHz, fm=' num2str(fm/1000) 'KHz,' ... ' N=' num2str(N)]); eval(['print -depsc2 fir_bs_wind_N' num2str(N)]); pause;close - 30 - GRAFICA DEL FILTRO: GRAFICA DE LA S EÑAL FILTRADA: - 31 - 2.8.- PROCES AMIENTO DE UNA S EÑAL DE AUDIO Procesamiento de una señal de audio Crear señal de audio Frecuencia fundamental f0=1e3; % 1KHz Amplitud a=4; % V=4 Frecuencia de muestreo fs=44.1e3; Frecuencia de una señal de audio Tiempo de duración en segundos T=1.5; L = round(T*fs); % Número de muestras Frecuencia normalizada fn=f0/fs; y = a*sin(2*pi*fn*(0:L-1))+0.5*a*sin(2*pi*2*fn*(0:L-1)); Graficar la señal original subplot(411) plot((0:L-1)/fs,y) title('SEÑAL ORIGINAL') Título xlabel('Tiempo (s)') Etiqueta del eje X ylabel('Amplitud (V)') Etiqueta del eje Y xlim([0 10/1000]) Límite de la señal - 32 - Grabar y reproducir la señal de audio wavwrite(y,fs,'audio') wavplay(y,fs) FFT de la señal subplot(412) Llamado a la función que calcula la FFT fft_signal(y,fs);title('ESPECTRO DE LA SEÑAL ORIGINAL') xlim([0 2500]) Filtrado de la señal Frecuencia normalizada fNorm = 1500 / (fs/2); Cálculo de los coeficientes del filtro (filtro pasa bajas) [b,a] = butter(10, fNorm, 'low'); Filtrado de la señal y_Low = filtfilt(b, a, y); Graficación de la señal en el tiempo subplot(413) plot((0:L-1)/fs,y_Low) title('SEÑAL FILTRADA') xlabel('Tiempo (s)') ylabel('Amplitud (V)') xlim([0 10/1000]) - 33 - Graficación de la señal en frecuencia subplot(414) Llamado a la función que calcula la FFT fft_signal(y_Low,fs);title('ESPECTRO DE LA SEÑAL FILTRADA') xlim([0 2500]) Gráficas del filtro Respuesta en frecuencia del filtro [H,w]=freqz(b,a,512,1); figure(2) Trazado de la respuesta en Magnitud subplot(221) plot(w,20*log10(abs(H))); grid on; title ('Filtro pasa-altos, Respuesta en magnitud'); xlabel('frecuencia'); ylabel('H(f) db') xlim([0 0.4]) Respuesta en fase subplot(222) plot(w,angle(H)); grid on; title ('Filtro pasa-altos, Respuesta en fase'); xlabel('frecuencia') - 34 - ylabel('ángulo de H rad') xlim([0 0.4]) Respuesta al impulso subplot(223) [y_eje,t]= impz(b,a,60); stem(t,y_eje); title ('Filtro pasa-altos, Respuesta al impulso'); Ploteo de los polos y ceros z= roots(b); Ceros p = roots(a); Polos subplot(224) zplane(z,p) title('Polos y ceros') legend('Ceros','Polos') Reproducción de audio de entrada y salida pause(2) disp('Audio de entrada') wavplay(0.5*y,fs) disp('Audio de salida (señal filtrada)') wavplay(0.5*y_Low,fs) - 35 - GRAFICAS DE SEÑAL DE AUDIO INICIALMENTE S IN FILTRAR A ENTRADA Y FILTRADA A LA S ALIDA: - 36 - 2.9.- PROCES O DEL CIRCUITO ES QUEMA DEL DIS EÑO DE LOS FILTROS FILTRO PAS A-BAJOS *Esquema de un circuito pasa-bajos de cuarto orden con dos circuitos pasa-bajas 0 de segundo orden: El circuito comprende 2 etapas, cada una de las etapas tiene la misma frecuencia Fc, y el factor de calidad total será la multiplicación del de calidad de la primera etapa, por el factor de calidad de la segunda etapa. *Cálculos a mano para un circuito bajos de cuarto orden para una frecuencia de 1000Hz -Hallar la función de transferencia, Wo y Qo. - 37 - Primera etapa - 38 - Obteniendo así el diseño para el filtro pasa-bajos de cuarto orden - 39 - ESQUEMA DEL DIS EÑO DE LOS FILTROS (S IMULACION EN CIRCUITMAKER) CIRCUITO PBC GRAFICA DE LA SIMULACION EN CIRCUITMAKER - 40 - FILTRADO DIGITAL EN MATLAB SEÑAL ADQUIRIDA SEÑAL ADQUIRIDA ESCALADA AL VOLTAJE REAL - 41 - SEÑAL FILTRADA CON EL FILTRO BUTTER DE 4 ORDEN SEÑAL FILTRADA CON ELIP DE CUARTO ORDEN - 42 - GRAFICA DEL FILTRO ELIPTICO, FASE, MAGNITUD Y RETARDO O FILTRO BUTTERWORTH, MAGNITUD, FASE, RETARDO DE GRUPO Y DIAGRAMA DE POLOS Y CEROS - 43 - ADQUIS ICIÓN , FILTRADO DIGITAL Y CARACTERÍS TICAS DEL MOTOR EN MATLAB %Borrar todo% clear; clc; close; %Creamos un object device para poder introducir señales analogicas% MJ = analoginput('nidaq', 1); %Se añade un canal a la entrada analogica creada especificando un ID asociado con el Hardware del canal empleado% addchannel(MJ,1); - 44 - %Asignamos el valor de la tasa de muestreo% s e t ( MJ , ' Sa mpl e Ra t e ' , 2 0 0 0 ) %Asignamos el valor de las muestras por disparo% set(MJ,'SamplesPerTrigger',3000) %Damos inicio a la adquisicion de la entrada analogica, y a los valores de muestras que se determinaron% s t a r t ( MJ ) %Condicion para que el programa se mantenga activo mientras exista la entrada analogica% whi l e s t r c mp( MJ . Runni ng , ' On' ) end data = getdata(MJ); %Muestra los resultados en una grafica en un rango que esta definido por la funcion axis tanto en x como en y% y=100*data; delete(MJ) clear MJ %+--------------------------------------------------------% %--------ALGORITMO DEL FILTRADO DIGITAL-------------------% y=y.*36; figure(1); plot(y) title('SEÑAL ADQUIRIDA'),axis([0 1000 0 30]); xlabel('MUESTRAS/CICLO') ylabel('AMPLITUD') w=0.1047; [B,A]=butter(4,0.016); t=filter(B,A,y); - 45 - figure(2); plot(t),title('SEÑAL FILTRADA CON BUTTER'),axis([0 1000 0 30]); [D,C]=ellip(4,0.016,20,w); x=filter(D,C,t); figure(3); plot(x),title('SEÑAL FILTRADA CON ELLIP'),axis([0 1000 0 30]); %---------------------------------------------------------% %--------------ALGORITMO PARA ANALISIS DE CARACTERISTICAS DE LOS FILTROS UTILIZADOS---------------------------------% figure(4); [H,w]=freqz(B,A,1000); subplot(2,2,1) M=abs(H); plot((2000/2/pi)*w,M) title('MAGNITUD DELFILTRO ELIPTICO') K=angle(H); subplot(2,2,2) plot((2000/2/pi)*w,K) title('FASE DEL FILTRO ELIPTICO') subplot(2,2,3) grpdelay(B,A,2000) title('RETARDO DE GRUPO FILTRO ELIPTICO') subplot(2,2,4) zplane(B,A) title('POLOS Y CEROS DEL FILTRO ELIPTICO') %---------------------------------------------------------figure(5); [H1,w]=freqz(D,C,3000); - 46 - subplot(2,2,1) M1=abs(H1); plot((2000/2/pi)*w,M1) title('MAGNITUD DEL FILTRO BUTTERWORTH') grid on K1=angle(H1); subplot(2,2,2) plot((2000/2*pi)*w,K1) title('FASE DEL FILTRO BUTTERWORTH') grid on subplot(2,2,3) grpdelay(D,C,3000) title('RETARDO DE GRUPO FILTRO BUTTERWORTH') grid on subplot(2,2,4) zplane(D,C) title('POLOS Y CEROS DEL FILTRO BUTTERWORTH') grid on %---------------------------------------------------------%CALCULO DE VELOCIDAD DEL MOTOR figure(6); VOLGEN=[0.92,1.22,1.55,1.85,2.33,3.10,3.80,4.30,4.64,4.91,5 .33,5.79,6.14,6.38,... 6.77,6.88,7.17,7.93,8.35,9.07,9.91,10.92,11.84,12.18,12.93, 13.48,14.35,... 14.90,15.25,15.54,15.96,16.71,16.92,17.51,18.39,19.44,19.57 ,20.20,20.62,... 21.00,22.59,23.68,24.36,25.28,25.53,26.58,27.55,28.35,29.56 ,30.74]; VELX=[ 5 2 9 , 6 9 0 , 1 0 8 0 , 1 1 5 0 , 1 4 8 8 , 1 4 2 7 , 2 1 6 0 , 2 5 0 5 , 2 6 6 9 , 3 0 8 4 , 3 2 7 6 , 3431, 372 2, 3964, 401 7, 4261, . . . - 47 - 4440,4757,5038,5365,5936,6350,6512,6619,7060,7265,7317,7666 ,7769,8133,8140,... 8165,8182,8201,8223,8807,8900,9200,9541,9640,9814,9865,9986 ,10124,10234,... 10500,10684,11056,11215,11224]; %GRAFICAMOS LA CARACTERÍSTICA DEL MOTOR DE VELOCIDAD CONTRA VOLTAJE plot(VOLGEN,VELX),title('SEÑAL DE VOLTAJE'); ylabel('RPM'); xlabel('VOLTAJE'); TABLA CARACTERÍSTICA DE LOS MOTORES V(cc) MOTOR V(cc) V(ca) RPM MOTOR FRECUENCIA GENERADOR GENERADOR GENERADOR GENERADOR OV -- -- -- -- 1V -- -- -- -- 1.68 V O.42 V -- -- -- 2.8 V 1.58 V 220 MV 529 144 HZ 3.28 V 2.046 V 292 MV 690 183 HZ 3.82 V 2.52 V 370 MV 1080 218 HZ 4.3 V 3.008 V 0.442 V 1150 276 HZ 5.02 V 3.698 V 0.557 V 1488 336.6 HZ 6.07 V 4.72 V 0.74 V 1427 430 HZ 7V 5.66 V 0.906 V 2160 516 HZ 7.66 V 6.33V 1.024 V 2505 574 HZ 8.32 V 7.02 V 1.105 V 2669 636.5 HZ 8.9 V 7.59 V 1.17 V 3084 688 HZ 9.5 V 8.26 V 1.27 V 3276 748 HZ 10.24 V 9.02 V 1.38 V 3431 817.5 HZ 10.69 V 9.48 V 1.463 V 3722 859.6 HZ 11.01 V 9.82 V 1.52 V 3964 867.1 HZ - 48 - 11.48 V 10.20 V 1.613 V 4017 878 HZ 12 V 10.85 V 1.639 V 4261 899 HZ 12.56 V 11.42 V 1.709 V 4440 --- 13.27 V 12.14 V 1.89 V 4757 926 HZ 14.05 V 12.9 V 1.99 V 5038 9 HZ 15.01 V 13.92 V 2.16 V 5365 0 HZ 16.03 V 15.04 V 2.36 V 5936 0 HZ 17.27 V 16.36 V 2.6 V 6350 760 HZ 18.1 V 17.2 V 2.82 V 6512 798 HZ 18.7 V 17.8 V 2.9 V 6619 808 HZ 19.01 V 18.2 V 3.08 V 7060 8.80 HZ 19.55 V 18.7 V 3.21 V 7265 1069 HZ 20.33 V 19.34 V 3.418 V 7317 1172 HZ 2O.85 V 20.06 V 3.549 V 7666 1509 HZ 21.12 V 20.25 V 3.632 V 7769 1531 HZ 21.74 V 20.98 V 3.7 V 8133 12.65 HZ 22.13 V 21.31 V 3.8 V 8140 1250 HZ 22.85 V 22.11 V 3.98 V 8165 1337 HZ 23.05 V 22.30 V 4.03 V 8182 1351 HZ 23.44V 22.70V 4.17V 8201 1201 HZ 24.12V 23.51 V 4.38V 8223 1062.9 HZ 24.71 V 24.06 V 4.63V 8807 1090.6 HZ 25.35 V 24.78 V 4.66 V 8900 59.97HZ 25.80 V 25.12 V 4.81 V 9200 59.94 HZ 26.06 V 25.51 V 4.91 V 9541 1150.6 HZ 26.65 V 26.19 V 5.00 V 9640 1182.3 HZ 27.09 V 26.61 V 5.38 V -- 1205.9 HZ 27.69 V 27.18 V 5.64 V -- 1232.8HZ 27.99 V 27.55 V 5.80 V 9986 1248.7 HZ 26.16 V 27.80 V 6.02 V -- 1250.2 HZ 2882 V 28.25 V 6.08 V 10.234 1281.9 HZ - 49 - 29.31 V 28.71 V 6.33 V 10.500 1304.3HZ 29.75 V 29.39 V 6.56 V -- 13.26 HZ 29.98 V 29.60 V 6.75 V -- 1342.8 HZ 30.54 V 30.24 V 7.04 V -- 1365.1HZ 31.01 V 30.63 V 7.32 V 11.224 1390.0 HZ COMO CONECTAR EL LM324 ESQUEMAS - 50 - III. MATERIALES Y METODOS El presente Proyecto de Investigación los metodos: 1. Método de la Respuesta Impulsional Invariante Criterio : Encontrar un filtro digital cuya respuesta Impulsional sean muestras equiespaciadas de la respuesta Impulsional de filtro analógico. h(n)=ha(t) t=nT Las respuestas en frecuencias del filtro digital estar n relacionadas con la respuesta en frecuencia del filtro Es decir, la respuesta en frecuencias del filtro digital consiste en la suma de infinitos terminos de respuestas analógicas frecuenciales e s caladas y de s plaza das . • A partir del Teorema del muestreo sabemos que: si Ha(j? )= o para ? $ B/T entonces: H(ejw) = 1/T Ha(j? ) para ? # B/T • La siguiente expresión constituye una generalización d la anterior : 2. Solución numérica de la ecuación diferencial Criterio : Obtener el filtro digital aproximando las derivadas de la ecuación diferencial correspondiente a un filtro analógico, mediante diferencias finitas. • • Sea: ' ck dk ya(t)/dtk = ' dk dkxa(t)/dt k Consideremos la aproximación: d ya(t)/dt ---- L(1)[y(n)] = [y(n+1)-y(n)]/T dk ya(t)/dtk ---- L(k)[y(n)] = L(1)[L(k-1)[y(n)] ] 3. Método de la transformación bilineal • CRITERIO: Obtener el filtro digital integrando la ecuación difer ncial correspondiente al filtro analógico y realizando una aproximación numérica de la misma. IV. RES ULTADOS Este Trabajo de Investigación: “ DIS EÑO Y S IMULACIÓN DE FILTROS DIGITALES PARA LA CALIDAD DE S ONIDO” tenía como propósito fundamental diseñar filtros digitales, propósito de brindar al alumno los conocimientos de cómo utilizar el matlab lo cual fue posible al real a simulación respectiva Así mismo la aplicación a investigaciones ya sea descr ptiva o inferencial, tecnológica o científica, el investigador va a a encontrarse con gran cantidad de datos, con los cuales debe hacer un proces análisis e interpretación de resultados, - 52 - estadístico, V. DIS CUS ION Con la adquisición de datos de Matlab pudimos observar con mas detenimiento la señal obtenida del motor, la voz y además la implementación de los filtros fue efectiva, la señal se ve clara y con menos ruido cuando han pasado por los dos filtros (But erworth y Elíptico) que se elaboraron en Matlab. Hemos podido comprobar la importancia de disponer de una herramienta de cálculo potente para el diseño de sistemas electrónicos complejos como pueden ser los filtros. Dentro de esas herramientas Matlab se sitúa como una de las más empleadas y la que, por el momento, ha conseguido mayor aceptación y desarrollo. Por ende, hemos visto las principales características de los filtros digitales que se usan hoy día para aplicaciones Diversas en los sistemas electrónicos. Así, podemos concluir que, cuando la fase juega un papel fundamental en el tratamiento de la señal (por ejemplo, en el caso de comunicaciones de datos) es mejor el uso de filtros FIR de mayor coste pero de fase lineal. Mientras que cuando la fase no toma gran importancia (por ejemplo, en aplicaciones de audio, donde el oido humano no es capaz de discernir pequeñas variaciones de la fase) el empleo de filtros IIR, de menor coste, es el apropiado. - 53 - REFERENCIAS BIBLIOGRAFICAS [1] Christian-A Luszick, Digital Aud io R e s toration of vinyl records and Im ple m e n tation on a digital signal proce ss o r b as e d s ys te m , Departamento de tratamiento de señales Universidad de Kaiserslautern 2003 [2] Soorian Raman, R e m oving Nois e for Vinyl LP recordings with W avele t Trans form . Department of Electrical and Computer Engineering university of Queesland 1997. [3] Brendan Wessling, R e al tim e Nois e re n oval fro m Vinyl LP´s , Department of Electrical and Computer Engineering of Queensland ? 1997. [4] http://www.elai.upm.es/spain/Publicaciones/pub01/intro_procsdig.pdf [5] http://www.eden.rutgers.edu/~ricqui/leech/2003%20Fall%20579%20 Translation%20 Workshop/T8/Procesadores_dig.pdf - 54 - APENDICE Al final observamos una mejoría notable con respecto a a señal original del una mejoría en la señal de salida, esto lo pudimos comprobar de forma empírica la escuchar la grabación y en forma mas formal al ver las graficas de las señales. FIG 1 S EÑAL OBTENIDA S IN RUIDO - 55 - FIG 1 S EÑAL OBTENIDA CON RUIDO - 56 - FIG 1 S EÑAL UTILIZADA EN RF - 57 - ANEXOS - 58 - TEMA Implementacion de un filtro FIR en C Procesadores Digitales de Señales 1 de diciembre de 2008 Filtro pasobajo con frecuencia de corte en 0.1 (normalizada). Tres métodos de diseño de filtros digitales de respuesta , obtenida de la guia de implementacion de filtros FIR en C Del: Ø El Ins tituto de Ing eniería Elé ctrica (IIE) fo rma parte de la Facultad de Ing eniería de la Univers idad de la República . Prof Ing Agustin Cisa. - 59 -