Main Content

freqs

模拟滤波器的频率响应

说明

示例

h = freqs(b,a,w) 返回由系数向量 ba 指定的模拟滤波器在角频率 w 处计算得出的复频率响应。

示例

[h,wout] = freqs(b,a,n) 使用 n 个频率点计算 h 并在 wout 中返回对应的角频率。

示例

freqs(___) 不带输出参量,它在当前图窗窗口中以角频率的函数的形式绘制幅值和相位响应。您可以将此语法与上述任何一种输入语法结合使用。

示例

全部折叠

求出并绘制传递函数的频率响应图

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

您也可以调用不带输出参量的 freqs 来生成图。

figure
freqs(b,a,w)

设计截止频率为 2 GHz 的五阶模拟巴特沃斯低通滤波器。乘以 2π 以将频率转换为弧度/秒。计算滤波器在 4096 个点上的频率响应。

n = 5;
fc = 2e9;

[zb,pb,kb] = butter(n,2*pi*fc,"s");
[bb,ab] = zp2tf(zb,pb,kb);
[hb,wb] = freqs(bb,ab,4096);

设计一个具有相同边缘频率和 3 dB 通带波纹的五阶切比雪夫 I 型滤波器。计算它的频率响应。

[z1,p1,k1] = cheby1(n,3,2*pi*fc,"s");
[b1,a1] = zp2tf(z1,p1,k1);
[h1,w1] = freqs(b1,a1,4096);

设计一个具有相同边缘频率和 30 dB 阻带衰减的 5 阶切比雪夫 II 型滤波器。计算它的频率响应。

[z2,p2,k2] = cheby2(n,30,2*pi*fc,"s");
[b2,a2] = zp2tf(z2,p2,k2);
[h2,w2] = freqs(b2,a2,4096);

设计一个具有相同边缘频率和 3 dB 通带波纹、30 dB 阻带衰减的五阶椭圆滤波器。计算它的频率响应。

[ze,pe,ke] = ellip(n,3,30,2*pi*fc,"s");
[be,ae] = zp2tf(ze,pe,ke);
[he,we] = freqs(be,ae,4096);

设计一个具有相同边缘频率的 5 阶贝塞尔滤波器。计算它的频率响应。

[zf,pf,kf] = besself(n,2*pi*fc);
[bf,af] = zp2tf(zf,pf,kf);
[hf,wf] = freqs(bf,af,4096);

对衰减绘图,以分贝为单位。以千兆赫为单位表示频率。比较滤波器。

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

巴特沃斯和切比雪夫 II 型滤波器具有平坦的通带和宽过渡带。切比雪夫 I 型和椭圆滤波器转降更快,但有通带波纹。切比雪夫 II 型设计函数的频率输入设置阻带的起点,而不是通带的终点。贝塞尔滤波器沿通带具有大致恒定的群延迟。

设计一个五阶模拟低通贝塞尔滤波器,其群延迟在频率达到 104 弧度/秒前大致恒定。使用 freqs 绘制该滤波器的频率响应。

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

输入参数

全部折叠

传递函数系数,指定为向量。

示例: [b,a] = butter(5,50,'s') 指定一个截止频率为 50 弧度/秒的五阶巴特沃斯滤波器。

数据类型: single | double

角频率,指定为以弧度/秒为单位的正实数向量。

示例: 2*pi*logspace(6,9) 指定了 50 个以对数间距分布的角频率,范围从 1 MHz(2π × 106 弧度/秒)到 1 GHz(2π × 109 弧度/秒)。

数据类型: single | double

计算点数,指定为正整数标量。

数据类型: single | double

输出参量

全部折叠

频率响应,以向量形式返回。

计算 h 时所处的角频率,以向量形式返回。

算法

freqs 返回由 ba 指定的一个模拟滤波器的复频率响应。该函数计算虚轴上频率点 s = jω 处拉普拉斯变换多项式

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

的比值:

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

版本历史记录

在 R2006a 之前推出

另请参阅

| | | | |