模拟滤波器工程设计

概要

本文主要是为了验证一下滤波器零、极点对频响的具体影响。`

1. Matlab代码设计

matlab里面有自带的滤波器设计软件,设置参数就可以自动生成各种滤波器,不过我这里需要手动更改滤波器参数,所以用的命令行来实现。
代码如下所示,具体步骤为:
a)使用ellipord计算出滤波器阶数和截止频率(这一步可以省略,直接用第二步)
b)使用ellip命令计算出椭圆滤波器的极点、零点和增益(不同的滤波器命令不一样,具体可以查官方资料,比如切比雪夫1滤波器的命令是[z1,p1,k1] = cheby1(n,3,2pifc,“s”);)
c)使用zp2tf计算出传递函数的多项式系数
d)使用freqs计算出传递函数的频响

% 【例7-29】ellipord函数设计椭圆滤波器示例。
clc, clear, close all

Fp = 4e3;
Fs = 12e3;
Wp = 2*pi*Fp;
Ws = 2*pi*Fs;
rp = 3;
rs = 20; % 设计滤波器参数

[N, wc] = ellipord(Wp, Ws, rp, rs, 's'); % 计算滤波器阶数和阻带起始频率
[ze,pe,ke] = ellip(N,rp,rs,wc,"s");% 计算零点、极点、增益

% ze=[ 58870.5377192101i; - 58870.5377192101i];
% pe=[-7445.55073682723 + 20835.3687528983i;-7445.55073682723 - 20835.3687528983i];
% ke=0.1;

[be,ae] = zp2tf(ze,pe,ke);     % 计算系统函数系数多项式
[he,we] = freqs(be,ae,4096); % 模拟滤波器的频率响应

figure
plot(we/(2e3*pi), mag2db(abs(he)),'k');
axis([0 20 -100 5])
xlabel("Frequency (kHz)")
ylabel("Attenuation 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pp_0604

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值