Main Content

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.

kaiserord

Parámetros de estimación del diseño del filtro FIR de la ventana Kaiser

Descripción

[n,Wn,beta,ftype] = kaiserord(f,a,dev) devuelve un orden de filtro, bordes de banda de frecuencia normalizados y un factor de forma que especifica una ventana Kaiser para su uso con la función.nWnbetafir1 Diseñar un filtro FIR que cumpla aproximadamente con las especificaciones dadas por , , y , use .bfadevb = fir1(n,Wn,kaiser(n+1,beta),ftype,'noscale')

ejemplo

[n,Wn,beta,ftype] = kaiserord(f,a,dev,fs) utiliza una frecuencia de muestreo en Hz.fs

ejemplo

c = kaiserord(f,a,dev,fs,'cell') devuelve una matriz de celdas cuyos elementos son los parámetros de .fir1

Ejemplos

contraer todo

Diseñe un filtro lowpass con banda de paso definida de 0 a 1 kHz y banda de parada definida de 1500 Hz a 4 kHz. Especifique una ondulación de banda de paso del 5% y una atenuación de banda de parada de 40 dB.

fsamp = 8000; fcuts = [1000 1500]; mags = [1 0]; devs = [0.05 0.01];  [n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp); hh = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');  freqz(hh,1,1024,fsamp)

Diseñe un filtro de paso de banda de longitud impar. Tenga en cuenta que la longitud impar significa orden par, por lo que la entrada debe ser un entero par.fir1

fsamp = 8000; fcuts = [1000 1300 2210 2410]; mags = [0 1 0]; devs = [0.01 0.05 0.01];  [n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp); n = n + rem(n,2); hh = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');  [H,f] = freqz(hh,1,1024,fsamp); plot(f,abs(H)) grid

Diseñe un filtro de paso bajo con un corte de banda de paso de 1500 Hz, un corte de banda de parada de 2000 Hz, una ondulación de banda de paso de 0,01, una ondulación de banda de parada de 0,1 y una frecuencia de muestreo de 8000 Hz. Diseñe un filtro equivalente con la opción.'cell'

fs = 8000; [n,Wn,beta,ftype] = kaiserord([1500 2000],[1 0],...     [0.01 0.1],fs); b = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');  c = kaiserord([1500 2000],[1 0],[0.01 0.1],fs,'cell'); bcell = fir1(c{:});  hfvt = fvtool(b,1,bcell,1,'Fs',fs); legend(hfvt,'b','bcell')

Argumentos de entrada

contraer todo

Bordes de banda, especificados como vector. La longitud de es el doble de la longitud de .f2*length(a)-2

Amplitud de banda, especificada como vector. La amplitud se especifica en las bandas definidas por .f Juntos, y definan una función de respuesta constante por pieza.fa

Desviación máxima permitida, especificada como vector. es un vector del mismo tamaño que ese especifica la desviación máxima permitida entre la respuesta de frecuencia del filtro de salida y su amplitud de banda, para cada banda.deva Las entradas especifican la ondulación de banda de paso y la atenuación de la banda de parada.dev Especifique cada entrada como un número positivo, que representa la ganancia de filtro absoluta (sin unidad).dev

Frecuencia de muestreo, especificada como un escalar positivo medido en Hz. Si no especifica el argumento , o si lo especifica como vector vacío , la frecuencia de muestreo tiene como valor predeterminado 2 Hz y la frecuencia Nyquist es de 1 Hz.fs[] Utilice esta sintaxis para especificar bordes de banda escalados a la frecuencia de muestreo de una aplicación determinada. Los bordes de la banda de frecuencia deben ser de 0 a /2.ffs

Argumentos de salida

contraer todo

Orden de filtro, devuelto como un entero positivo.

Bordes de banda de frecuencia normalizados, devueltos como un vector real.

Factor de forma, devuelto como un escalar real positivo. El parámetro afecta a la atenuación del lóbulo lateral de la transformación Fourier de la ventana.beta

Tipo de filtro, destinado a su uso con , devuelto como:fir1

  • — filtro de paso bajo con frecuencia de corte .'low'Wn

  • — filtro de paso alto con frecuencia de corte.'high'Wn

  • — filtro de paso de banda si es un vector de dos elementos.'bandpass'Wn

  • — filtro bandstop si es un vector de dos elementos.'stop'Wn

  • — la primera banda de un filtro multibanda es una banda de parada.'DC-0'

  • — la primera banda de un filtro multibanda es una banda de paso.'DC-1'

Parámetros FIR, devueltos como una matriz de celdas.

Sugerencias

  • Tenga cuidado de distinguir entre los significados de la longitud del filtro y el orden del filtro. El filtro es el número de muestras de respuesta de impulso en el filtro FIR.Longitud Por lo general, la respuesta de impulso se indexa de 0 a – 1, donde está la longitud del filtro.nnLL El filtro es la potencia más alta en una representación de transformación Z del filtro.Orden Para una función de transferencia FIR, esta representación es un polinomio en , donde la potencia más alta eszzL–1 y la potencia más baja esz0. El orden del filtro es uno menor que la longitud ( – 1) y también es igual al número de ceros del polinomio.Lz

  • Si, en el vector , se especifican desviaciones desiguales entre las bandas, se utiliza la desviación mínima especificada, ya que el método de la ventana Kaiser está restringido para producir filtros con desviación mínima en todas las bandas.dev

  • En algunos casos, subestima o sobreestima la orden.kaiserordn Si el filtro no cumple con las especificaciones, pruebe un orden superior como , , etc., o un orden inferior de prueba.n+1n+2

  • Los resultados son inexactos si las frecuencias de corte están cerca de 0 o la frecuencia Nyquist, o si es grande (mayor que 10%).dev

Algoritmos

Dado un conjunto de especificaciones en el dominio de frecuencia, estima el orden de filtro FIR mínimo que cumplirá aproximadamente con las especificaciones. convierte las especificaciones de filtro dadas en ondas de banda de paso y banda de parada y convierte las frecuencias de corte en la forma necesaria para el diseño de filtro FIR con ventanas.kaiserordkaiserord

utiliza fórmulas derivadas empíricamente para estimar los pedidos de filtros de paso bajo, así como diferenciadores y transformadores Hilbert.kaiserord Las estimaciones para los filtros multibanda (como los filtros de paso de banda) se derivan de las fórmulas de diseño de paso bajo.

Las fórmulas de diseño que subyacen a la ventana Kaiser y su aplicación al diseño del filtro FIR son

β={0.1102(α8.7),α>500.5842(α21)0.4+0.07886(α21),21α500,α<21

donde –20logα10es la atenuación de la banda de parada expresada en decibelios, yδ

n=α7.952.285(Δω)

donde está el orden del filtro y el valor de la región de transición más pequeña.nω

Referencias

[1] Kaiser, James F. “Nonrecursive Digital Filter Design Using the I0-sinh Window Function.” Proceedings of the 1974 IEEE International Symposium on Circuits and Systems. 1974, pp. 20–23.

[2] Digital Signal Processing Committee of the IEEE Acoustics, Speech, and Signal Processing Society, eds. Selected Papers in Digital Signal Processing. Vol. II. New York: IEEE Press, 1976.

[3] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Discrete-Time Signal Processing. Upper Saddle River, NJ: Prentice Hall, 1999.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Consulte también

| |

Introducido antes de R2006a