当前位置 : 主页 > 编程语言 > python >

【滤波器】基于脉冲响应不变法+双线性变换法实现数字滤波器设计含Matlab源码

来源:互联网 收集:自由互联 发布时间:2022-06-18
1 简介 1、 设计目的 (1)掌握脉冲响应不变法和双线性变换法设计IIR数字滤波器的具体方法和原理,熟悉双线性变换法和脉冲响应不变法设计低通、带通IIR数字滤波器的计算机编程。

1 简介

1、设计目的

(1)掌握脉冲响应不变法和双线性变换法设计IIR数字滤波器的具体方法和原理,熟悉双线性变换法和脉冲响应不变法设计低通、带通IIR数字滤波器的计算机编程。

(2)观察双线性变换法和脉冲响应不变法设计的数字滤波器的频域特性,了解双线性变换法和脉冲响应不变法的特点与区别。

(3)熟悉Butterworth滤波器、Chebyshev滤波器和椭圆滤波器的频率特性。

【滤波器】基于脉冲响应不变法+双线性变换法实现数字滤波器设计含Matlab源码_脉冲响应

2 部分代码

%用双线性变换法设计一个Butterworth数字低通滤波器
%确定已知的技术指标
Rp=1;Rs=25;T=0.001;fp=200;fs=300;
%求出将要设计的数字滤波器的边界频率
wp=2*pi*fp*T;ws=2*pi*fs*T;
%预畸变
wp1=(2/T)*tan(wp/2);ws1=(2/T)*tan(ws/2);
%求出最小阶数和截止频率
[n,wn]=buttord(wp1,ws1,Rp,Rs,'s');
%求出模拟滤波器的分子和分母系数向量
[b,a]=butter(n,wn,'low','s');
%双线性变换
[bz,az]=bilinear(b,a,1/T);
[db,mag,pha,grd,w]=freqz_m(bz,az);
%以w/pi为横轴,以db为纵轴绘图
plot(w/pi,db,'color','r'); grid;
title('Butterworth数字低通滤波器(双线性法)');
%设定横轴和纵轴的坐标范围
axis([0,1,-30,2]);

3 仿真结果

【滤波器】基于脉冲响应不变法+双线性变换法实现数字滤波器设计含Matlab源码_低通滤波器_02

【滤波器】基于脉冲响应不变法+双线性变换法实现数字滤波器设计含Matlab源码_线性变换_03

【滤波器】基于脉冲响应不变法+双线性变换法实现数字滤波器设计含Matlab源码_脉冲响应_04

【滤波器】基于脉冲响应不变法+双线性变换法实现数字滤波器设计含Matlab源码_线性变换_05

【滤波器】基于脉冲响应不变法+双线性变换法实现数字滤波器设计含Matlab源码_线性变换_06

4 参考文献

[1]王艳文, 崔志娟, 张静. 基于matlab脉冲响应不变法的Butterworth数字滤波器设计[J].  2022(11).

[2]梁丽娟, and 安兰珠. "利用MATLAB实现基于双线性变换法的IIR数字滤波器设计." 邢台学院学报 27.2(2012):2.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【滤波器】基于脉冲响应不变法+双线性变换法实现数字滤波器设计含Matlab源码_脉冲响应_07


网友评论