✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
数字滤波是数字信号处理的重要内容,数字滤波器可分为FIR和IIR两大类。文章根据IIR滤波器的设计原理,详细介绍了MATLAB环境下IIR数字滤波器的设计方法和操作步骤,并列出了设计实例程序及运行结果。
⛄ 部分代码
clear all;close all;clc
N=1200;
Fs=8000;
tm=[0:1/Fs:(N-1)/Fs]';
t=[0:400:N]+1;
snr=10^(-18/20);
F=[1000 1075 975];
x=[];
true=[];
for i=1:3
T=2*pi*F(i).*tm(t(i):t(i+1)-1);
sig=sin(T)+0.5*cos(T*2)+0.25*cos(T*3)+randn(N/3,1).*snr;
x=[x;sig];
true=[true;ones(N/3,1)*F(i)];
end
[theta,theta_curve,b,a]=harmonic_est(x,3,Fs);
subplot(211)
plot(tm,theta_curve)
hold on
plot(tm,true,'r--','LineWidth',3)
grid on
xlabel('Time')
ylabel('Fundamental Frequency Estimate')
legend('Tracking','True')
subplot(212)
[H,F]=freqz(b,a,N,Fs);
plot(F,log10(abs(H)))
title('Final Comb Filter')
xlabel('Frequency')
ylabel('Magnitude')
⛄ 运行结果
⛄ 参考文献
[1]郝保明, 曹吉花, 李彪,等. 基于MATLAB的IIR滤波器设计与实现[J]. 赤峰学院学报:自然科学版, 2012(18):2.