Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Diseño de filtro FIR

Filtros FIR vs IIR

Los filtros digitales con respuesta de impulsos de duración finita (filtros All-Zero o FIR) tienen ventajas y desventajas en comparación con los filtros de respuesta de impulsos de duración infinita (IIR).

Los filtros FIR tienen las siguientes ventajas primarias:

  • Pueden tener exactamente fase lineal.

  • Siempre son estables.

  • Los métodos de diseño son generalmente lineales.

  • Pueden ser realizados eficientemente en hardware.

  • Los transitorios de inicio del filtro tienen una duración finita.

La desventaja principal de los filtros FIR es que a menudo requieren un orden de filtro mucho más alto que los filtros IIR para lograr un nivel determinado de rendimiento. Correspondientemente, el retardo de estos filtros es a menudo mucho mayor que para un rendimiento igual Filtro IIR.

Resumen del filtro FIR

Filtros FIR

Método de diseño de filtro

Descripción

Funciones de filtro

Ventanas

Aplique la ventana a la transformada inversa de Fourier truncada del filtro de "pared de ladrillo" especificado

, ,fir1fir2kaiserord

Multibanda con bandas de transición

El enfoque de equiripple o de mínimos cuadrados sobre las subbandas del rango de frecuencias

, ,firlsfirpmfirpmord

Mínimos cuadrados restringidos

Minimice el error integral cuadrado sobre el rango de frecuencias completo sujeto a las limitaciones de error máximas

,firclsfircls1

Respuesta arbitraria

Las respuestas arbitrarias, incluidos los filtros complejos y de fase no lineal

cfirpm

Coseno elevado

Respuesta lowpass con transición suave y sinusoidal

rcosdesign

Filtros de fase lineales

A excepción de, todas las funciones de diseño de filtro FIR solo diseñan filtros de fase lineal.cfirpm el coeficientes de filtro, o "grifos", de dichos filtros obedecen a una relación de simetría par o impar. Dependiendo de esta simetría, y de si el orden del filtro es par o impar, un filtro de fase lineal (almacenado en longitud + 1 vector) tiene ciertas restricciones inherentes a sunnb respuesta de frecuencia.

Tipo de filtro de fase linealOrden de filtro Simetría de coeficientesRespuesta H (f), f 0 = Respuesta H (f), f 1 (Nyquist) = 

Tipo I

Incluso

Incluso:

b(k)=b(n+2k),k=1,...,n+1

Ninguna restricción

Ninguna restricción

Tipo II

Extraño

Incluso:

b(k)=b(n+2k),k=1,...,n+1

Ninguna restricción

(1) 0H = 

Tipo III

Incluso

Extraño:

b(k)=b(n+2k),k=1,...,n+1

(0) 0H = 

(1) 0H = 

Tipo IV

Extraño

Extraño:

b(k)=b(n+2k),k=1,...,n+1

(0) 0H = 

Ninguna restricción

el retardo de fase y retardo de grupo de los filtros FIR de fase lineal son iguales y constantes sobre la banda de frecuencias. Para un filtro FIR de fase lineal de orden, el retardo de grupo es/2, y la señal filtrada se retrasa simplemente por/2 pasos de tiempo (y la magnitud de su transformada de Fourier se escala por la respuesta de magnitud del filtro).nnn Esta propiedad preserva la forma de onda de las señales en la banda de paso; es decir, no hay distorsión de fase.

Las funciones,,,, y todo tipo de diseño I y II filtros FIR de fase lineal por defecto. diseña sólo filtros tipo I.fir1fir2firlsfirpmfirclsfircls1rcosdesign Ambos y el diseño de tipo III y IV filtros FIR de fase lineal dados a o bandera. puede diseñar cualquier tipo de filtro de fase lineal, así como filtros de fase no lineales.firlsfirpm'hilbert''differentiator'cfirpm

Nota

Debido a que la respuesta de frecuencia de un filtro tipo II es cero en la frecuencia Nyquist (frecuencia "alta"), no diseña los filtros de paso alto y de supresión de tipo II.fir1 Para los valores impares en estos casos, agrega 1 al pedido y devuelve un filtro de tipo I.nfir1

Windowing Method

Considere el filtro de paso bajo digital ideal, o "pared de ladrillo", con una frecuencia de corte de ω0 rad/s. Este filtro tiene la magnitud 1 en todas las frecuencias con una magnitud inferior a ω0, y magnitud 0 en frecuencias con una magnitud entre ω0 y π. Su secuencia de respuesta de impulsos () eshn

h(n)=12πππH(ω)ejωndω=12πω0ω0ejωndω=sinω0nπn

Este filtro no es aplicables ya que su respuesta de impulso es infinita y no causal. Para crear una respuesta de impulso de duración finita, trunquela aplicando una ventana. Al retener la sección central de la respuesta de impulso en este truncamiento, se obtiene un filtro FIR de fase lineal. Por ejemplo, un filtro length 51 con una frecuencia de corte paso bajoω0 de 0,4 π Rad/s es

b = 0.4*sinc(0.4*(-25:25)); 

La ventana aplicada aquí es una ventana rectangular simple. Por el teorema de Parseval, este es el filtro de longitud 51 que mejor se aproxima al filtro de paso bajo ideal, en el sentido de mínimos cuadrados integrados. El siguiente comando muestra la respuesta de frecuencia del filtro en FVTool:

fvtool(b,1) 

Tenga en cuenta que el eje que se muestra en la figura siguiente está en magnitud cuadrada.y Puede establecer esto haciendo clic derecho en la etiqueta del eje y seleccionando en el menú.Magnitude Squared

El zumbido y las ondas ocurren en la respuesta, especialmente cerca del borde de la banda. Este "efecto Gibbs" no desaparece a medida que aumenta la longitud del filtro, pero una ventana no rectangular reduce su magnitud. La multiplicación por una ventana en el dominio de tiempo provoca una convolución o suavizado en el dominio de frecuencia. Aplique una ventana de longitud 51 Hamming al filtro y visualice el resultado usando FVTool:

b = 0.4*sinc(0.4*(-25:25)); b = b.*hamming(51)'; fvtool(b,1) 

Tenga en cuenta que el eje que se muestra en la figura siguiente está en magnitud cuadrada.y Puede establecer esto haciendo clic derecho en la etiqueta del eje y seleccionando en el menú.Magnitude Squared

El uso de una ventana de Hamming reduce considerablemente el timbre. Esta mejora es a expensas de la anchura de la transición (la versión de ventana tarda más tiempo en la rampa de la banda de paso a la banda de parada) y optimalidad (la versión de ventana no minimiza el error cuadrado integrado).

Las funciones y se basan en este proceso de ventanas.fir1fir2 Dado un orden de filtro y una descripción de un filtro ideal, estas funciones devuelven una transformada de Fourier inversa con ventanas de ese filtro ideal. Ambos utilizan una ventana de Hamming por defecto, pero aceptan cualquier función de ventana. Vea para obtener una visión general de las ventanas y sus propiedades.Windows

Diseño de filtro FIR de banda estándar: FIR1

implementa el método clásico de la fase lineal de ventana de diseño de filtro digital FIR.fir1 Se asemeja a las funciones de diseño de filtro IIR en que está formulado para diseñar filtros en configuraciones de banda estándar: paso bajo, paso de banda, paso alto, y parada de banda.

Las declaraciones

n = 50; Wn = 0.4; b = fir1(n,Wn); 

crear un vector de fila que contenga los coeficientes del filtro de orden Hamming-windowed.bn Este es un filtro FIR de fase baja y lineal con frecuencia de corte. es un número entre 0 y 1, donde 1 corresponde a la frecuencia Nyquist, la mitad de la frecuencia de muestreo.WnWn (A diferencia de otros métodos, aquí corresponde al punto de 6 dB.)Wn Para un filtro de paso alto, simplemente anexar a la lista de parámetros de la función.'high' Para un filtro de paso de banda o de supresión, especifique como un vector de dos elementos que contiene las frecuencias de borde de la banda de paso.Wn Anexar para la configuración de supresión.'stop'

utiliza la ventana especificada en el vector de columna para el diseño.b = fir1(n,Wn,window)window El vector debe ser elementos largos.windown+1 Si no especifica una ventana, se aplica una ventana de Hamming.fir1

Estimación de orden de ventana de Kaiser.  La función estima el orden de los filtros, la frecuencia de corte y el parámetro beta de la ventana de Kaiser necesarios para cumplir con un conjunto determinado de especificaciones.kaiserord Dado un vector de bordes de banda de frecuencia y un vector correspondiente de magnitudes, así como la ondulación máxima permitida, devuelve los parámetros de entrada apropiados para la función.kaiserordfir1

Diseño de filtro FIR multibanda: fir2

La función también diseña filtros FIR con ventanas, pero con una respuesta de frecuencia lineal en forma arbitraria.fir2 Esto contrasta con, que solo diseña filtros en configuraciones estándar de paso bajo, paso alto, paso de banda y supresión.fir1

Los comandos

n = 50; f = [0 .4 .5 1]; m = [1  1  0 0]; b = fir2(n,f,m); 

Vector de fila de retorno que contiene los coeficientes del filtro FIR de orden cuyas características de magnitud de frecuencia coinciden con las dadas por vectores y. es un vector de puntos de frecuencia que oscila entre 0 y 1, donde 1 representa la frecuencia Nyquist. es un vector que contiene la respuesta de magnitud especificada en los puntos especificados en.bn+1nfmfmf (El homólogo IIR de esta función es, que también diseña filtros basados en respuestas arbitrarias de magnitud lineal por tramos.yulewalk Ver para más detalles.)Diseño de filtro IIR

Diseño de filtro FIR multibanda con bandas de transición

Las funciones y proporcionan un medio más general de especificar el filtro especificado ideal que las funciones y.firlsfirpmfir1fir2 Estas funciones diseñan transformadores, diferenciadores y otros filtros Hilbert con coeficientes simétricos impares (fase lineal tipo III y tipo IV). También le permiten incluir regiones de transición o "don't Care" en las que el error no se minimiza y realizar la ponderación dependiente de la banda de la minimización.

La función es una extensión de las funciones en que minimiza la parte integral del cuadrado del error entre la respuesta de frecuencia especificada y la respuesta de frecuencia real.firlsfir1fir2

La función implementa el algoritmo Parks-McClellan, que utiliza el algoritmo de intercambio de Remez y la teoría de aproximación de Chebyshev para diseñar filtros con ajustes óptimos entre las respuestas de frecuencia especificadas y reales.firpm Los filtros son óptimos en el sentido de que minimizan el error máximo entre la respuesta de frecuencia especificada y la respuesta de frecuencia real; a veces se denominan filtros.minimax Los filtros diseñados de esta manera exhiben un comportamiento de equiripple en su respuesta de frecuencia, y por lo tanto también se conocen como filtros.equiripple El algoritmo de diseño de filtro de FIR de Parks-McClellan es quizás la metodología de diseño de filtro FIR más popular y ampliamente utilizada.

La sintaxis para y es la misma; la única diferencia son sus esquemas de minimización.firlsfirpm El siguiente ejemplo muestra cómo los filtros diseñados con y reflejan estos esquemas diferentes.firlsfirpm

Configuraciones básicas

El modo de operación por defecto de y es para diseñar los filtros de fase lineal de tipo I o II, dependiendo de si el orden que desea es par o impar, respectivamente.firlsfirpm Un ejemplo de paso bajo con amplitud aproximada 1 de 0 a 0,4 Hz, y la amplitud aproximada 0 de 0,5 a 1,0 Hz es

n = 20;                    % Filter order f = [0 0.4 0.5 1];         % Frequency band edges a = [1  1  0 0];           % Amplitudes b = firpm(n,f,a); 

De 0,4 a 0,5 Hz, no realiza ninguna minimización de errores; Esta es una banda de transición o una región "don't Care".firpm Una banda de transición minimiza el error más en las bandas que te interesan, a expensas de una tasa de transición más lenta. De esta manera, estos tipos de filtros tienen un intercambio inherente similar al diseño de FIR por ventanas.

Para comparar los mínimos cuadrados con el diseño del filtro de equiripple, utilice para crear un filtro similar.firls Tipo

bb = firls(n,f,a); 

y compare sus respuestas de frecuencia con FVTool:

fvtool(b,1,bb,1) 

Tenga en cuenta que el eje que se muestra en la figura siguiente está en magnitud cuadrada.y Puede establecer esto haciendo clic derecho en la etiqueta del eje y seleccionando en el menú.Magnitude Squared

El filtro diseñado con exhibe comportamiento equiripple.firpm También tenga en cuenta que el filtro tiene una mejor respuesta sobre la mayoría de la banda de paso y la banda de parada, pero en los bordes de la banda (= y =), la respuesta está más lejos de lo ideal que el filtro.firlsf0.4f0.5firpm Esto muestra que el error del filtro sobre la banda de paso y la banda de parada es más pequeño y, de hecho, es el más pequeño posible para esta configuración de borde de banda y la longitud del filtro.firpmmaximum

Piense en las bandas de frecuencias como líneas en intervalos de frecuencia cortos. y utilice este esquema para representar cualquier función de frecuencia-respuesta lineal por tramos con cualquier banda de transición. y diseña filtros de paso bajo, paso alto, paso de banda y supresión; un ejemplo de paso de banda esfirpmfirlsfirlsfirpm

f = [0 0.3  0.4  0.7  0.8  1];   % Band edges in pairs a = [0  0    1    1    0   0];   % Bandpass filter amplitude 

Técnicamente, estos y vectores definen cinco bandas:fa

  • Dos bandas de detención, de 0,0 a 0,3 y de 0,8 a 1,0

  • Una banda de paso de 0,4 a 0,7

  • Dos bandas de transición, de 0,3 a 0,4 y de 0,7 a 0,8

Los filtros de paso alto de ejemplo y de supresión son

f = [0 0.7  0.8  1];            % Band edges in pairs a = [0  0    1   1];            % Highpass filter amplitude f = [0 0.3  0.4  0.5  0.8  1];  % Band edges in pairs a = [1  1    0    0    1   1];  % Bandstop filter amplitude 

Un ejemplo de filtro de paso de banda de varias bandas es

f = [0 0.1 0.15 0.25 0.3 0.4 0.45 0.55 0.6 0.7 0.75 0.85 0.9 1]; a = [1  1   0    0    1   1   0    0    1   1   0    0    1  1]; 

Otra posibilidad es un filtro que tiene como región de transición la línea que conecta la banda de paso con el stopband; Esto puede ayudar a controlar la respuesta de magnitud "descontrolada" en regiones de transición amplia:

f = [0 0.4 0.42 0.48 0.5  1]; a = [1 1 0.8 0.2 0 0];   % Passband, linear transition,                           %  stopband 

El vector de peso

Ambos y le permiten poner más o menos énfasis en minimizar el error en ciertas bandas de frecuencia en relación con otros.firlsfirpm Para ello, especifique un vector de ponderación siguiendo los vectores de frecuencia y amplitud. Un ejemplo de filtro de equiondulación paso bajo con una ondulación 10 veces menor en la banda de suspensión que la banda de paso es

n = 20;              % Filter order f = [0 0.4 0.5 1];   % Frequency band edges a = [1  1   0  0];   % Amplitudes w = [1 10];          % Weight vector b = firpm(n,f,a,w); 

Un vector de peso legal es siempre la mitad de la longitud de los y vectores; debe haber exactamente un peso por banda.fa

Filtros antisimétricos/Hilbert Transformers

Cuando se le llame con un trailing u opción, y diseñe filtros FIR con simetría impar, es decir, filtros de fase lineal de tipo III (para orden par) o tipo IV (para orden impar).'h''Hilbert'firpmfirls Un transformador Hilbert ideal tiene esta propiedad anti-simetría y una amplitud de 1 en todo el rango de frecuencias. Prueba los siguientes transformadores aproximados de Hilbert y compalos usando FVTool:

b = firpm(21,[0.05 1],[1 1],'h');       % Highpass Hilbert bb = firpm(20,[0.05 0.95],[1 1],'h');   % Bandpass Hilbert fvtool(b,1,bb,1) 

Puede encontrar la transformada de Hilbert retrasada de una señal pasándole a través de estos filtros.x

fs = 1000;            % Sampling frequency t = (0:1/fs:2)';      % Two second time vector x = sin(2*pi*300*t);  % 300 Hz sine wave example signal xh = filter(bb,1,x);  % Hilbert transform of x 

La señal analítica correspondiente es la compleja señal que tiene como parte real y la transformada de Hilbert como su parte imaginaria.xxx Para este método FIR (una alternativa a la función), debe retrasar la mitad del orden de filtro para crear la señal analítica:hilbertx

xd = [zeros(10,1); x(1:length(x)-10)];     % Delay 10 samples xa = xd + j*xh;                            % Analytic signal 

Este método no funciona directamente para los filtros de orden impar, que requieren un retraso no entero. En este caso, la función, descrita en, estima la señal analítica.hilbertHilbert Transform Alternativamente, utilice la función para retrasar la señal por un número no entero de muestras.resample

Diferenciadores

La diferenciación de una señal en el dominio del tiempo equivale a la multiplicación de la transformada de Fourier de la señal por una función de rampa imaginaria. Es decir, para diferenciar una señal, pasarla a través de un filtro que tenga una respuesta (ω) ω.H = j Aproximar el diferenciador ideal (con un retardo) utilizando o con una u opción:firpmfirls'd''differentiator'

b = firpm(21,[0 1],[0 pi],'d'); 

Para un filtro de tipo III, la banda de diferenciación debe detenerse corto de la frecuencia Nyquist, y el vector de amplitud debe reflejar ese cambio para asegurar la pendiente correcta:

bb = firpm(20,[0 0.9],[0 0.9*pi],'d'); 

En el modo, pesa el error por 1/ω en bandas de amplitud distinto de cero para minimizar el error máximo. pesa el error por (1/ω)'d'firpmrelativefirls2 en bandas de amplitud distinto de cero en el modo.'d'

Las siguientes parcelas muestran las respuestas de magnitud para los diferenciadores anteriores.

fvtool(b,1,bb,1) legend('Odd order','Even order','Location','best')

Diseño de filtro FIR de mínimos cuadrados restringidos

Las funciones de diseño de filtro FIR de mínimos cuadrados restringidos (CLS) implementan una técnica que permite diseñar filtros FIR sin definir explícitamente las bandas de transición para la respuesta de magnitud. La capacidad de omitir la especificación de las bandas de transición es útil en varias situaciones. Por ejemplo, puede que no esté claro dónde debe aparecer una banda de transición rígidamente definida si la información del ruido y la señal aparecen juntas en la misma banda de frecuencias. Del mismo modo, puede tener sentido omitir la especificación de las bandas de transición si solo aparecen para controlar los resultados de los fenómenos de Gibbs que aparecen en la respuesta del filtro. Vea Selesnick, Lang y Burrus para discutir este método.[2]

En lugar de definir las bandas de paso, las bandas de detención y las regiones de transición, el método CLS acepta una frecuencia de corte (para los casos de paso alto, paso bajo, paso de banda o supresión), o bordes de banda de paso y banda de stopband (para casos multibanda), para la respuesta que especifique. De este modo, el método CLS define las regiones de transición implícitamente, en lugar de explícitamente.

La característica clave del método CLS es que permite definir umbrales superiores e inferiores que contengan la ondulación máxima permitida en la respuesta de magnitud. Dada esta restricción, la técnica aplica la técnica de minimización de errores mínimos cuadrados sobre el rango de frecuencias de la respuesta del filtro, en lugar de sobre bandas específicas. La minimización de errores incluye cualquier área de discontinuidad en la respuesta ideal, "muro de ladrillos". Un beneficio adicional es que la técnica le permite especificar picos arbitrariamente pequeños resultantes del fenómeno Gibbs.

Hay dos funciones de Toolbox que implementan esta técnica de diseño.

Descripción

Función

Diseño de filtro FIR multibanda menos cuadrado restringido

fircls

Diseño de filtro cuadrado menos restringido para filtros de fase baja y paso alto

fircls1

Para obtener información detallada sobre la sintaxis de llamada para estas funciones, consulte sus descripciones de referencia en la referencia de función.

Lowpass básico y diseño de filtro CLS de HIGHPASS

La más básica de las funciones de diseño CLS, utiliza esta técnica para diseñar filtros FIR de paso bajo y paso alto.fircls1 Como ejemplo, considere el diseño de un filtro con la respuesta de impulso de la orden 61 y la frecuencia de corte de 0,3 (normalizado). Además, defina los límites superior e inferior que restringen el proceso de diseño como:

  • Desviación máxima de banda de paso de 1 (ondulación de banda de paso) de 0,02.

  • Desviación máxima de la banda de parada de 0 (ondulación de banda de stopband) de 0,008.

Para abordar este problema de diseño utilizando, utilice los siguientes comandos:fircls1

n = 61; wo = 0.3; dp = 0.02;  ds = 0.008; h = fircls1(n,wo,dp,ds); fvtool(h,1) 

Tenga en cuenta que el eje que se muestra a continuación está en magnitud cuadrada.y Puede establecer esto haciendo clic derecho en la etiqueta del eje y seleccionando en el menú.Magnitude Squared

Diseño de filtro CLS multibanda

utiliza la misma técnica para diseñar filtros FIR con una respuesta de magnitud constante por tramos especificada.fircls En este caso, puede especificar un vector de aristas de banda y un vector correspondiente de amplitudes de banda. Además, puede especificar la cantidad máxima de ondulación para cada banda.

Por ejemplo, asuma las especificaciones para una llamada de filtro para:

  • De 0 a 0,3 (normalizado): amplitud 0, límite superior 0,005, límite inferior – 0,005

  • De 0,3 a 0,5: amplitud 0,5, límite superior 0,51, límite inferior 0,49

  • De 0,5 a 0,7: amplitud 0, límite superior 0,03, límite inferior – 0,03

  • De 0,7 a 0,9: amplitud 1, límite superior 1,02, límite inferior 0,98

  • De 0,9 a 1: amplitud 0, límite superior 0,05, límite inferior – 0,05

Diseñe un filtro CLS con orden de respuesta de impulsos 129 que cumpla con estas especificaciones:

n = 129; f = [0 0.3 0.5 0.7 0.9 1]; a = [0 0.5 0 1 0]; up = [0.005 0.51 0.03 1.02 0.05]; lo = [-0.005 0.49 -0.03 0.98 -0.05]; h = fircls(n,f,a,up,lo); fvtool(h,1) 

Tenga en cuenta que el eje que se muestra a continuación está en magnitud cuadrada.y Puede establecer esto haciendo clic derecho en la etiqueta del eje y seleccionando en el menú.Magnitude Squared

Diseño de filtro CLS ponderado

El diseño de filtro CLS ponderado le permite diseñar filtros FIR de paso bajo o de paso alto con ponderación relativa de la minimización de errores en cada banda. La función permite especificar los bordes de la banda de paso y de la banda de parada para la función de ponderación de mínimos cuadrados, así como una constante que especifica la relación entre la banda de suspensión y la ponderación de la banda de paso.fircls1k

Por ejemplo, considere las especificaciones que llaman para un filtro FIR con el orden de respuesta de impulsos de 55 y la frecuencia de corte de 0,3 (normalizado). También asuma la ondulación máxima admisible de la banda de paso de 0,02 y la ondulación máxima permitida de la banda de 0,004. Además, añada los requisitos de ponderación:

  • Borde de banda de paso para la función de peso de 0,28 (normalizado)

  • Borde de la banda de suspensión para la función de peso de 0,32

  • La minimización del error de peso 10 veces más en la banda de parada que en la banda de paso

Para acercarse a este uso, escribafircls1

n = 55; wo = 0.3; dp = 0.02; ds = 0.004; wp = 0.28; ws = 0.32; k = 10; h = fircls1(n,wo,dp,ds,wp,ws,k); fvtool(h,1) 

Tenga en cuenta que el eje que se muestra a continuación está en magnitud cuadrada.y Puede establecer esto haciendo clic derecho en la etiqueta del eje y seleccionando en el menú.Magnitude Squared

Diseño de filtro de respuesta arbitraria

La función de diseño de filtro proporciona una herramienta para el diseño de filtros FIR con respuestas complejas arbitrarias.cfirpm Difiere de las otras funciones de diseño de filtro en cómo se especifica la respuesta de frecuencia del filtro: acepta el nombre de una función que devuelve la respuesta del filtro calculada sobre una cuadrícula de frecuencias. Esta capacidad hace una técnica muy versátil y potente para el diseño de filtros.cfirpm

Esta técnica de diseño se puede utilizar para producir filtros FIR de fase no lineal, filtros de respuesta de frecuencia asimétrica (con coeficientes complejos) o filtros más simétricos con respuestas de frecuencia personalizadas.

El algoritmo de diseño optimiza el error Chebyshev (o Minimax) utilizando un algoritmo extendido de Remez-Exchange para una estimación inicial. Si este método de intercambio no consigue obtener el filtro óptimo, el algoritmo cambia a un algoritmo de ascenso-descenso que asume el control para terminar la convergencia a la solución óptima.

Diseño de filtro multibanda

Considere un filtro multibanda con las siguientes características especiales de dominio de frecuencia.

Banda

Amplitud

Ponderación de optimización

[– 1 – 0,5]

[5 1]

1

[– 0,4 + 0,3]

[2 2]

10

[+ 0,4 + 0,8]

[2 1]

5

Un filtro multibanda de fase lineal puede diseñarse utilizando la función de respuesta de frecuencia predefinida, como se indica A continuación:multiband

b = cfirpm(38, [-1 -0.5 -0.4 0.3 0.4 0.8], ...                {'multiband', [5 1 2 2 2 1]}, [1 10 5]); 

Para el caso específico de un filtro multibanda, podemos utilizar una notación de diseño de filtro de taquigrafía similar a la sintaxis para:firpm

b = cfirpm(38,[-1 -0.5 -0.4 0.3 0.4 0.8], ...               [5 1 2 2 2 1], [1 10 5]); 

Como con, un vector de bordes de banda se pasa a.firpmcfirpm Este vector define las bandas de frecuencias sobre las que se realiza la optimización; Tenga en cuenta que hay dos bandas de transición, de – 0,5 a – 0,4 y de 0,3 a 0,4.

En cualquier caso, la respuesta de frecuencia se obtiene y se traza utilizando la escala lineal en FVTool:

fvtool(b,1) 

Tenga en cuenta que el rango de datos que se muestra a continuación es.(-pi,pi)

La respuesta del filtro para este filtro multibanda es compleja, que se espera debido a la asimetría en el dominio de la frecuencia. La respuesta de impulso, que puede seleccionar en la barra de herramientas de FVTool, se muestra a continuación.

Diseño de filtro con retardo reducido

Considere el diseño de un filtro de paso bajo de 62-TAP con un corte de media Nyquist. Si se especifica un valor de desfase negativo para la función de diseño de filtro, el desfase de retardo de grupo para el diseño es significativamente menor que el obtenido para un diseño de fase lineal estándar.lowpass Este diseño de filtro se puede calcular de la siguiente manera:

b = cfirpm(61,[0 0.5 0.55 1],{'lowpass',-16}); 

La respuesta de magnitud resultante es

fvtool(b,1) 

El-eje está en magnitud cuadrada, que se puede establecer haciendo clic con el botón derecho en la etiqueta del eje y seleccionando en el menú.yMagnitude Squared

El retardo de grupo del filtro revela que el desfase se ha reducido de a (es decir, de a).N/2N/2-1630.514.5 Ahora, sin embargo, el retardo de grupo ya no es plano en la región de la banda de paso. Para crear este trazado, haga clic en el botón de la barra de herramientas.Group Delay Response

Si comparamos este filtro de fase no lineal con un filtro de fase lineal que tiene exactamente 14,5 muestras de retardo de grupo, el filtro resultante es de orden 2 * 14.5, o 29. Utilizando, la banda de paso y la ondulación de banda de parada es mucho mayor para el filtro de orden 29.b = cfirpm(29,[0 0.5 0.55 1],'lowpass') Estas comparaciones pueden ayudarle a decidir qué filtro es más apropiado para una aplicación específica.