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 de diseño de filtro FIR de ventana de 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 de Kaiser para su uso con la función.nWnbetafir1 Para diseñar un filtro FIR que cumpla aproximadamente 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.fir1

Ejemplos

contraer todo

Diseñe un filtro de paso bajo con banda de paso definida de 0 a 1 kHz y banda de stopband definida de 1500 Hz a 4 kHz. Especifique una ondulación de banda de paso de 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 incluso el orden, 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 utilizando 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

Aristas de banda, especificadas como un vector. La longitud de es dos veces 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 definir una función de respuesta constante por tramos.fa

Desviación máxima permitida, especificada como vector. es un vector del mismo tamaño que 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 en especifican la ondulación de la banda de paso y la atenuación de la banda de suspensión.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 se especifica el argumento, o si se especifica como el vector vacío, la frecuencia de muestreo por defecto es de 2 Hz y la de 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 frecuencias 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 mínimos de la transformada de Fourier de la ventana.beta

Tipo de filtro, destinado a ser utilizado 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 de supresión si es un vector de dos elementos.'stop'Wn

  • — la primera banda de un filtro multibanda es una banda de suspensión.'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 al impulso en el filtro FIR.length Generalmente, la respuesta del 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.order 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 de filtro es uno menos que la longitud (– 1) y también es igual al número de ceros del polinomio.Lz

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

  • En algunos casos, subestima o sobrestima la orden.kaiserordn Si el filtro no cumple con las especificaciones, intente un orden más alto como,, y así sucesivamente, o una orden inferior try.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 la frecuencia, estima el orden mínimo del filtro FIR que se ajusta aproximadamente a las especificaciones. convierte las especificaciones de filtro dadas en ondulaciones de banda de paso y banda de stopband y convierte las frecuencias de corte en la forma necesaria para el diseño de filtro FIR con ventana.kaiserordkaiserord

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

Las fórmulas de diseño que subyacen a la ventana de 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 detención expresada en decibelios, yδ

n=α7.952.285(Δω)

donde está el orden de filtro y Δ es el ancho 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