Contenido principal

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.

freqs

Respuesta en frecuencia de filtros analógicos

Descripción

h = freqs(b,a,w) devuelve la respuesta en frecuencia compleja del filtro analógico que especifican los vectores de coeficiente b y a, evaluados en las frecuencias angulares w.

ejemplo

[h,wout] = freqs(b,a,n) utiliza n puntos de frecuencia para calcular h y devuelve las frecuencias angulares correspondientes en wout.

ejemplo

freqs(___) sin argumentos de salida representa las respuestas de magnitud y fase como funciones de frecuencia angular en la ventana de figura actual. Puede utilizar esta sintaxis con cualquiera de las sintaxis de entrada anteriores.

ejemplo

Ejemplos

contraer todo

Encuentre y represente la respuesta en frecuencia de la función de transferencia

H(s)=0.2s2+0.3s+1s2+0.4s+1.

a = [1 0.4 1];
b = [0.2 0.3 1];
w = logspace(-1,1);

h = freqs(b,a,w);
mag = abs(h);
phase = angle(h);
phasedeg = phase*180/pi;

subplot(2,1,1)
loglog(w,mag)
grid on
xlabel('Frequency (rad/s)')
ylabel('Magnitude')

subplot(2,1,2)
semilogx(w,phasedeg)
grid on
xlabel('Frequency (rad/s)')
ylabel('Phase (degrees)')

Figure contains 2 axes objects. Axes object 1 with xlabel Frequency (rad/s), ylabel Magnitude contains an object of type line. Axes object 2 with xlabel Frequency (rad/s), ylabel Phase (degrees) contains an object of type line.

También puede generar las gráficas llamando a freqs sin argumentos de salida.

figure
freqs(b,a,w)

Figure contains 2 axes objects. Axes object 1 with xlabel Frequency (rad/s), ylabel Phase (degrees) contains an object of type line. Axes object 2 with xlabel Frequency (rad/s), ylabel Magnitude contains an object of type line.

Diseñe un filtro analógico Butterworth paso bajo de quinto orden con una frecuencia de corte de 2 GHz. Multiplique por 2π para convertir la frecuencia en radianes por segundo. Calcule la respuesta en frecuencia del filtro en 4096 puntos.

n = 5;
wc = 2*pi*2e9;
w = 2*pi*1e9*logspace(-2,1,4096)';

[zb,pb,kb] = butter(n,wc,"s");
[bb,ab] = zp2tf(zb,pb,kb);
[hb,wb] = freqs(bb,ab,w);
gdb = -diff(unwrap(angle(hb)))./diff(wb);

Diseñe un filtro Chebyshev tipo I de quinto orden con la misma frecuencia de borde y 3 dB de ondulación de la banda de paso. Calcule su respuesta en frecuencia.

[z1,p1,k1] = cheby1(n,3,wc,"s");
[b1,a1] = zp2tf(z1,p1,k1);
[h1,w1] = freqs(b1,a1,w);
gd1 = -diff(unwrap(angle(h1)))./diff(w1);

Diseñe un filtro Chebyshev tipo II de quinto orden con la misma frecuencia de borde y 30 dB de atenuación de la banda de parada. Calcule su respuesta en frecuencia.

[z2,p2,k2] = cheby2(n,30,wc,"s");
[b2,a2] = zp2tf(z2,p2,k2);
[h2,w2] = freqs(b2,a2,w);
gd2 = -diff(unwrap(angle(h2)))./diff(w2);

Diseñe un filtro elíptico de quinto orden con la misma frecuencia de borde, 3 dB de ondulación de la banda de paso y 30 dB de atenuación de la banda de parada. Calcule su respuesta en frecuencia.

[ze,pe,ke] = ellip(n,3,30,wc,"s");
[be,ae] = zp2tf(ze,pe,ke);
[he,we] = freqs(be,ae,w);
gde = -diff(unwrap(angle(he)))./diff(we);

Diseñe un filtro de Bessel de quinto orden con la misma frecuencia de borde. Calcule su respuesta en frecuencia.

[zf,pf,kf] = besself(n,wc);
[bf,af] = zp2tf(zf,pf,kf);
[hf,wf] = freqs(bf,af,w);
gdf = -diff(unwrap(angle(hf)))./diff(wf);

Represente la atenuación en decibelios. Exprese la frecuencia en gigahercios. Compare los filtros.

fGHz = [wb w1 w2 we wf]/(2e9*pi);
plot(fGHz,mag2db(abs([hb h1 h2 he hf])))
axis([0 5 -45 5])
grid on
xlabel("Frequency (GHz)")
ylabel("Attenuation (dB)")
legend(["butter" "cheby1" "cheby2" "ellip" "besself"])

Figure contains an axes object. The axes object with xlabel Frequency (GHz), ylabel Attenuation (dB) contains 5 objects of type line. These objects represent butter, cheby1, cheby2, ellip, besself.

Represente el retardo de grupo en las muestras. Exprese la frecuencia en gigahercios y el retardo de grupo en nanosegundos. Compare los filtros.

gdns = [gdb gd1 gd2 gde gdf]*1e9;
gdns(gdns<0) = NaN;
loglog(fGHz(2:end,:),gdns)
grid on
xlabel("Frequency (GHz)")
ylabel("Group delay (ns)")
legend(["butter" "cheby1" "cheby2" "ellip" "besself"])

Figure contains an axes object. The axes object with xlabel Frequency (GHz), ylabel Group delay (ns) contains 5 objects of type line. These objects represent butter, cheby1, cheby2, ellip, besself.

Los filtros Butterworth y Chebyshev Tipo II tienen bandas de paso planas y bandas de transición anchas. Los filtros Chebyshev de tipo I y elíptico se desinflan más rápido pero tienen ondulaciones en la banda de paso. La entrada de frecuencia a la función de diseño Chebyshev Tipo II establece el comienzo de la banda de parada en lugar del final de la banda de paso. El filtro de Bessel tiene un retardo de grupo aproximadamente constante a lo largo de la banda de paso.

Diseñe un filtro analógico de Bessel de paso bajo de quinto orden con un retardo de grupo casi constante hasta 104 rad/s. Represente la respuesta en frecuencia del filtro utilizando freqs.

[b,a] = besself(5,10000);   % Bessel analog filter design
freqs(b,a)                  % Plot frequency response

Figure contains 2 axes objects. Axes object 1 with xlabel Frequency (rad/s), ylabel Phase (degrees) contains an object of type line. Axes object 2 with xlabel Frequency (rad/s), ylabel Magnitude contains an object of type line.

Argumentos de entrada

contraer todo

Coeficientes de la función de transferencia, especificados como vectores. b contiene los coeficientes de numerador y a contiene los coeficientes de denominador.

Ejemplo: [b,a] = butter(5,50,'s') especifica un filtro Butterworth de quinto orden con una frecuencia de corte de 50 rad/s.

Tipos de datos: single | double

Frecuencias angulares, especificadas como vector real positivo expresado en rad/s.

Ejemplo: 2*pi*logspace(6,9) especifica 50 frecuencias angulares espaciadas de forma logarítmica de 1 MHz (2π × 106 rad/s) a 1 GHz (2π × 109 rad/s).

Tipos de datos: single | double

Número de puntos de evaluación, especificado como escalar entero positivo.

Tipos de datos: single | double

Argumentos de salida

contraer todo

Respuesta de frecuencia, devuelta como un vector.

Frecuencias angulares en las que se calcula h, devueltas como vector.

Algoritmos

freqs devuelve la respuesta en frecuencia compleja de un filtro analógico que especifican b y a. La función evalúa la relación de polinomios de transformadas de Laplace

H(s)=B(s)A(s)=b(1)sn+b(2)sn1++b(n+1)a(1)sm+a(2)sm1++a(m+1)

a lo largo del eje imaginario en los puntos de frecuencia s = :

s = 1j*w;
h = polyval(b,s)./polyval(a,s);

Historial de versiones

Introducido antes de R2006a

Consulte también

| | | | |