【滤波器】基于Matlab实现直接型、级联型、并联型IIR滤波器

简介: 【滤波器】基于Matlab实现直接型、级联型、并联型IIR滤波器

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的,IIR滤波器目前最通用的方法是利用已经很成熟的模拟滤波器的设计方法来进行设计.实现IIR滤波器的阶次较低,所用的存储单元较少,效率高,精度高,而且能够保留一些模拟滤波器的优良特性,因此应用很广.MATLAB软件以矩阵运算为基础,把计算,可视化及程序设计有机融合到交互式工作环境中,并且为数字滤波的研究和应用提供了一个直观,高效,便捷的利器.尤其是Matlab中的信号处理工具箱使各个领域的研究人员可以直观方便地进行科学研究与工程应用.

⛄ 部分代码


%*********************************************************%

                    %未量化系数%

%*********************************************************%

tic

[r,p,q]=residuez(b,a);

N=size(r);

N=N(1);

h0=zeros(1,64);

figure(3);set(gcf,'color','w','position',[250,50,512,700]);

%% 单位冲激响应

for k=1:N

b1=r(k);

a1=[1,-1*p(k)];

s=[point_num==0];

h1=filter(b1,a1,s);

h0=h0+h1;

end

h1=[point_num==0];

h1=q*h1;

h0=h0+h1;

subplot(3,1,1),stem(point_num,h0,'.');

title('并联型IIR单位冲激响应');

%% 阶跃响应

u0=zeros(1,64);

for k=1:N

b1=[r(k),0];

a1=[1,-1*p(k)];

s=[point_num>=0];

u1=filter(b1,a1,s);

u0=u0+u1;

end

u1=[point_num>=0];

u1=q*u1;

u0=u0+u1;

subplot(3,1,2),stem(point_num,u0,'.');

title('并联型IIR单位阶跃响应');

%% 频率响应

w=linspace(-2*pi,2*pi,500);

H_paralle_quatify=zeros(1,length(w));

for k=1:N

b1=[r(k),0];

a1=[1,-1*p(k)];

H11=freqz(b1,a1,w);

H_paralle_quatify=H_paralle_quatify+H11;

end

H_paralle_quatify=q+H_paralle_quatify;

H_paralle_quatify=20*log10(abs(H_paralle_quatify));

subplot(3,1,3),plot(w/pi,H_paralle_quatify,'b-','LineWidth',2);hold on

title('并联型IIR频率响应');

axis([0,1,-50,20]);

xlabel('单位:pi');

ylabel('单位:dB');

%*********************************************************%

                    %量化系数%

%*********************************************************%

[r,p,q]=residuez(bd,ad);

%% 频率响应

w=linspace(-2*pi,2*pi,500);

H_paralle_quatify=zeros(1,length(w));

for k=1:N

b1=[r(k),0];

a1=[1,-1*p(k)];

H11=freqz(b1,a1,w);

H_paralle_quatify=H_paralle_quatify+H11;

end

H_paralle_quatify=q+H_paralle_quatify;

H_paralle_quatify=20*log10(abs(H_paralle_quatify));

subplot(3,1,3),plot(w/pi,H_paralle_quatify,'k--','LineWidth',2);

title('并联型IIR频率响应');

toc

⛄ 运行结果

⛄ 参考文献

[1] 黄玉健, 黄永庆. 基于Matlab的级联型IIR滤波器设计与FPGA实现[J]. 梧州学院学报, 2018, 28(6):7.

[2] 王占龙. 基于MATLAB 7.0的IIR滤波器设计及实现[J]. 科技信息(学术研究), 2007, 29(No.241):277-278.

[3] 李征, 李成书, 王宏斌. 基于Matlab的IIR数字滤波器的设计与实现[J]. 数字通信, 2009, 36(6):75-77.

[4] 孙柏, 汪国强. 基于MATLAB的IIR数字滤波器系数量化研究[J]. 科研, 2016.

⛳️ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料



相关文章
|
3月前
|
算法 计算机视觉
基于CMFB余弦调制滤波器组的频谱响应matlab仿真
基于CMFB余弦调制滤波器组的频谱响应matlab仿真
|
7月前
|
存储 编解码 算法
基于正交滤波器组的语音DPCM编解码算法matlab仿真
基于正交滤波器组的语音DPCM编解码算法matlab仿真
|
8天前
matlab使用移动平均滤波器、重采样和Hampel过滤器进行信号平滑处理
matlab使用移动平均滤波器、重采样和Hampel过滤器进行信号平滑处理
13 0
|
1月前
|
算法
【MATLAB】语音信号识别与处理:滤波器滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:滤波器滤波算法去噪及谱相减算法呈现频谱
19 2
|
8月前
|
编解码 计算机视觉
在网格化数据集上轻松执行 2D 高通、低通、带通或带阻滤波器研究(Matlab代码实现)
在网格化数据集上轻松执行 2D 高通、低通、带通或带阻滤波器研究(Matlab代码实现)
|
7月前
|
机器学习/深度学习 传感器 算法
【图像处理】使用各向异性滤波器和分割图像处理从MRI图像检测脑肿瘤(Matlab代码实现)
【图像处理】使用各向异性滤波器和分割图像处理从MRI图像检测脑肿瘤(Matlab代码实现)
|
7月前
|
机器学习/深度学习 传感器 算法
【滤波跟踪】基于未来感知相关滤波器实现无人机跟踪附matlab代码
【滤波跟踪】基于未来感知相关滤波器实现无人机跟踪附matlab代码
|
8月前
|
传感器 算法 机器人
【通过粒子滤波进行地形辅助导航】用于地形辅助导航的粒子滤波器和 PCRB研究(Matlab代码实现)
【通过粒子滤波进行地形辅助导航】用于地形辅助导航的粒子滤波器和 PCRB研究(Matlab代码实现)
|
8月前
|
传感器 数据采集 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
|
8月前
|
传感器 算法 机器人
使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)
使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)

热门文章

最新文章