【 MATLAB 】使用 MATLAB 求由差分方程表示的滤波器的响应的两种方法

举报
李锐博恩 发表于 2021/07/15 05:22:13 2021/07/15
【摘要】 例题: 一个3阶低通滤波器由下面差分方程描述: y(n) = 0.0181 x(n) + 0.0543 x(n-1) + 0.0543 x(n-2) + 0.0181 x(n-3) + 1.76 y(n-1) - 1.1829 y(n-2) + 0.2781 y(n-3) 画出这个滤波器的幅度和相位响应,并验证它是一个低通滤波器。 第一种方法是博文里给出的: 【...

例题:

一个3阶低通滤波器由下面差分方程描述:

y(n) = 0.0181 x(n) + 0.0543 x(n-1) + 0.0543 x(n-2) + 0.0181 x(n-3) + 1.76 y(n-1) - 1.1829 y(n-2) + 0.2781 y(n-3)

画出这个滤波器的幅度和相位响应,并验证它是一个低通滤波器。



第一种方法是博文里给出的:

【 MATLAB 】用 MATLAB 实现离散时间傅里叶变换(DTFT)的两个案例分析

第二个案例中,类比,如果我知道一个LTI系统的脉冲响应h(n),那么我也能求出它的频率响应:


  
  1. k = [0:M];
  2. n = [n1:n2];
  3. X = x * (exp(-j * pi/M)).^(n'*k);

博文里面由具体的推荐,上述程序中X就是频率响应,也就是x的DTFT,如果x换成h,则X可以换成H。


第二种方法是,通过差分方程直接求出系统的频率响应,求解的方法是通过向量化的方法。

设某一LTI系统的差分方程表示为:

y(n)+ sum_{l=1}^{N}a_ly(n-l)= sum_{m = 0}^{M}b_mx(n-m)

可以用一种简单的矩阵向量乘法来完成。如果在[0,pi]k=0,1,...,K个等分频率上求H(e^{jw}),那么

注意,上述的b以及a向量都是行向量。


先给出第一种方法的脚本:


  
  1. clc
  2. clear
  3. close all
  4. b = [0.0181,0.0543,0.0543,0.0181];
  5. a = [1.0000,-1.7600,1.1829,-0.2781];
  6. [h,t]=impz(b,a);
  7. k = [0:500];
  8. w = (pi/500)*k;
  9. t = t';
  10. h = h';
  11. H = h * ( exp(-j*pi/500) ).^(t'*k);
  12. magH = abs(H);
  13. angH = angle(H);
  14. subplot(2,1,1);
  15. plot(w/pi,magH);
  16. title('Magnitude part');
  17. subplot(2,1,2);
  18. plot(w/pi,angH);
  19. title('Angle part');

这种方法的思路是通过差分方程可以得到有理传递函数或者频率响应的分子和分母系数,通过impz函数得到脉冲响应,之后由脉冲响应h(n)得到频率响应。



  
  1. clc
  2. clear
  3. close all
  4. b = [0.0181,0.0543,0.0543,0.0181];
  5. a = [1.0000,-1.7600,1.1829,-0.2781];
  6. m = 0:length(b)-1;
  7. l = 0:length(a)-1;
  8. k = 0:500;
  9. w = (pi/500)*k;
  10. nume = b * exp(-j * m' * w);
  11. den = a * exp(-j * l' * w);
  12. H = nume ./ den;
  13. magH = abs(H);
  14. angH = angle(H);
  15. subplot(2,1,1);
  16. plot(w/pi,magH);
  17. title('Magnitude Response');
  18. subplot(2,1,2);
  19. plot(w/pi,angH);
  20. title('Phase Response');

 

从图可以看出这确实是一个低通滤波器。

 

文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。

原文链接:reborn.blog.csdn.net/article/details/83385143

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。