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

El método de Transformación bilineal para la conversión de filtros de analógico a digital

Descripción

[zd,pd,kd] = bilinear(z,p,k,fs) convierte la función de transferencia de dominio 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-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 la prewarping.fp

Ejemplos

contraer todo

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

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

Cree un filtro analógico con 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>2</mn>
<mtext></mtext>
<mi>kHz</mi>
</mrow>
</math>
, bordes de banda prewarped
<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 la 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 Graficar la respuesta de magnitud y los bordes de la banda de frecuencias 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 el borde inferior de la banda 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 6º orden con 3 dB de ondulación en la banda de paso y una banda de parada de 90 dB hacia abajo. Establecer la frecuencia de corte

<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)')

Utilíciese 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

Ceros de la función de transferencia de dominio, especificado como un vector de columna.s

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

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

Frecuencia de muestreo, especificada como un escalar positivo.

Coeficientes de Numerador de la función de transferencia analógica, especificado como una matriz.

Coeficientes de denominador de la función de transferencia analógica, especificado como una matriz.

Matriz de estado en el-dominio, especificada como una matriz.s Si el sistema tiene entradas y salidas y se describe por variables de estado, entonces es-por-.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 por variables de estado, entonces es-por-.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 por variables de estado, entonces es-por-.pqnCqn

Tipos de datos: single | double

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

Tipos de datos: single | double

Frecuencia de coincidencia, especificada como un escalar positivo.

Argumentos de salida

contraer todo

Ceros de la función de transferencia de dominio, especificado como un vector de columna.z

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

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

Coeficientes de Numerador de la función de transferencia digital, especificado como una matriz.

Coeficientes de denominador de la función de transferencia digital, especificado como una matriz.

Matriz de estado en el-dominio, devuelta como una matriz.z Si el sistema es descrito por las variables de estado, entonces es-por-.nAdnn

Tipos de datos: single | double

Matriz de entrada a estado en el dominio, devuelta como una matriz.z Si el sistema es descrito por las variables de estado, entonces es-por-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 por variables de estado, entonces es-por-.qnCdqn

Tipos de datos: single | double

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

Tipos de datos: single | double

Diagnóstico

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

El numerador no puede ser de orden superior al denominador. 

Para distinguir entre los formatos de sistema lineal de ganancia de polo cero y función 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 un mapeo matemático de variables.bilinear transformation En el filtrado digital, es un método estándar de mapear el plano analógico o en el plano digital.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 plano porsz

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

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

ω=2tan1(Ω2fs).

puede aceptar un parámetro opcional que especifica el prewarping. , en Hertz, indica una frecuencia de "coincidencia", es decir, una frecuencia para la cual las respuestas de frecuencia antes y después de la correspondencia 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 prewarping, asigna el eje Ω (de Ω = – ∞ a + ∞) repetidamente alrededor del círculo de la unidad (bilinearje, de = – a) porωππ

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

En el modo prewarped, 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 de sistema lineales 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 suministre.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, convierte al formulario de espacio de estado, realiza la transformación y convierte el sistema de espacio de estado resultante de nuevo en el formulario 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. Elimina los ceros a ± ∞ mediante

    z = z(finite(z)); 
  3. Transforma los ceros, polos y 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. Agrega ceros adicionales a-1, por lo que el sistema resultante tiene un orden de numerador y denominador equivalente.

Algoritmo de espacio de estado

Un sistema analógico en forma de espacio de estado viene dado por

x˙=Ax+Buy=Cx+Du

. Este sistema se convierte a la forma discreta utilizando ecuaciones de espacio de estado como se indica a continuación:

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

Para convertir un sistema analógico en un formulario 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. Compute,, y en términos de, y utilizandoAdBdCdDdABCD

    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 el formulario de función de transferencia, convierte una función de transferencia de dominio dada por y a un equivalente discreto.bilinearsnumden Los vectores de fila y especifican los coeficientes del numerador y el denominador, respectivamente, en potencias descendentes de.numdens Let () ser el polinomio numerador y () ser 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 potencias descendentes de (potencias 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