Main Content

La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.

impinvar

Método de invariancia de impulso para la conversión de filtros analógicos a digitales

Descripción

ejemplo

[bz,az] = impinvar(b,a,fs) crea un filtro digital con coeficientes de numerador y denominador bz y az respectivamente, cuya respuesta al impulso es igual a la respuesta al impulso del filtro analógico con coeficientes b y a, escalados por 1/fs, donde fs es la tasa de muestreo.

[bz,az] = impinvar(b,a,fs,tol) utiliza la tolerancia especificada por tol para determinar si se repiten los polos.

Ejemplos

contraer todo

Convierta un filtro Butterworth de paso bajo de sexto orden en un filtro digital mediante la invariancia de impulso. Especifique una tasa de muestreo de 10 Hz y una frecuencia de corte de 2 Hz. Muestre la respuesta de frecuencia del filtro.

f = 2;
fs = 10;

[b,a] = butter(6,2*pi*f,'s');
[bz,az] = impinvar(b,a,fs);

freqz(bz,az,1024,fs)

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

Convierta un filtro elíptico analógico de tercer orden en un filtro digital mediante la invariancia de impulso. Especifique una tasa de muestreo de fs=10 Hz, una frecuencia de borde de banda de paso de 2,5 Hz, una curvatura de banda de paso de 1 dB y una atenuación de banda de parada de 60 dB. Muestre la respuesta al impulso del filtro digital.

fs = 10;

[b,a] = ellip(3,1,60,2*pi*2.5,'s');
[bz,az] = impinvar(b,a,fs);

impz(bz,az,[],fs)

Figure contains an axes. The axes with title Impulse Response contains an object of type stem.

Derive la respuesta al impulso del filtro analógico buscando los residuos, rk, y los polos, pk, de la función de transferencia e invirtiendo la transformada de Laplace explícitamente mediante

H(s)=krks-pkh(t)=krkepkt.

Superponga la respuesta al impulso del filtro analógico. La invariancia de impulso introduce una ganancia de 1/fs en el filtro digital. Multiplique la respuesta al impulso analógica por esta ganancia para poder realizar una comparación significativa.

[r,p] = residue(b,a);
t = linspace(0,4,1000);
h = real(r.'*exp(p.*t)/fs);

hold on
plot(t,h)
hold off

Figure contains an axes. The axes with title Impulse Response contains 2 objects of type stem, line.

Argumentos de entrada

contraer todo

Coeficientes de la función de transferencia del filtro analógico, especificados como vectores.

Ejemplo: [b,a] = butter(6,2*pi*10,'s') especifica un filtro Butterworth de sexto orden con una frecuencia de corte de 10 Hz.

Tipos de datos: single | double

Tasa de muestreo, especificada como un escalar positivo.

Tipos de datos: single | double

Tolerancia, especificada como un escalar positivo. La tolerancia determina si se repiten los polos. Una mayor tolerancia aumenta la probabilidad de que impinvar interprete los polos cercanos como multiplicidades (repetidos). La tolerancia predeterminada corresponde al 0,1% de la magnitud de un polo. La precisión de los valores de los polos sigue estando limitada a la precisión obtenida por la función roots.

Tipos de datos: single | double

Argumentos de salida

contraer todo

Coeficientes de la función de transferencia del filtro digital, devueltos como vectores.

Algoritmos

impinvar realiza el método del impulso invariante de conversión de la función de transferencia de analógico a digital tratada en la referencia [2]:

  1. Encuentra el aumento de la fracción parcial del sistema representado por b y a.

  2. Sustituye los polos p por los polos exp(p/fs).

  3. Encuentra los coeficientes de la función de transferencia del sistema a partir de los residuos del paso 1 y de los polos del paso 2.

Referencias

[1] Antoniou, Andreas. Digital Filters. New York: McGraw-Hill, Inc., 1993.

[2] Parks, Thomas W., and C. Sidney Burrus. Digital Filter Design. New York: John Wiley & Sons, 1987.

Consulte también

| | | |

Introducido antes de R2006a