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.

grpdelay

Retardo promedio del filtro (retardo de grupo)

Descripción

[gd,w] = grpdelay(b,a,n) devuelve la respuesta de retardo de grupo de n puntos gd y el correspondiente vector de frecuencia angular w para el filtro digital con los coeficientes de la función de transferencia almacenados en b y a.

ejemplo

[gd,w] = grpdelay(sos,n) devuelve la respuesta de retardo de grupo de n puntos correspondiente a la matriz de secciones de segundo orden sos.

ejemplo

[gd,w] = grpdelay(d,n) devuelve la respuesta de retardo de grupo de n puntos del filtro digital d.

[gd,w] = grpdelay(___,"whole") devuelve el retardo de grupo en n puntos de muestra alrededor de todo el círculo de la unidad.

[gd,f] = grpdelay(___,n,fs) devuelve el vector de retardo de grupo gd y el correspondiente vector de frecuencia física f de un filtro digital diseñado para filtrar las señales muestreadas a una tasa fs.

[gd,f] = grpdelay(___,n,"whole",fs) devuelve el vector de frecuencia en n puntos que van de 0 a fs.

gd = grpdelay(___,win) devuelve el vector de retardo de grupo gd evaluado en las frecuencias normalizadas suministradas en win.

ejemplo

gd = grpdelay(___,fin,fs) devuelve el vector de retardo de grupo gd evaluado en las frecuencias físicas suministradas en fin.

ejemplo

grpdelay(___) sin argumentos de salida representa la respuesta de retardo de grupo del filtro.

Ejemplos

contraer todo

Diseñe un filtro Butterworth de sexto orden con 3 dB normalizados de frecuencia de 0.2π rad/muestra. Utilice grpdelay para mostrar el retardo de grupo.

[z,p,k] = butter(6,0.2);
sos = zp2sos(z,p,k);

grpdelay(sos,128)

Figure contains an axes object. The axes object with title Group Delay, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Group delay (samples) contains an object of type line.

Represente tanto el retardo de grupo como el retardo de fase del sistema en la misma figura.

gd = grpdelay(sos,512);

[h,w] = freqz(sos,512);
pd = -unwrap(angle(h))./w;

plot(w/pi,gd,w/pi,pd)
grid
xlabel 'Normalized Frequency (\times\pi rad/sample)'
ylabel 'Group and phase delays'
legend('Group delay','Phase delay')

Figure contains an axes object. The axes object with xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Group and phase delays contains 2 objects of type line. These objects represent Group delay, Phase delay.

Utilice designfilt para diseñar un filtro Butterworth de sexto orden con 3 dB normalizados de frecuencia de 0.2π rad/muestra. Muestre su respuesta de retardo de grupo.

d = designfilt('lowpassiir','FilterOrder',6, ...
    'HalfPowerFrequency',0.2,'DesignMethod','butter');
grpdelay(d)

Figure Figure 1: Group delay contains an axes object. The axes object with title Group delay, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Group delay (in samples) contains an object of type line.

Diseñe un filtro FIR de 88.º orden de respuesta de magnitud arbitraria. El filtro tiene dos bandas de paso y dos bandas de parada. La banda de paso de menor frecuencia tiene el doble de ganancia que la frecuencia de paso de mayor frecuencia. Especifique una tasa de muestreo de 200 Hz. Visualice la respuesta de magnitud y la respuesta de fase del filtro de 10 Hz a 78 Hz.

fs = 200;
d = designfilt('arbmagfir', ...
       'FilterOrder',88, ...
       'NumBands',4, ...
       'BandFrequencies1',[0 20], ...
       'BandFrequencies2',[25 40], ...
       'BandFrequencies3',[45 65], ...
       'BandFrequencies4',[70 100], ...
       'BandAmplitudes1',[2 2], ...
       'BandAmplitudes2',[0 0], ...
       'BandAmplitudes3',[1 1], ...
       'BandAmplitudes4',[0 0], ...
       'SampleRate',fs);
freqz(d,10:1/fs:78,fs)

Figure Figure 1: Magnitude Response (dB) and Phase Response contains an axes object. The axes object with title Magnitude Response (dB) and Phase Response, xlabel Frequency (Hz), ylabel Magnitude (dB) contains an object of type line.

Calcule y muestre la respuesta de retardo de grupo del filtro a lo largo del mismo rango de frecuencia. Compruebe que sea una mitad del orden del filtro.

filtord(d)
ans = 88
grpdelay(d,10:1/fs:78,fs)

Figure Figure 2: Group delay contains an axes object. The axes object with title Group delay, xlabel Frequency (Hz), ylabel Group delay (in samples) contains an object of type line.

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:

Número de puntos de evaluación, especificado como un escalar entero positivo no inferior a 2. Cuando n está ausente, el valor predeterminado es 512. Para obtener los mejores resultados, establezca n en un valor mayor que el orden del filtro.

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.

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

Frecuencias angulares, especificadas como un vector y expresadas en rad/muestra. win debe tener al menos dos elementos porque, de lo contrario, la función lo interpreta como n. win = π corresponde a la frecuencia de Nyquist.

Frecuencias, especificadas como un vector. fin debe tener al menos dos elementos porque, de lo contrario, la función lo interpreta como n. Cuando la unidad de tiempo es el segundo, fin se expresa en hercios.

Tipos de datos: double

Argumentos de salida

contraer todo

Respuesta de retardo de grupo, devuelta como vector. Si especifica n, gd tiene una longitud n. Si no especifica n, o especifica n como el vector vacío, gd tiene una longitud 512.

Si la entrada de grpdelay es de precisión simple, la función calcula la respuesta de retardo de grupo mediante aritmética de precisión simple. La salida h es de una precisión simple.

Frecuencias angulares, devueltas como un vector. w tiene valores que van de 0 a π. Si especifica "whole" en su entrada, los valores de w van de 0 a 2π. Si especifica n, w tiene una longitud n. Si no especifica n, o especifica n como el vector vacío, w tiene una longitud 512.

Frecuencias, devueltas como un vector expresado en hercios. f tiene valores que van de 0 a fs/2 Hz. Si especifica "whole" en su entrada, los valores de f van de 0 a fs Hz. Si especifica n, f tiene una longitud n. Si no especifica n, o especifica n como el vector vacío, f tiene una longitud 512.

Más acerca de

contraer todo

Retardo de grupo

La respuesta de retardo de grupo de un filtro es una medida del retardo promedio del filtro como función de frecuencia. Es la primera derivada negativa de la respuesta de fase del filtro. Si la respuesta en frecuencia de un filtro es H(e), el retardo de grupo es

τg(ω)=dθ(ω)dω,

donde θ(ω) es la fase o argumento de H(e).

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido antes de R2006a

expandir todo