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.

firpmord

Parks-McClellan estimación de orden de filtro FIR óptima

Sintaxis

[n,fo,ao,w] = firpmord(f,a,dev)
[n,fo,ao,w] = firpmord(f,a,dev,fs)
c = firpmord(f,a,dev,fs,'cell')

Descripción

[n,fo,ao,w] = firpmord(f,a,dev) encuentra el orden aproximado, los bordes de banda de frecuencia normalizados, las amplitudes de banda de frecuencia y las ponderaciones que cumplen las especificaciones de entrada, y.fadev

  • es un vector de bordes de banda de frecuencia (entre 0 yfFs/2, dondeFs es la frecuencia de muestreo), y es un vector que especifica la amplitud deseada en las bandas definidas por.af La longitud de es dos menos del doble de la longitud de.fa La función deseada es constante por etapas.

  • es un vector del mismo tamaño que especifica la desviación máxima permitida o ondulaciones entre la respuesta de frecuencia y la amplitud deseada del filtro de salida para cada banda.deva

Se utiliza con el orden resultante, el vector de frecuencia, el vector de respuesta de amplitud y los pesos para diseñar el filtro que cumple aproximadamente las especificaciones dadas por los parámetros de entrada, y.firpmnfoaowbfirpmordfadev

b = firpm(n,fo,ao,w) 

[n,fo,ao,w] = firpmord(f,a,dev,fs) especifica una frecuencia de muestreo. por defecto es de 2 Hz, lo que implica una frecuencia Nyquist de 1 Hz.fsfs Por lo tanto, puede especificar bordes de banda escalados a la frecuencia de muestreo de una aplicación determinada.

c = firpmord(f,a,dev,fs,'cell') genera una matriz de celdas cuyos elementos son los parámetros.firpm

Nota

En algunos casos, subestima o sobrestima la orden.firpmordn Si el filtro no cumple con las especificaciones, pruebe un orden superior, como o.n+1n+2

Ejemplos

contraer todo

Diseñe un filtro de paso bajo de orden mínimo con una frecuencia de corte de banda de paso de 500 Hz y una frecuencia de corte de banda de detención de 600 Hz. Especifique una frecuencia de muestreo de 2000 Hz. Requerir al menos 40 dB de atenuación en la banda de suspensión y menos de 3 dB de ondulación en la banda de paso.

rp = 3;           % Passband ripple rs = 40;          % Stopband ripple fs = 2000;        % Sampling frequency f = [500 600];    % Cutoff frequencies a = [1 0];        % Desired amplitudes

Convierta las desviaciones en unidades lineales. Diseñe el filtro y visualice sus respuestas de magnitud y fase.

dev = [(10^(rp/20)-1)/(10^(rp/20)+1)  10^(-rs/20)];  [n,fo,ao,w] = firpmord(f,a,dev,fs); b = firpm(n,fo,ao,w); freqz(b,1,1024,fs) title('Lowpass Filter Designed to Specifications')

Tenga en cuenta que el filtro cae un poco corto de cumplir con las especificaciones de atenuación de banda de suspensión y de banda de paso. Utilizando en la llamada a en lugar de alcanzar las características de amplitud deseadas.n+1firpmn

Diseñe un filtro de paso bajo con una frecuencia de corte de banda de paso de 1500 Hz y una frecuencia de corte de banda de detención de 2000 Hz. Especifique una frecuencia de muestreo de 8000 Hz. Requieren una amplitud máxima de banda de parada de 0,1 y un error de banda de paso máximo (ondulación) de 0,01.

[n,fo,ao,w] = firpmord([1500 2000],[1 0],[0.01 0.1],8000); b = firpm(n,fo,ao,w);

Obtener un resultado equivalente mediante la generación de una matriz de celdas.firpmord Visualice la respuesta de frecuencia del filtro.

c = firpmord([1500 2000],[1 0],[0.01 0.1],8000,'cell'); B = firpm(c{:}); freqz(B,1,1024,8000)

Algoritmos

utiliza el algoritmo sugerido en.firpmord[1] Este método es impreciso para los bordes de banda cercanos a 0 o a la frecuencia Nyquist,.fs/2

Referencias

[1] Rabiner, Lawrence R., and Otto Herrmann. “The Predictability of Certain Optimum Finite-Impulse-Response Digital Filters.” IEEE® Transactions on Circuit Theory. Vol.  20, Number 4, 1973, pp. 401–408.

[2] Rabiner, Lawrence R., and Bernard Gold. Theory and Application of Digital Signal Processing. Englewood Cliffs, NJ: Prentice-Hall, 1975, pp. 156–157.

Capacidades ampliadas

Consulte también

| | | | |

Introducido antes de R2006a