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.

Los filtros digitales con respuesta de impulso de duración finita (filtros todo cero o FIR) tienen ventajas y desventajas en comparación con los filtros de respuesta de impulso de duración infinita (IIR).

Los filtros FIR tienen las siguientes ventajas principales:

  • Pueden tener exactamente fase lineal.

  • Siempre están estables.

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

  • Se pueden realizar eficientemente en hardware.

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

La principal desventaja de los filtros FIR es que a menudo requieren un orden de filtro mucho mayor que los filtros IIR para lograr un nivel determinado de rendimiento. En consecuencia, el retraso 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 del filtro

Descripción

Funciones de filtro

Ventanas

Aplicar ventana a la transformación inversa truncada de Fourier del filtro de "pared de ladrillo" especificado

, ,fir1fir2kaiserord

Multibanda con bandas de transición

Equiripple o mínimos cuadrados se acercan a las subbandas del rango de frecuencias

, ,firlsfirpmfirpmord

Mínimos cuadrados restringidos

Minimizar el error integral cuadrado en todo el rango de frecuencias sujeto a restricciones de error máximas

,firclsfircls1

Respuesta arbitraria

Respuestas arbitrarias, incluidas la fase no lineal y filtros complejos

cfirpm

Coseno criado

Respuesta lowpass con transición sinusoidal suave

rcosdesign

Filtros de fase lineal

Excepto para , todas las funciones de diseño de filtro SELlos FIR solo diseñan filtros de fase lineal.cfirpm el coeficientes de filtro, o "toques", de estos 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 en 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

Sin restricciones

Sin restricciones

Tipo II

Extraño

Incluso:

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

Sin restricciones

(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 = 

Sin restricciones

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

Las funciones , , , , , , y todos los filtros FIR de fase lineal De tipo I y II de diseño de forma predeterminada. diseña sólo filtros de tipo I.fir1fir2firlsfirpmfirclsfircls1rcosdesign Ambos y filtros FIR de fase lineal de tipo III y IV dados una bandera. puede diseñar cualquier tipo de filtro de fase lineal, y filtros de fase no lineal también.firlsfirpm'hilbert''differentiator'cfirpm

Nota

Debido a que la respuesta de frecuencia de un filtro tipo II es cero en la frecuencia Nyquist ("alta" frecuencia), no diseña filtros highpass y bandstop de tipo II.fir1 Para el valor impar en estos casos, agrega 1 al pedido y devuelve un filtro de tipo I.nfir1

Método de ventanas

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

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

Este filtro no es implementable ya que su respuesta de impulso es infinita y no causal. Para crear una respuesta de impulso de duración finita, trunquéla aplicando una ventana. Al conservar la sección central de la respuesta de impulso en este truncamiento, se obtiene un filtro FIR de fase lineal. Por ejemplo, un filtro de longitud 51 con una frecuencia de corte de paso bajoω0 de 0,4 o rad/s es

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

La ventana aplicada aquí es una simple ventana rectangular. Según 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 los 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 al cuadrado.y Puede establecerlo haciendo clic con el botón derecho en la etiqueta del eje y seleccionando en el menú.Magnitude Squared

El timbre 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 muestre 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 al cuadrado.y Puede establecerlo haciendo clic con el botón derecho en la etiqueta del eje y seleccionando en el menú.Magnitude Squared

El uso de una ventana Hamming reduce en gran medida el timbre. Esta mejora es a expensas del ancho de transición (la versión con ventana tarda más en rampa de banda de paso a banda de parada) y la óptima (la versión con ventana no minimiza el error cuadrado integrado).

Las funciones y se basan en este proceso de ventanas.fir1fir2 Dado un orden de filtro y la descripción de un filtro ideal, estas funciones devuelven una transformación de Fourier inversa con ventana de ese filtro ideal. Ambos utilizan una ventana Hamming de forma predeterminada, pero aceptan cualquier función de ventana. Consulte para obtener información general sobre las ventanas y sus propiedades.Windows

Banda estándar FIR Filtro Diseño: abeto1

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

Las declaraciones

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

crear vector de fila que contenga los coeficientes del filtro de la orden Hamming-windowed.bn Se trata de un filtro FIR de paso bajo y fase 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 anexe a la lista de parámetros de la función.'high' Para un filtro de paso de banda o bandstop, especifique como un vector de dos elementos que contenga las frecuencias de borde de banda de paso.Wn Anexar para la configuración de bandstop.'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, aplica una ventana Hamming.fir1

Estimación de pedidos de la ventana Kaiser.  La función estima el orden del filtro, la frecuencia de corte y el parámetro beta de la ventana 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 adecuados para la función.kaiserordfir1

Diseño del filtro FIR multibanda: abeto2

La función también diseña filtros FIR con ventanas, pero con una respuesta de frecuencia lineal por separado con forma arbitraria.fir2 Esto contrasta con , que sólo diseña filtros en configuraciones estándar lowpass, highpass, bandpass y bandstop.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 frecuencia-magnitud coinciden con las dadas por los vectores y . es un vector de puntos de frecuencia que va de 0 a 1, donde 1 representa la frecuencia Nyquist. es un vector que contiene la respuesta de magnitud especificada en los puntos especificados en .bn+1nfmfmf (La contraparte IIR de esta función es , que también diseña filtros basados en respuestas arbitrarias de magnitud lineal por partes.yulewalk Consulte para obtener más información.)Diseño de filtros 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.firlsfirpmfir1fir2 Estas funciones diseñan transformadores Hilbert, diferenciadores y otros filtros con coeficientes simétricos impares (fase lineal de tipo III y tipo IV). También le permiten incluir regiones de transición o "no importa" 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 y en la que minimiza la 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 Remez y la teoría de aproximación 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 llaman filtros.Minimax Los filtros diseñados de esta manera exhiben un comportamiento equiripple en su respuesta de frecuencia, y por lo tanto también se conocen como filtros.equiripple El algoritmo de diseño de filtro sordo FIR Parks-McClellan es quizás la metodología de diseño de filtro SILdero FIR más popular y ampliamente utilizada.

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

Configuraciones básicas

El modo predeterminado de operación y es diseñar filtros de fase lineal de tipo I o tipo 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 región de "no le importa".firpm Una banda de transición minimiza el error más en las bandas que le interesan, a expensas de una tasa de transición más lenta. De esta manera, estos tipos de filtros tienen un equilibrio inherente al diseño FIR por ventanas.

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

bb = firls(n,f,a); 

y comparar sus respuestas de frecuencia utilizando FVTool:

fvtool(b,1,bb,1) 

Tenga en cuenta que el eje que se muestra en la figura siguiente está en Magnitud al cuadrado.y Puede establecerlo haciendo clic con el botón derecho en la etiqueta del eje y seleccionando en el menú.Magnitude Squared

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

Piense en las bandas de frecuencia como líneas en intervalos de frecuencia cortos. y utilizar este esquema para representar cualquier función lineal de respuesta lineal con cualquier banda de transición. y diseñar filtros lowpass, highpass, bandpass y bandstop; 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 los vectores definen cinco bandas:fa

  • Dos bandas de parada, de 0,0 a 0,3 y de 0,8 a 1,0

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

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

Ejemplo de filtros highpass y bandstop 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 filtro de paso de banda multibanda de ejemplo 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 la banda de parada; esto puede ayudar a controlar la respuesta de magnitud "desbocada" en amplias regiones de transición:

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

Tanto 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 peso que siga los vectores de frecuencia y amplitud. Un filtro equiripple de paso bajo con 10 veces menos ondulación en la banda de paso 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 vectores y; debe haber exactamente un peso por banda.fa

Filtros Anti-Simétricos / Transformadores Hilbert

Cuando se llama con un trailing u opción, y diseñar filtros FIR con simetría impar, es decir, tipo III (para orden par) o tipo IV (para orden impar) filtros de fase lineal.'h''Hilbert'firpmfirls Un transformador Hilbert ideal tiene esta propiedad anti-simetría y una amplitud de 1 en todo el rango de frecuencias. Pruebe los siguientes transformadores aproximados de Hilbert y fírmelos con 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 transformación Hilbert retrasada de una señal pasándola 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 señal compleja que tiene como parte real y la transformación Hilbert de como parte imaginaria.xxx Para este método FIR (una alternativa a la función), debe retrasar a la mitad el orden del 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 es equivalente a la multiplicación de la transformación 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 Aproximadamente el diferenciador ideal (con un retraso) usando o con una o 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 quede corta la frecuencia Nyquist, y el vector de amplitud debe reflejar ese cambio para garantizar la pendiente correcta:

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

En el modo, pondera el error en 1/o en bandas de amplitud distintas de cero para minimizar el error máximo. pondera el error en (1/o)'d'firpmRelativafirls2 en bandas de amplitud distintas de cero en el modo.'d'

Las siguientes gráficas 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 sin cuadrados restringidos (CLS) de filtro implementan una técnica que le 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 quede claro dónde debe aparecer una banda de transición definida rígidamente si la información de ruido y señal aparece junta en la misma banda de frecuencia. Del mismo modo, puede tener sentido omitir la especificación de las bandas de transición si sólo parecen controlar los resultados de los fenómenos Gibbs que aparecen en la respuesta del filtro. Consulte Selesnick, Lang y Burrus para obtener información sobre este método.[2]

En lugar de definir bandas de paso, bandas de parada y 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 bandstop), o bordes de banda de paso y banda de parada (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 le permite definir umbrales superiores e inferiores que contienen 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ínimo cuadrado sobre el rango de frecuencia 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, "pared de ladrillo". Un beneficio adicional es que la técnica le permite especificar picos arbitrariamente pequeños resultantes del fenómeno Gibbs.

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

Descripción

Función

Diseño de filtro FIR multibanda de menor cuadrado restringido

fircls

Diseño de filtro mínimo cuadrado restringido para filtros de fase lineal de paso bajo y paso alto

fircls1

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

Diseño básico de filtros CLS de paso bajo y paso alto

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 Por ejemplo, considere la posibilidad de diseñar un filtro con la respuesta de impulso de la orden 61 y la frecuencia de corte de 0,3 (normalizada). Además, defina los límites superior e inferior que restringen el proceso de diseño como:

  • Desviación máxima de la 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 parada) de 0,008.

Para abordar este problema de diseño mediante , 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 Magnitude Squared.y Puede establecerlo haciendo clic con el botón 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 parte 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, supongamos que 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 la orden de respuesta de impulso 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 Magnitude Squared.y Puede establecerlo haciendo clic con el botón 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 paso alto con ponderación relativa de la minimización de errores en cada banda. La función permite especificar los bordes de banda de paso y banda de parada para la función de ponderación de mínimos cuadrados, así como una constante que especifica la relación de la banda de parada a la ponderación de la banda de paso.fircls1k

Por ejemplo, considere las especificaciones que requieren un filtro FIR con orden de respuesta de impulso de 55 y frecuencia de corte de 0,3 (normalizada). También asuma la ondulación máxima permitida de la banda de paso de 0.02 y la ondulación de banda de parada máxima permitida 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 banda de parada para la función de peso de 0,32

  • Minimización de errores de peso 10 veces más en la banda de parada que en la banda de paso

Para abordar esto usando , 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 Magnitude Squared.y Puede establecerlo haciendo clic con el botón 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 filtros proporciona una herramienta para diseñar filtros FIR con respuestas complejas arbitrarias.cfirpm Se diferencia de las otras funciones de diseño del 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 que una técnica altamente 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étricos (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 de intercambio Remez extendido para una estimación inicial. Si este método de intercambio no puede obtener el filtro óptimo, el algoritmo cambia a un algoritmo de ascenso-descenso que toma el control para finalizar 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 abreviada 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]); 

Al igual que con , se pasa un vector de bordes de banda a .firpmcfirpm Este vector define las bandas de frecuencia 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 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 de filtro para este filtro multibanda es compleja, que se espera debido a la asimetría en el dominio de frecuencia. La respuesta de impulso, que puede seleccionar en la barra de herramientas de FVTool, se muestra a continuación.

Diseño del filtro con retardo reducido

Considere el diseño de un filtro de paso bajo de 62 toques con un corte de half-Nyquist. Si especificamos un valor de desplazamiento negativo para la función de diseño del filtro, el desplazamiento 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 Magnitude Squared, que 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 desplazamiento 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 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. Usando , la banda de paso y la ondulación de la 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 adecuado para una aplicación específica.