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.

ellip

Diseño de filtro elíptico

Descripción

ejemplo

[b,a] = ellip(n,Rp,Rs,Wp) Devuelve los coeficientes de la función de transferencia de un filtro elíptico digital paso bajo de orden bajo con frecuencia de borde de banda de paso normalizada.nWp El filtro resultante tiene decibelios de onda de paso pico a pico y decibelios de atenuación de banda de stopband hacia abajo desde el valor de banda de paso pico.RpRs

ejemplo

[b,a] = ellip(n,Rp,Rs,Wp,ftype) diseña un filtro elíptico de paso bajo, paso alto, paso de banda o supresión, dependiendo del valor y el número de elementos de.ftypeWp El paso de banda y los diseños de supresión resultantes son de orden 2.n

Consulte para obtener información sobre los problemas numéricos que afectan a la formación de la función de transferencia.Note:Limitaciones

ejemplo

[z,p,k] = ellip(___) diseña un filtro elíptico digital de paso bajo, paso alto, paso de banda o supresión 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] = ellip(___) diseña un filtro elíptico digital de paso bajo, paso alto, paso de banda o supresión y devuelve las matrices que especifican su representación de espacio de estado.

ejemplo

[___] = ellip(___,'s') diseña un filtro elíptico analógico de paso bajo, paso alto, paso de banda o supresión con frecuencia angular de borde de banda de paso, decibelios de ondulación de banda de paso y decibelios de atenuación de banda de parada.WpRpRs

Ejemplos

contraer todo

Diseñe un filtro elíptico de paso bajo de 6º orden con 5 dB de ondulación de banda de paso, 40 dB de atenuación de banda de suspensión y una frecuencia de borde de banda de paso de 300 Hz, que, para datos muestreados a 1000 Hz, corresponde a

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

[b,a] = ellip(6,5,40,0.6); freqz(b,a)

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

Diseñe un filtro de banda elíptica de 6 órdenes 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/Sample, 5 dB de ondulación de banda de paso, y 50 dB de atenuación de banda de stopband. Graficar sus respuestas de magnitud y fase. Se usa para filtrar datos aleatorios.

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

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

Diseñe un filtro elíptico de paso alto de 6º orden con 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/sample. Especifique 3 dB de ondulación de banda de paso y 50 dB de atenuación de banda de stopband. Graficar las respuestas de magnitud y fase. Convierta los ceros, polos y ganancia en secciones de segundo orden para usarlas.fvtool

[z,p,k] = ellip(6,3,50,300/500,'high'); sos = zp2sos(z,p,k); fvtool(sos,'Analysis','freq')

Diseñe un filtro de paso de banda elíptico de 20 órdenes 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, una atenuación de banda de parada de 40 dB y una frecuencia de muestreo de 1500 Hz. Utilice la representación de espacio de estado. Diseña un filtro idéntico usando.designfilt

[A,B,C,D] = ellip(10,3,40,[500 560]/750); d = designfilt('bandpassiir','FilterOrder',20, ...     'PassbandFrequency1',500,'PassbandFrequency2',560, ...     'PassbandRipple',3, ...     'StopbandAttenuation1',40,'StopbandAttenuation2',40, ...     '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,'ellip','designfilt')

Diseñe un filtro de paso bajo de Butterworth analógico de 5º 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 a radianes por segundo. Calcule 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 5º orden con la misma frecuencia de borde y 3 dB de ondulación de banda de paso. Calcule 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 5º orden con la misma frecuencia de borde y 30 dB de atenuación de la banda de suspensión. Calcule 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 5º 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 suspensión. Calcule 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);

Trace la atenuación en decibelios. Exprese la frecuencia en gigahertz. 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. Los filtros tipo I y elíptico Chebyshev se enrollan 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 la 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 a decibelios usando = 40 logRp10((1 + l)/(1 – l)).

Tipos de datos: double

Atenuación de la banda de detención hacia abajo desde el valor de la banda de paso pico, especificado como un escalar positivo expresado en decibelios.

Si su especificación, l, está en unidades lineales, puede convertirla a decibelios usando = – 20 logRs10L.

Tipos de datos: double

Frecuencia de borde de banda de paso, especificada como un vector escalar o de dos elementos. La frecuencia de borde de banda de paso es la frecuencia en la que la respuesta de magnitud del filtro es-decibelios.Rp Los valores más pequeños de ondulación de banda de paso, y los valores más grandes de atenuación de banda de stopband, ambos resultan en bandas de transición más amplias.RpRs

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

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

  • Para los filtros digitales, las frecuencias de borde de banda de paso deben estar entre 0 y 1, donde 1 corresponde a la tasa de Nyquist — la mitad de la frecuencia de muestreo o Rad/sample.π

    Para los filtros analógicos, las frecuencias de borde de banda de paso deben expresarse en radianes por segundo y pueden tomar 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 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 parada de banda de 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 los filtros de paso bajo y paso alto y 2 + 1 para los filtros de paso de banda y supresión.nn

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

    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 el paso de banda y diseños de supresión) 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 bajo y paso alto y = 2 para los filtros de paso de banda y de supresión, entonces 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ésxuy

    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ésxuy

    x˙=Ax+Buy=Cx+Du.

Tipos de datos: double

Más acerca de

contraer todo

Limitaciones

Numerical Instability of Transfer Function Syntax

En general, utilice la sintaxis para diseñar filtros IIR.[z,p,k] Para analizar o implementar el filtro, puede usar la salida con.[z,p,k]zp2sos Si diseña el filtro con la sintaxis, puede encontrar problemas numéricos.[b,a] Estos problemas se deben a errores de redondeo y pueden producirse por un mínimo de 4.n En el ejemplo siguiente se ilustra esta limitación.

n = 6;  Rp = 0.1; Rs = 80; Wn = [2.5e6 29e6]/500e6;  ftype = 'bandpass';   % Transfer Function design  [b,a] = ellip(n,Rp,Rs,Wn,ftype);            % This filter is unstable   % Zero-Pole-Gain design  [z,p,k] = ellip(n,Rp,Rs,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 elípticas ofrecen características de desenrollación más pronunciadas que los filtros Butterworth o Chebyshev, pero son equiondas tanto en la banda de paso como en la banda de suspensión. En general, los filtros elípticas cumplen las especificaciones de rendimiento dadas con el orden más bajo de cualquier tipo de filtro.

utiliza un algoritmo de cinco pasos:ellip

  1. Encuentra los postes de prototipo analógico de paso bajo, ceros y ganancia utilizando la función.ellipap

  2. Convierte los polos, ceros y gana en forma de espacio de estado.

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

  4. Para el diseño de filtros digitales, 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 de frecuencia cuidadoso permite que los filtros analógicos y los filtros digitales tengan la misma magnitud de respuesta de frecuencia en o y.Wpw1w2

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

Capacidades ampliadas

Introducido antes de R2006a