题目要求:
使用双线性变换法及Butterworth模拟滤波器设计一个满足下列技术指标的数字带通滤波器(具体技术指标在程序开始处的注释中).
[设计思路]
选定抽样间隔 T -> 通过双线性变换法参数转换公式求得转换后的模拟带通滤波器指标wp1, wp2, ws1, ws2 -> 求得通带宽度B和参数w0 -> 确定原型低通滤波器的通带截频wp_和阻带截频ws_ -> 设计原型BW模拟低通滤波器 -> 将模拟低通滤波器转换为模拟带通滤波器 -> 根据双线性变换法将模拟带通滤波器转换为数字带通滤波器.
[程序设计代码]
% 设计数字带通滤波器(BW型模拟低通滤波器模板 + 双线性变换法)
% 技术指标
Wp1 = 0.45 * pi;
Wp2 = 0.55 * pi;
Ws1 = 0.4 * pi;
Ws2 = 0.6 * pi;
Ap = 3;
As = 10;
% T = 2
T = 2;
% 指标转换
wp1 = 2 / T * tan(Wp1 / 2);
wp2 = 2 / T * tan(Wp2 / 2);
ws1 = 2 / T * tan(Ws1 / 2);
ws2 = 2 / T * tan(Ws2 / 2);
% 由模拟带通滤波器的上下截频确定参数B和w0
B = wp2 - wp1;
w0 = sqrt(wp1 * wp2);
% 确定原型低通滤波器的通带截频wp_和阻带截频ws_
ws1_ = (ws1 * ws1 - w0 * w0) / (B * ws1);
ws2_ = (ws2 * ws2 - w0 * w0) / (B * ws2);
if abs(ws1_) <= abs(ws2_)
ws_ = abs(ws1_);
else
ws_ = abs(ws2_);
end
wp_ = 1;
% 设计BW原型模拟低通滤波器
[N, wc_] = buttord(wp_, w