Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

impz

Respuesta al impulso de un filtro digital

Descripción

ejemplo

[h,t] = impz(b,a) devuelve la respuesta al impulso del filtro digital con coeficientes del numerador b y coeficientes del denominador a. La función escoge el número de muestras y devuelve los coeficientes de respuesta de h y los tiempos de muestreo de t.

[h,t] = impz(sos) devuelve la respuesta al impulso del filtro que especifica la matriz de secciones de segundo orden sos.

ejemplo

[h,t] = impz(d) devuelve la respuesta al impulso del filtro digital d. Utilice designfilt para generar d según las especificaciones de frecuencia-respuesta.

ejemplo

[h,t] = impz(___,n) especifica qué muestras impulso-respuesta se deben calcular. Puede especificar el filtro utilizando cualquiera de las sintaxis anteriores.

ejemplo

[h,t] = impz(___,n,fs) devuelve un vector t con muestras consecutivas espaciadas con 1/fs unidades.

ejemplo

impz(___) sin argumentos de salida representa la respuesta al impulso del filtro.

Ejemplos

contraer todo

Diseñe un filtro elíptico de paso bajo de cuarto orden con una frecuencia de banda de paso normalizada de 0,4 rad/muestra. Especifique una ondulación de banda de paso de 0,5 dB y una atenuación de banda de parada de 20 dB. Represente las primeras 50 muestras de la respuesta al impulso.

[b,a] = ellip(4,0.5,20,0.4);
impz(b,a,50)

Figure contains an axes object. The axes object with title Impulse Response, xlabel n (samples), ylabel Amplitude contains an object of type stem.

Diseñe el mismo filtro mediante designfilt. Represente las primeras 50 muestras de su respuesta al impulso.

d = designfilt('lowpassiir','DesignMethod','ellip','FilterOrder',4, ...
               'PassbandFrequency',0.4, ...
               'PassbandRipple',0.5,'StopbandAttenuation',20);
impz(d,50)

Figure Figure 1: Impulse Response contains an axes object. The axes object with title Impulse Response, xlabel Samples, ylabel Amplitude contains an object of type stem.

Diseñe un filtro FIR de paso alto de orden 18 mediante una ventana de Kaiser con β=4. Especifique una tasa de muestreo de 100 Hz y una frecuencia de corte de 30 Hz. Muestre la respuesta al impulso del filtro.

b = fir1(18,30/(100/2),'high',kaiser(19,4));
impz(b,1,[],100)

Figure contains an axes object. The axes object with title Impulse Response, xlabel nT (seconds), ylabel Amplitude contains an object of type stem.

Diseñe el mismo filtro utilizando designfilt y represente su respuesta al impulso.

d = designfilt('highpassfir','FilterOrder',18,'SampleRate',100, ...
               'CutoffFrequency',30,'Window',{'kaiser',4});
impz(d,[],100)

Figure Figure 1: Impulse Response contains an axes object. The axes object with title Impulse Response, xlabel Time (ms), ylabel Amplitude contains an object of type stem.

Argumentos de entrada

contraer todo

Coeficientes de la función de transferencia, especificados como vectores. Exprese la función de transferencia en términos de b y a como

H(z)=B(z)A(z)=b1+b2z1+bnz(n1)+bn+1zna1+a2z1+amz(m1)+am+1zm

Ejemplo: b = [1 3 3 1]/6 y a = [3 0 1 0]/3 especifican un filtro Butterworth de tercer orden con una frecuencia normalizada de 3 dB de 0,5π rad/muestra.

Tipos de datos: double | single
Soporte de números complejos:

Coeficientes de la sección de segundo orden, especificados como una matriz. sos es una matriz de K por 6, donde el número de secciones, K, debe ser mayor o igual a 2. Si el número de secciones es inferior a 2, la función trata la entrada como un vector de numerador. Cada fila de sos corresponde a los coeficientes de un filtro de segundo orden (bicuadrado). La fila i de sos corresponde a [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)].

Ejemplo: s = [2 4 2 6 0 2;3 3 0 6 0 0] especifica un filtro Butterworth de tercer orden con una frecuencia normalizada de 3 dB de 0,5π rad/muestra.

Tipos de datos: double | single
Soporte de números complejos:

Filtro digital, especificado como un objeto digitalFilter. Utilice designfilt para generar un filtro digital según las especificaciones de frecuencia-respuesta.

Ejemplo: d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.5) especifica un filtro Butterworth de tercer orden con una frecuencia normalizada de 3 dB de 0,5π rad/muestra.

Números de muestras, especificados como entero positivo, vector de enteros no negativos o vector vacío.

  • Si n es un entero positivo, impz calcula las primeras n muestras de la respuesta al impulso y devuelve t como (0:n-1)'.

  • Si n es un vector de enteros no negativos, impz calcula la respuesta al impulso en las ubicaciones especificadas en el vector.

  • Si n es un vector vacío, impz calcula el número de muestras automáticamente. Para obtener más información, consulte Algoritmos.

Ejemplo: impz([2 4 2 6 0 2;3 3 0 6 0 0],5) calcula las cinco primeras muestras de la respuesta al impulso de un filtro Butterworth.

Ejemplo: impz([2 4 2 6 0 2;3 3 0 6 0 0],[0 3 2 1 4 5]) calcula las seis primeras muestras de la respuesta al impulso de un filtro Butterworth.

Ejemplo: impz([2 4 2 6 0 2;3 3 0 6 0 0],[],5e3) calcula la respuesta al impulso de un filtro Butterworth diseñado para filtrar señales muestreadas a 5 kHz.

Tasa de muestreo, especificada como un escalar positivo. Cuando la unidad de tiempo es el segundo, fs se expresa en hercios.

Tipos de datos: double

Argumentos de salida

contraer todo

Coeficientes de respuesta al impulso, devueltos como vector columna.

Tiempos de muestreo, devueltos como vector columna.

Algoritmos

impz filtra una secuencia de impulso de longitud n utilizando

filter(b,a,[1 zeros(1,n-1)])

y representa el resultado utilizando stem.

Nota

Si la entrada de impz es de precisión simple, la función calcula la respuesta al impulso mediante aritmética de precisión simple y devuelte una salida de precisión simple.

Cuando impz calcula n automáticamente, el algoritmo depende de las propiedades del filtro:

  • Filtros FIR: n es la longitud de b.

  • Filtros IIR: impz busca primero los polos de la función de transferencia utilizando roots.

    • Si el filtro es inestable, se escoge n como punto en el que el término del polo más grande alcanza 106 veces su valor original.

    • Si el filtro es estable, se escoge n como punto en el que el término del polo de mayor amplitud alcanza 5 × 10–5 veces su amplitud original.

    • Si el filtro es oscilatorio y solo tiene polos en el círculo de la unidad, impz calcula cinco periodos de la oscilación más lenta.

    • Si el filtro tiene términos tanto oscilatorios como con amortiguamiento, n es el mayor de los cinco periodos con oscilación más lenta o el punto en el que el término es 5 × 10–5 veces su amplitud original debido al polo más grande.

impz también permite retardos en el polinomio del numerador. El número de retardos se incorpora al cálculo del número de muestras.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

| | (Control System Toolbox) | |