使用Matlab实现脉冲响应不变法
发布日期:2021-05-08 01:17:10 浏览次数:21 分类:精选文章

本文共 789 字,大约阅读时间需要 2 分钟。

      Matlab提供的impinvar(num, den, Fs)函数可实现脉冲响应不变法的转换过程, 其调用形式为 [numd, dend] = impinvar(num, den, Fs);

          式中num和den分别表示模拟滤波器系统函数H(s)的分子多项式系数和分母多项式系数, Fs是脉冲响应不变法中的抽样频率, 单位是Hz. 输出变量numd和dend分别表示数字滤波器的系统函数H(z)的分子多项式系数和分母多项式系数. 

[程序设计代码] 

% 使用Butterworth低通滤波器模板和脉冲响应不变法, 设计数字低通滤波器% 技术指标Wp = 0.1 * pi;Ws = 0.4 * pi;Ap = 1;As = 25;% 抽样频率 TT = 1;% 确定Butterworth模拟低通滤波器指标wp = Wp / T;ws = Ws / T;% 设计Butterworth模拟低通滤波器[N , wc] = buttord(wp, ws, Ap, As, 's');[num, den] = butter(N, wc, 's');% 使用脉冲响应不变法[numd, dend] = impinvar(num, den, 1 / T);% 在[0, pi]区间上选取2000个点W = linspace(0, pi, 2000);H = freqz(numd, dend, W);% 绘制系统的增益响应曲线plot(W / pi, 20 * log10(abs(H)));% 求系统关键指标W = [Wp, Ws];H = freqz(numd, dend, W);fprintf('Ap = %.4f\n', -20 * log10(abs(H(1))));fprintf('As = %.4f\n', -20 * log10(abs(H(2))));

[实际仿真结果]

上一篇:用BW原型模拟低通滤波器 + 双线性变换法设计数字带通滤波器
下一篇:使用Matlab实现双线性变换法

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月29日 11时14分58秒