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.

bilinear

Método de transformación bilineal para la conversión de filtros analógicos a digitales

Descripción

[zd,pd,kd] = bilinear(z,p,k,fs) convierte la función -domain transfer en forma de polo cero especificada por , , y la frecuencia de muestreo en un equivalente discreto.szpkfs

[numd,dend] = bilinear(num,den,fs) convierte la función de transferencia de dominio especificada por el numerador y el denominador en un equivalente discreto.snumden

ejemplo

[Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,fs) convierte el sistema de espacio de estado de tiempo continuo en matrices , , y en un sistema de tiempo discreto.ABCD

ejemplo

[___] = bilinear(___,fp)utiliza el parámetro como frecuencia de "coincidencia" para especificar el prewarping.fp

Ejemplos

contraer todo

Diseñe el prototipo para un filtro de paso de banda Chebyshev tipo I de décimo orden con 3 dB de ondulación en la banda de paso. Conviértalo en forma de espacio de estado.

[z,p,k] = cheb1ap(10,3); [A,B,C,D] = zp2ss(z,p,k);  

Cree un filtro analógico con frecuencia de muestreo

<math display="inline">
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">f</mi>
</mrow>
<mrow>
<mi mathvariant="italic">s</mi>
</mrow>
</msub>
<mo>=</mo>
<mn>2</mn>
<mtext></mtext>
<mi>kHz</mi>
</mrow>
</math>
, bordes de banda preformados
<math display="inline">
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">u</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
<mtext></mtext>
</mrow>
</math>
Y
<math display="inline">
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">u</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
</mrow>
</math>
en rad/s, ancho de banda
<math display="inline">
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">B</mi>
</mrow>
<mrow>
<mi mathvariant="italic">w</mi>
</mrow>
</msub>
<mo>=</mo>
<msub>
<mrow>
<mi mathvariant="italic">u</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
<mo>-</mo>
<msub>
<mrow>
<mi mathvariant="italic">u</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
</mrow>
</math>
y la frecuencia central
<math display="inline">
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">W</mi>
</mrow>
<mrow>
<mi mathvariant="italic">o</mi>
</mrow>
</msub>
<mo>=</mo>
<msqrt>
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">u</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
<msub>
<mrow>
<mi mathvariant="italic">u</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
</mrow>
</msqrt>
</mrow>
</math>
para su uso con .lp2bp Especifique las frecuencias de borde de banda de paso como 100 Hz y 500 Hz.

Fs = 2e3; u1 = 2*Fs*tan(100*(2*pi/Fs)/2);    u2 = 2*Fs*tan(500*(2*pi/Fs)/2);  Bw = u2 - u1;                      Wo = sqrt(u1*u2);                  [At,Bt,Ct,Dt] = lp2bp(A,B,C,D,Wo,Bw); [b,a] = ss2tf(At,Bt,Ct,Dt);        

Calcule la respuesta de frecuencia del filtro analógico utilizando .freqs Trazar la respuesta de magnitud y los bordes de la banda de frecuencia prewarped.

[h,w] = freqs(b,a);      plot(w,mag2db(abs(h))) hold on ylim([-165 5]) [U1,U2] = meshgrid([u1 u2],ylim); plot(U1,U2) legend('Magnitude response','Lower Passband Edge','Upper Passband Edge') hold off xlabel('Angular Frequency (rad/s)') ylabel('Magnitude (dB)') grid

Se utiliza para crear un filtro de paso de banda digital con frecuencia de muestreobilinear

<math display="inline">
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">f</mi>
</mrow>
<mrow>
<mi mathvariant="italic">s</mi>
</mrow>
</msub>
</mrow>
</math>
y borde de banda inferior 100 Hz. Convierta el filtro digital del formulario de espacio de estado para transferir el formulario de función utilizando .ss2tf

[Ad,Bd,Cd,Dd] = bilinear(At,Bt,Ct,Dt,Fs);  [bz,az] = ss2tf(Ad,Bd,Cd,Dd);

Se utiliza para trazar la respuesta de magnitud del filtro digital.fvtool

fvtool(bz,az,'Fs',Fs)

Diseñe un filtro de paso bajo analógico elíptico de 6o orden con 3 dB de ondulación en la banda de paso y una banda de parada de 90 dB hacia abajo. Frecuencia de corte de ajuste

<math display="inline">
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">f</mi>
</mrow>
<mrow>
<mi mathvariant="italic">c</mi>
</mrow>
</msub>
<mo>=</mo>
<mn>20</mn>
<mtext></mtext>
<mi mathvariant="normal">Hz</mi>
</mrow>
</math>
y la frecuencia de muestreo
<math display="inline">
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">f</mi>
</mrow>
<mrow>
<mi mathvariant="italic">s</mi>
</mrow>
</msub>
<mo>=</mo>
<mn>200</mn>
<mtext></mtext>
<mi mathvariant="normal">Hz</mi>
</mrow>
</math>
.

clear Fc = 20; Fs = 200;                              [z,p,k] = ellip(6,3,90,2*pi*Fc,'s'); [num,den] = zp2tf(z,p,k);

Calcule la respuesta de magnitud del filtro elíptico analógico. Visualice el filtro analógico.

[h,w] = freqs(num,den); plot(w/(2*pi),mag2db(abs(h))) hold on xlim([0 50]) [l1,l2] = meshgrid(Fc,[-120 0]); plot(l1,l2) grid legend('Magnitude response','Passband Edge') xlabel('Frequency (Hz)') ylabel('Magnitude (dB)')

Se utiliza para transformarlo en un filtro IIR de tiempo discreto.bilinear Establezca la frecuencia de coincidencia como

<math display="inline">
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">f</mi>
</mrow>
<mrow>
<mi mathvariant="italic">p</mi>
</mrow>
</msub>
<mo>=</mo>
<mn>20</mn>
<mtext></mtext>
<mi mathvariant="normal">Hz</mi>
</mrow>
</math>
.

[numd,dend] = bilinear(num,den,Fs,20);

Visualice el filtro utilizando .fvtool

fvtool(numd,dend,'Fs',Fs)                     

Argumentos de entrada

contraer todo

Cero de la función de transferencia de dominio, especificada como vector de columna.s

Polos de la función de transferencia de dominio, especificados como vector de columna.s

Ganancia de la función de transferencia -domain, especificada como escalar.s

Frecuencia de muestreo, especificada como escalar positiva.

Coeficientes de numerador de la función de transferencia analógica, especificados como vector de fila.

Coeficientes de denominador de la función de transferencia analógica, especificados como vector de fila.

Matriz de estado en el dominio -, especificada como una matriz.s Si el sistema tiene entradas y salidas y se describe mediante variables de estado, entonces es -by- .pqnAnn

Tipos de datos: single | double

Matriz de entrada a estado en el dominio, especificada como una matriz.s Si el sistema tiene entradas y salidas y se describe mediante variables de estado, entonces es -by- .pqnBnp

Tipos de datos: single | double

Matriz de estado a salida en el dominio , especificada como una matriz.s Si el sistema tiene entradas y salidas y se describe mediante variables de estado, entonces es -by- .pqnCqn

Tipos de datos: single | double

Matriz de avance en el dominio -, especificada como una matriz.s Si el sistema tiene entradas y salidas y se describe mediante variables de estado, entonces es -by- .pqnDqp

Tipos de datos: single | double

Frecuencia de coincidencia, especificada como un escalar positivo.

Argumentos de salida

contraer todo

Cero de la función de transferencia de dominio, especificada como vector de columna.z

Polos de la función de transferencia de dominio, especificados como vector de columna.z

Ganancia de la función de transferencia -domain, especificada como escalar.z

Coeficientes de numerador de la función de transferencia digital, especificados como vector de fila.

Coeficientes de denominador de la función de transferencia digital, especificados como vector de fila.

Matriz de estado en el dominio -, devuelta como una matriz.z Si el sistema se describe mediante variables de estado, entonces es -by- .nAdnn

Tipos de datos: single | double

Matriz de entrada a estado en el dominio, devuelta como una matriz.z Si el sistema se describe mediante variables de estado, entonces es -by-1.nBdn

Tipos de datos: single | double

Matriz de estado a salida en el dominio, devuelta como una matriz.z Si el sistema tiene salidas y se describe mediante variables de estado, entonces es -by- .qnCdqn

Tipos de datos: single | double

Matriz de avance en el dominio -, devuelta como una matriz.z Si el sistema tiene salidas, entonces es -by-1.qDdq

Tipos de datos: single | double

Diagnóstico

requiere que el orden del numerador no sea mayor que el orden del denominador.bilinear Si este no es el caso, muestrabilinear

El numerador no puede ser superior al denominador. 

Para distinguir entre los formatos de sistema lineal de la función de ganancia de polo cero y de transferencia, los dos primeros parámetros de entrada deben ser vectores con la misma orientación en estos casos.bilinear Si este no es el caso, muestrabilinear

Los dos primeros argumentos deben tener la misma orientación. 

Algoritmos

contraer todo

Es una asignación matemática de variables.transformación bilineal En el filtrado digital, es un método estándar de mapeo del plano analógico en el plano digital o.sz Transforma los filtros analógicos, diseñados utilizando técnicas clásicas de diseño de filtros, en sus equivalentes discretos.

La transformación bilineal asigna el plano en el planosz

H(z)=H(s)|s=2fsz1z+1.

Esta transformación asigna el eje de la unidad (de á – a +) repetidamente alrededor del círculo de la unidad (jejw, de – a - ) porω

ω=2tan1(Ω2fs).

puede aceptar un parámetro opcional que especifique el prewarping. , en hercios, indica una frecuencia de "coincidencia", es decir, una frecuencia para la que las respuestas de frecuencia antes y después de la asignación coinciden exactamente.bilinearFpfp En el modo prewarped, la transformación bilineal asigna el plano en el plano consz

H(z)=H(s)|s=2πfptan(πfpfs)z1z+1.

Con la opción de preformación, se asigna el eje de la unidad (de á – a +) repetidamente alrededor del círculo de la unidad (bilinearje, de – a ) porωππ

ω=2tan1(Ωtan(πfpfs)2πfp).

En el modo preformado, coincide con la frecuencia 2bilinearπfp (en radianes por segundo) en el plano a la frecuencia normalizada 2sπfp/fs (en radianes por segundo) en el plano.z

La función funciona con tres representaciones lineales del sistema diferentes: ganancia de polo cero, función de transferencia y forma de espacio de estado.bilinear

utiliza uno de los dos algoritmos dependiendo del formato del sistema lineal de entrada que proporcione.bilinear Un algoritmo funciona en el formato de ganancia de polo cero y el otro en el formato de espacio de estado. Para las representaciones de función de transferencia, se convierte en forma de espacio de estado, realiza la transformación y vuelve a convertir el sistema de espacio de estado resultante en forma de función de transferencia.bilinear

Algoritmo de ganancia de polo cero

Para un sistema en forma de ganancia de polo cero, realiza cuatro pasos:bilinear

  1. Si está presente, prewarps:fp

    fp = 2*pi*fp; fs = fp/tan(fp/fs/2) 

    Lo contrario.fs = 2*fs

  2. Despoja cualquier cero en el

    z = z(finite(z)); 
  3. Transforma los ceros, los polos y la ganancia usando

    pd = (1+p/fs)./(1-p/fs);    % Do bilinear transformation zd = (1+z/fs)./(1-z/fs); kd = real(k*prod(fs-z)./prod(fs-p)); 
  4. Añade ceros adicionales a -1 por lo que el sistema resultante tiene un orden de numerador y denominador equivalente.

Algoritmo de espacio-estado

Un sistema analógico en forma de espacio estatal es dado por

x˙=Ax+Buy=Cx+Du

. Este sistema se convierte en la forma discreta utilizando ecuaciones de espacio de estado de la siguiente manera:

x[n+1]=Adx[n]+Bdu[n],y[n]     =Cdx[n]+Ddu[n].

Para convertir un sistema analógico en forma de espacio de estado, realiza dos pasos:bilinear

  1. Si está presente, deje quefp

    λ=πfptan(πfp/fs).

    Si no está presente, deje quefp λ=fs.

  2. Calcular , , , y en términos de , , , y el uso deAdBdCdDdABCD

    Ad=(IA12λ)1(I+A12λ),Bd=1λ(IA12λ)1B,Cd=1λC(IA12λ)1,Dd=12λC(IA12λ)1B+D.

Función de transferencia

Para un sistema en forma de función de transferencia, convierte una función de transferencia de dominio dada por y en un equivalente discreto.bilinearsnumden Vectores de fila y especifique los coeficientes del numerador y el denominador, respectivamente, en potencias descendentes de .numdens Sea ( ) el polinomio numerador y ( ) sea el polinomio denominador.BsAs La función de transferencia es:

B(s)A(s)=B(1)sn++B(n)s+B(n+1)A(1)sm++A(m)s+A(m+1)

es la frecuencia de muestreo en hercios. devuelve el equivalente discreto en vectores de fila y en poderes descendentes de (poderes ascendentes defsbilinearnumddendzz–1). es la frecuencia de coincidencia opcional, en hercios, para prewarping.fp

Referencias

[1] Parks, Thomas W., and C. Sidney Burrus. Digital Filter Design. New York: John Wiley & Sons, 1987, pp. 209–213.

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

Consulte también

| | | |

Introducido antes de R2006a