✅作者简介:热爱科研的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.