Introducción a Filter Designer
En este ejemplo se muestra cómo utilizar Filter Designer como una práctica alternativa a las funciones de diseño de filtros de la línea de comandos.
Filter Designer es una potente interfaz gráfica de usuario (GUI) de Signal Processing Toolbox™ para diseñar y analizar filtros.
Filter Designer le permite diseñar rápidamente filtros digitales FIR o IIR estableciendo las especificaciones de rendimiento del filtro, importando filtros desde su espacio de trabajo de MATLAB® o añadiendo, moviendo o eliminando polos y ceros. Filter Designer también ofrece herramientas para analizar los filtros, como gráficas de respuesta de magnitud y fase, y gráficas de polos y ceros.
Primeros pasos
Escriba filterDesigner
en la línea de comandos de MATLAB:
>> filterDesigner
Se muestra el diálogo Tip of the Day con sugerencias para utilizar Filter Designer. A continuación, se muestra la interfaz gráfica con un filtro predeterminado.
La interfaz gráfica tiene tres regiones principales:
Región de información del filtro actual
Región de visualización del filtro
Panel de diseño
La mitad superior de la interfaz gráfica muestra información sobre las especificaciones de filtro y las respuestas del filtro actual. La región de información del filtro actual, en la parte superior izquierda, muestra las propiedades del filtro, es decir, la estructura del filtro, el orden, el número de secciones utilizadas y si el filtro es estable o no. También da acceso al gestor de filtros para trabajar con varios filtros.
La región de visualización del filtro, en la parte superior derecha, muestra varias respuestas del filtro, como la respuesta de magnitud, el retardo de grupo y los coeficientes del filtro.
La mitad inferior de la interfaz gráfica es la parte interactiva de Filter Designer. El panel de diseño, en la mitad inferior, es donde se definen las especificaciones del filtro. Controla lo que se muestra en las otras dos regiones superiores. Se pueden mostrar otros paneles en la mitad inferior mediante los botones de la barra lateral.
La herramienta incluye una ayuda contextual. Puede hacer clic con el botón secundario o pulsar el botón What's This? para obtener información sobre las diferentes partes de la herramienta.
Diseñar un filtro
Diseñaremos un filtro paso bajo que pase todas las frecuencias menores o iguales al 20% de la frecuencia de Nyquist (la mitad de la frecuencia de muestreo) y atenúe las frecuencias mayores o iguales al 50% de la frecuencia de Nyquist. Utilizaremos un filtro FIR equiripple con estas especificaciones:
Atenuación de la banda de paso de 1 dB
Atenuación de la banda de parada de 80 dB
Una frecuencia de banda de paso de 0,2 [normalizada (0 a 1)]
Una frecuencia de banda de parada de 0,5 [normalizada (0 a 1)]
Para implementar este diseño, utilizaremos las siguientes especificaciones:
1. Seleccione Lowpass en el menú desplegable de Response Type y Equiripple en FIR Design Method. Por lo general, cuando se cambia el tipo de respuesta o el método de diseño, los parámetros del filtro y la región de visualización del filtro se actualizan automáticamente.
2. Seleccione Specify order en el área Filter Order e introduzca 30.
3. El filtro FIR equiripple tiene la opción Density Factor, que controla la densidad de la cuadrícula de frecuencias. Al aumentar el valor se crea un filtro que se aproxima más a un filtro equiripple ideal, pero se requiere más tiempo a medida que aumenta el cálculo. Deje este valor en 20.
4. Seleccione Normalized (0 to 1) del menú desplegable Units en el área Frequency Specifications.
5. Introduzca 0.2 para wpass y 0.5 para wstop en el área Frequency Specifications.
6. Wpass y Wstop, en el área Magnitude Specifications, son ponderaciones positivas, una por banda, utilizadas durante la optimización en el filtro FIR equiripple. Deje estos valores en 1.
7. Después de establecer las especificaciones de diseño, haga clic en el botón Design Filter de la parte inferior de la interfaz gráfica para diseñar el filtro.
La respuesta de magnitud del filtro se muestra en el área Filter Analysis después de calcular los coeficientes.
Visualizar otros análisis
Una vez que haya diseñado el filtro, puede visualizar los siguientes análisis del filtro en la ventana de visualización haciendo clic en cualquiera de los botones de la barra de herramientas:
De izquierda a derecha, los botones son:
Respuesta de magnitud
Respuesta de fase
Respuestas de magnitud y fase
Respuesta de retardo de grupo
Respuesta de retardo de fase
Respuesta al impulso
Respuesta al escalón
Gráfica de polos y ceros
Coeficientes del filtro
Información del filtro
Cambiar las unidades de los ejes
Puede cambiar las unidades del eje x o y haciendo clic con el botón secundario en una etiqueta del eje y seleccionando las unidades adecuadas. Las unidades actuales tienen una marca de verificación.
Marcar los puntos de datos
En la región de visualización, puede hacer clic en cualquier punto de la gráfica para añadir un marcador de datos, que muestra los valores en ese punto. Al hacer clic con el botón secundario en el marcador de datos se muestra un menú en el que se puede mover, eliminar o ajustar la apariencia de los marcadores de datos.
Optimizar el diseño
Para minimizar el coste de implementación del filtro, intentaremos reducir el número de coeficientes mediante la opción Minimum Order del panel de diseño.
Cambie la selección de Filter Order a Minimum Order en la región de diseño y deje los demás parámetros como están.
Haga clic en el botón Design Filter para diseñar el filtro nuevo.
Como puede ver en el área de información del filtro actual, el orden del filtro se ha reducido de 30 a 16, el número de ondulaciones ha disminuido y la anchura de la transición se ha ampliado. Las especificaciones de la banda de paso y la banda de parada siguen cumpliendo los criterios de diseño.
Cambiar los parámetros de análisis
Haciendo clic con el botón secundario en la gráfica y seleccionando Analysis Parameters, puede mostrar un cuadro de diálogo para cambiar los parámetros específicos del análisis. (También puede seleccionar Analysis Parameters en el menú Analysis.)
Para guardar los parámetros que se muestran como los valores predeterminados, haga clic en Save as Default. Para restaurar los valores predeterminados definidos por MATLAB, haga clic en Restore Original Defaults.
Exportar el filtro
Cuando el diseño sea satisfactorio, puede exportar el filtro a los siguientes destinos:
Espacio de trabajo de MATLAB
Archivo MAT
Archivo de texto
Seleccione Export en el menú File.
Si opta por exportar al espacio de trabajo de MATLAB o a un archivo MAT, puede exportar el filtro como coeficientes. Si dispone de DSP System Toolbox™, también puede exportar el filtro como un System object.
Generar un archivo de MATLAB
Filter Designer permite generar código de MATLAB para volver a crear el filtro. Así puede insertar su diseño en código existente o automatizar la creación de sus filtros en un script.
Seleccione Generate MATLAB code en el menú File, elija Filter Design Function e indique el nombre del archivo en el cuadro de diálogo Generate MATLAB code.
El siguiente código se ha generado a partir del filtro de orden mínimo que hemos diseñado anteriormente:
Cuantificar un filtro
Si tiene instalado DSP System Toolbox™, el panel Set quantization parameters está disponible en la barra lateral:
Puede utilizar este panel para cuantificar y analizar los filtros de doble precisión. DSP System Toolbox permite cuantificar de doble precisión a precisión simple. Si dispone de Fixed-Point Designer, puede cuantificar los filtros con precisión de punto fijo. Tenga en cuenta que no puede mezclar la aritmética de punto flotante y de punto fijo en su filtro.
Objetivos
El menú Targets de Filter Designer le permite generar varios tipos de código que representen su filtro. Por ejemplo, puede generar archivos de encabezado C, archivos de coeficientes XILINX (COE) (con DSP System Toolbox) y VHDL, Verilog junto con bancos de pruebas (con Filter Design HDL Coder™).
Funcionalidades adicionales
Filter Designer también integra funcionalidades adicionales de estos otros productos de MathWorks™:
DSP System Toolbox: Añade técnicas avanzadas de diseño de filtros FIR e IIR (es decir, transformaciones de filtros, filtros multitasa) y genera un bloque equivalente para el filtro
Embedded Coder™: Genera, crea e implementa código para los procesadores C6000 de Texas Instruments.
Filter Design HDL Coder: Genera código VHDL o Verilog sintetizable para filtros de punto fijo
Simulink®: Genera filtros a partir de bloques atómicos de Simulink