使用Matlab实现双线性变换法

使⽤Matlab实现双线性变换法
Matlab提供的bilinear(num, den, Fs)函数可⽤来实现双线性变换, 其调⽤形式为
[numd, dend] = bilinear(num, den, Fs);
式中num和den分别表⽰模拟滤波器系统函数H(s)的分⼦多项式系数和分母多项式系数, Fs = 1 / T. 输出变量numd和dend分别表⽰数字滤波器H(z)的分⼦多项式系数和分母多项式系数.
[程序设计代码]
% 使⽤CB I型模拟滤波器设计模板和双线性变换法, 设计数字低通滤波器
% 技术指标
Wp = 0.1 * pi;
Ws = 0.4 * pi;
Ap = 1;双面粘合衬
As = 25;
% 取 T = 2
收缩薄膜
T = 2;
% 通过转换得到模拟滤波器的指标
wp = 2 / T * tan(Wp / 2);电动绞磨
ws = 2 / T * tan(Ws / 2);
[N, wc] = cheb1ord(wp, ws, Ap, As, 's');
[num, den] = cheby1(N, Ap, wc, 's');
干手器
% 进⾏双线性变换
[numd, dend] = bilinear(num, den, 1 / T);
% 在[0, 0.5 * pi]区间上选取2000个采样点
W = linspace(0, 0.5 * 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)

本文发布于:2024-09-21 22:06:57,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/220369.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设计   模拟   指标
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议