matlab求系统根轨迹代码_simulink通信系统仿真之滤波器(续)

keyi例:设计一个模拟低通滤波器,fp = 2000Hz,fs = 4000Hz,Rp = 5dB,Rs = 20dB。 用巴特沃斯滤波器原型,求出其3dB截止频率和滤波器阶数,传递函数,并做出幅频、相频特性曲线。 代码如下:
 %设计要求指标fp=2000;fs=4000;Rp=5;Rs=20;[n,fn]=buttord(fp,fs,Rp,Rs,'s');  %计算阶数和截止频率Wn = 2*pi*fn; %转换为角频率[b,a]=butter(n,Wn,'s');  %计算Hsf = 0:100:10000;  %计算频率点和频率范围s=j*2*pi*f;  Hs=polyval(b,s)./polyval(a,s);  %计算相应频率点处H(s)的值 polyval是多项式求值subplot(2,1,1);plot(f,20*log10(abs(Hs)));  %幅频特性axis([0 10000 -40 1]);xlabel('频率 Hz');ylabel('幅度 dB');subplot(2,1,2);plot(f,angle(Hs));   %相频特性xlabel('频率 Hz');ylabel('相角 rad');
运行后得到下图仿真结果:上面是幅频特性曲线,巴特沃斯滤波器在通带和阻带上都是平坦下降的。下面是相频特性,巴特沃斯滤波器表示缓变性质。

51eddd4b89b007ebeef110d38911e6b8.png

在工作空间中可得阶数和截止频率的计算值

ab57b0d67391f0af0d23b0ee7c7ec93c.png


滤波器分析设计界面 MATLAB专门提供了滤波器设计工具箱FDATool,在MATLAB中输入
fdatool
打开滤波器分析设计界面

4b4d32027e86ac4066b96e2427099714.png

界面使用说明:https://wenku.baidu.com/view/fdf9f74dfe4733687e21aaed.html
滤波器的实现 对模拟滤波器的实现本质上是求解微分方程的过程,对数字滤波器的实现本质是求解差分方程的过程。滤波器可以通过编程实现,也可通过simulink模块实现。DSP system toolbox中提供了滤波器实现的模块。 用MATLAB filter函数也可实现滤波器:
y=filter(b,a,X) %b是传递函数H(z)的分子多项式系数向量,a是分母多项式系数向量[y,zf]=filter(b,a,X)%a(1)如果不等于1,则进行归一化,x是输入信号序列,y是输出信号序列[y,zf]=filter(b,a,X,zi)
例:求数字滤波器的传递函数

8e289742b99fa1d88039fe6d90ff7cd6.png

输入信号为X=[1,0,0,0,0,0],求滤波器的零状态响应输出 (a)计算理论值 由传递函数H(z),其分子多项式系数向量b=[0,1],分母多项式系数向量为a=[1,-0.7],H(z)逆变换可得该系统的数字冲击响应序列,即:

37c844c2f5d54584ade949d0d5cc385b.png

编写如下代码:
 a=0.7; k=0:1:5; hk=a.^(k-1).*(k>0)hk =         0    1.0000    0.7000    0.4900    0.3430    0.2401         -------------------------------------------b=[0,1];a=[1 -0.7]; X=[1,0,0,0,0,0]; filter(b,a,X);y =         0    1.0000    0.7000    0.4900    0.3430    0.2401
可以看到数值上,理论值和仿真值是一样的 (c)建立滤波器仿真模型

ee48d2065c2e162d4ac0dc6fb50f0ab1.png

847a11092b5f9afabaf0fadbc980ec46.png

                                此处0.1改为1,仿真时长为10

2727c45d07a814aee6d333babd05f6e8.png

与理论结果基本一致
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值