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.

cheby1

Diseño de filtro Chebyshev Tipo I

Descripción

ejemplo

[b,a] = cheby1(n,Rp,Wp) devuelve los coeficientes de función de transferencia de un filtro Chebyshev tipo I digital de paso bajo de la orden de la orden con frecuencia de borde de banda de paso normalizada y decibelios de ondulación de banda de paso de pico a pico.nWpRp

ejemplo

[b,a] = cheby1(n,Rp,Wp,ftype) diseña un filtro lowpass, highpass, bandpasspass o bandstop Chebyshev Type I, dependiendo del valor y el número de elementos de .ftypeWp Los diseños resultantes de paso de banda y bandstop son del pedido 2.n

Consulte para obtener información sobre cuestiones numéricas que afectan a la formación de la función de transferencia.Nota:Limitaciones

ejemplo

[z,p,k] = cheby1(___) diseña un filtro chebyshev tipo I digital de paso bajo, paso alto, paso de banda o bandstop y devuelve sus ceros, polos y ganancia. Esta sintaxis puede incluir cualquiera de los argumentos de entrada en sintaxis anteriores.

ejemplo

[A,B,C,D] = cheby1(___) diseña un filtro Chebyshev Type I digital de paso bajo, paso alto, paso de banda o bandstop y devuelve las matrices que especifican su representación de espacio de estado.

ejemplo

[___] = cheby1(___,'s') diseña un filtro de paso bajo, paso alto, paso de banda o filtro analógico Chebyshev Tipo I con frecuencia angular de borde de banda de paso y decibelios de ondulación de banda de paso.WpRp

Ejemplos

contraer todo

Diseñar un filtro Chebyshev Tipo I de paso bajo de 6o orden con 10 dB de ondulación de banda de paso y una frecuencia de borde de banda de paso de 300 Hz, que, para los datos muestreados a 1000 Hz, corresponde a

<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>6</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra. Trazar sus respuestas de magnitud y fase. Utilícelo para filtrar una señal aleatoria de 1000 muestras.

[b,a] = cheby1(6,10,0.6); freqz(b,a)

dataIn = randn(1000,1); dataOut = filter(b,a,dataIn);

Diseñe un filtro de bandstop Chebyshev Tipo I de 6o orden con frecuencias de borde normalizadas de

<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>2</mn>
<mi>π</mi>
</mrow>
</math>
Y
<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>6</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra y 5 dB de ondulación de banda de paso. Trazar sus respuestas de magnitud y fase. Utilícelo para filtrar datos aleatorios.

[b,a] = cheby1(3,5,[0.2 0.6],'stop'); freqz(b,a)

dataIn = randn(1000,1); dataOut = filter(b,a,dataIn);

Diseñar un filtro Chebyshev Tipo I de paso alto de 9o orden con 0,5 dB de ondulación de banda de paso y una frecuencia de borde de banda de paso de 300 Hz, que, para los datos muestreados a 1000 Hz, corresponde a

<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>6</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra. Trazar las respuestas de magnitud y fase. Convierta los ceros, los polos y la ganancia en secciones de segundo orden para su uso por .fvtool

[z,p,k] = cheby1(9,0.5,300/500,'high'); sos = zp2sos(z,p,k); fvtool(sos,'Analysis','freq')

Diseñe un filtro de paso de banda Chebyshev Tipo I de 20o orden con una frecuencia de banda de paso más baja de 500 Hz y una frecuencia de banda de paso más alta de 560 Hz. Especifique una ondulación de banda de paso de 3 dB y una frecuencia de muestreo de 1500 Hz. Utilice la representación de espacio de estado. Diseñe un filtro idéntico utilizando .designfilt

[A,B,C,D] = cheby1(10,3,[500 560]/750); d = designfilt('bandpassiir','FilterOrder',20, ...     'PassbandFrequency1',500,'PassbandFrequency2',560, ...     'PassbandRipple',3,'SampleRate',1500);

Convierta la representación de espacio de estado en secciones de segundo orden. Visualice las respuestas de frecuencia utilizando .fvtool

sos = ss2sos(A,B,C,D); fvt = fvtool(sos,d,'Fs',1500); legend(fvt,'cheby1','designfilt')

Diseñe un filtro de paso bajo Butterworth analógico de 5o orden con una frecuencia de corte de 2 GHz. Multiplicar por

<math display="block">
<mrow>
<mn>2</mn>
<mi>π</mi>
</mrow>
</math>
para convertir la frecuencia en radianes por segundo. Calcular la respuesta de frecuencia del filtro en 4096 puntos.

n = 5; f = 2e9;  [zb,pb,kb] = butter(n,2*pi*f,'s'); [bb,ab] = zp2tf(zb,pb,kb); [hb,wb] = freqs(bb,ab,4096);

Diseñe un filtro Chebyshev Tipo I de 5o orden con la misma frecuencia de borde y 3 dB de ondulación de banda de paso. Calcular su respuesta de frecuencia.

[z1,p1,k1] = cheby1(n,3,2*pi*f,'s'); [b1,a1] = zp2tf(z1,p1,k1); [h1,w1] = freqs(b1,a1,4096);

Diseñe un filtro Chebyshev Tipo II de 5o orden con la misma frecuencia de borde y 30 dB de atenuación de la banda de parada. Calcular su respuesta de frecuencia.

[z2,p2,k2] = cheby2(n,30,2*pi*f,'s'); [b2,a2] = zp2tf(z2,p2,k2); [h2,w2] = freqs(b2,a2,4096);

Diseñe un filtro elíptico de 5o orden con la misma frecuencia de borde, 3 dB de ondulación de banda de paso y 30 dB de atenuación de banda de parada. Calcular su respuesta de frecuencia.

[ze,pe,ke] = ellip(n,3,30,2*pi*f,'s'); [be,ae] = zp2tf(ze,pe,ke); [he,we] = freqs(be,ae,4096);

Trazar la atenuación en decibelios. Exprese la frecuencia en gigahercios. Compare los filtros.

plot(wb/(2e9*pi),mag2db(abs(hb))) hold on plot(w1/(2e9*pi),mag2db(abs(h1))) plot(w2/(2e9*pi),mag2db(abs(h2))) plot(we/(2e9*pi),mag2db(abs(he))) axis([0 4 -40 5]) grid xlabel('Frequency (GHz)') ylabel('Attenuation (dB)') legend('butter','cheby1','cheby2','ellip')

Los filtros Butterworth y Chebyshev Tipo II tienen bandas de paso planas y bandas de transición anchas. El Chebyshev Tipo I y los filtros elípticos se despliegan más rápido, pero tienen ondulación de banda de paso. La entrada de frecuencia a la función de diseño Chebyshev Tipo II establece el principio de la banda de parada en lugar del final de la banda de paso.

Argumentos de entrada

contraer todo

Orden de filtro, especificado como un escalar entero.

Tipos de datos: double

Ondulación de banda de paso pico a pico, especificada como un escalar positivo expresado en decibelios.

Si su especificación, l, está en unidades lineales, puede convertirla en decibelios utilizando el registro de 40Rp10((1+l)/(1–l)).

Tipos de datos: double

Frecuencia de borde de banda de paso, especificada como un vector escalar o de dos elementos. La frecuencia del borde de la banda de paso es la frecuencia a la que se encuentra la respuesta de magnitud del filtro – decibelios.Rp Los valores más pequeños de la ondulación de banda de paso, , dan como resultado bandas de transición más anchas.Rp

  • Si es un escalar, entonces diseña un filtro de paso bajo o paso alto con frecuencia de borde.Wpcheby1Wp

    Si es el vector de dos elementos, donde < , entonces diseña un filtro de paso de banda o paso de banda con frecuencia de borde inferior y mayor frecuencia de borde.Wp[w1 w2]w1w2cheby1w1w2

  • Para los filtros digitales, las frecuencias de borde de la banda de paso deben estar entre 0 y 1, donde 1 corresponde a la velocidad Nyquist: la mitad de la frecuencia de muestreo o rad/muestra.π

    Para los filtros analógicos, las frecuencias de borde de la banda de paso deben expresarse en radianes por segundo y pueden asumir cualquier valor positivo.

Tipos de datos: double

Tipo de filtro, especificado como uno de los siguientes:

  • especifica un filtro de paso bajo con frecuencia de borde de banda de paso. es el valor predeterminado para escalar .'low'Wp'low'Wp

  • especifica un filtro de paso alto con frecuencia de borde de banda de paso.'high'Wp

  • especifica un filtro de paso de banda de la orden 2 si es un vector de dos elementos. es el valor predeterminado cuando tiene dos elementos.'bandpass'nWp'bandpass'Wp

  • especifica un filtro de bandstop de la orden 2 si es un vector de dos elementos.'stop'nWp

Argumentos de salida

contraer todo

Transfiera los coeficientes de función del filtro, devueltos como vectores de fila de longitud + 1 para filtros de paso bajo y paso alto y 2 + 1 para filtros de paso de banda y paso de banda.nn

  • En el caso de los filtros digitales, la función de transferencia se expresa en términos deba

    H(z)=B(z)A(z)=b(1)+b(2)z1++b(n+1)zna(1)+a(2)z1++a(n+1)zn.

  • Para los filtros analógicos, la función de transferencia se expresa en términos de y comoba

    H(s)=B(s)A(s)=b(1)sn+b(2)sn1++b(n+1)a(1)sn+a(2)sn1++a(n+1).

Tipos de datos: double

Ceros, polos y ganancia del filtro, devueltos como dos vectores de columna de longitud (2 para diseños de paso de banda y bandstop) y un escalar.nn

  • Para los filtros digitales, la función de transferencia se expresa en términos de , , y comozpk

    H(z)=k(1z(1)z1)(1z(2)z1)(1z(n)z1)(1p(1)z1)(1p(2)z1)(1p(n)z1).

  • Para los filtros analógicos, la función de transferencia se expresa en términos de , , y comozpk

    H(s)=k(sz(1))(sz(2))(sz(n))(sp(1))(sp(2))(sp(n)).

Tipos de datos: double

Representación de espacio de estado del filtro, devuelta como matrices. Si para los diseños de paso sin paso y paso alto y 2 para los filtros de paso de banda y de paso de banda, entonces es , es , es 1 , es 1 , y es 1 - 1.mnmnAmmBmCmD

  • Para los filtros digitales, las matrices de espacio de estado relacionan el vector de estado, la entrada y la salida a través dexuy

    x(k+1)=Ax(k)+Bu(k)y(k)=Cx(k)+Du(k).

  • Para los filtros analógicos, las matrices de espacio de estado relacionan el vector de estado, la entrada y la salida a través dexuy

    x˙=Ax+Buy=Cx+Du.

Tipos de datos: double

Más acerca de

contraer todo

Limitaciones

Inestabilidad numérica de la sintaxis de la función de transferencia

En general, utilice la sintaxis para diseñar filtros IIR.[z,p,k] Para analizar o implementar el filtro, puede utilizar la salida con .[z,p,k]zp2sos Si diseña el filtro con la sintaxis, es posible que encuentre problemas numéricos.[b,a] Estos problemas se deben a errores de redondeo y pueden ocurrir por tan solo 4.n En el ejemplo siguiente se muestra esta limitación.

n = 6;  Rp = 0.1; Wn = [2.5e6 29e6]/500e6; ftype = 'bandpass';  % Transfer function design [b,a] = cheby1(n,Rp,Wn,ftype);      % This filter is unstable  % Zero-pole-gain design [z,p,k] = cheby1(n,Rp,Wn,ftype); sos = zp2sos(z,p,k);  % Plot and compare the results hfvt = fvtool(b,a,sos,'FrequencyScale','log'); legend(hfvt,'TF Design','ZPK Design')

Algoritmos

Los filtros Chebyshev Tipo I son equisionados en la banda de paso y monotónicos en la banda de parada. Los filtros de tipo I se despliegan más rápido que los filtros de tipo II, pero a expensas de una mayor desviación de la unidad en la banda de paso.

utiliza un algoritmo de cinco pasos:cheby1

  1. Encuentra los polos prototipo analógicos de paso bajo, ceros y ganancia utilizando la función .cheb1ap

  2. Convierte los polos, ceros y ganancia en forma de espacio estatal.

  3. Si es necesario, utiliza una transformación de espacio de estado para convertir el filtro de paso bajo en un filtro de paso alto, paso de banda o bandstop con las restricciones de frecuencia deseadas.

  4. Para el diseño de filtro sin filtro digital, se utiliza para convertir el filtro analógico en un filtro digital a través de una transformación bilineal con prewarping de frecuencia.bilinear El ajuste cuidadoso de la frecuencia permite que los filtros analógicos y los filtros digitales tengan la misma magnitud de respuesta de frecuencia en o .Wpw1w2

  5. Convierte el filtro de espacio de estado de nuevo a la función de transferencia o forma de ganancia de polo cero, según sea necesario.

Capacidades ampliadas

Introducido antes de R2006a