freqs
模拟滤波器的频率响应
说明
示例
传递函数的频率响应
求出并绘制传递函数的频率响应图
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)
模拟 IIR 低通滤波器的比较
设计截止频率为 2 GHz 的五阶模拟巴特沃斯低通滤波器。乘以 以将频率转换为弧度/秒。计算滤波器在 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 型设计函数的频率输入设置阻带的起点,而不是通带的终点。贝塞尔滤波器沿通带具有大致恒定的群延迟。
低通模拟贝塞尔滤波器的频率响应
设计一个五阶模拟低通贝塞尔滤波器,其群延迟在频率达到 弧度/秒前大致恒定。使用 freqs
绘制该滤波器的频率响应。
[b,a] = besself(5,10000); % Bessel analog filter design freqs(b,a) % Plot frequency response
输入参数
b
, a
— 传递函数系数
向量
传递函数系数,指定为向量。
示例: [b,a] = butter(5,50,'s')
指定一个截止频率为 50 弧度/秒的五阶巴特沃斯滤波器。
数据类型: single
| double
w
— 角频率
正实数向量
角频率,指定为以弧度/秒为单位的正实数向量。
示例: 2*pi*logspace(6,9)
指定了 50 个以对数间距分布的角频率,范围从 1 MHz(2π × 106 弧度/秒)到 1 GHz(2π × 109 弧度/秒)。
数据类型: single
| double
n
— 计算点数
200 (默认) | 正整数标量
计算点数,指定为正整数标量。
数据类型: single
| double
算法
freqs
返回由 b
和 a
指定的一个模拟滤波器的复频率响应。该函数计算虚轴上频率点 s = jω 处拉普拉斯变换多项式
的比值:
s = 1j*w; h = polyval(b,s)./polyval(a,s);
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)