• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-18
  • 语言: Matlab
  • 标签: FIR  filter  matlab  low-pa  

资源简介

在matlab上实现FIR低通滤波器,并用它实现对噪声的滤除,每一步都加有注释,方便参考,程序运行无误

资源截图

代码片段和文件信息

Fs=2000;
fp=700;
fs=500;
wp=2*pi*fp/Fs;%通带截止频率%
ws=2*pi*fs/Fs;%阻带截止频率%
Bt=wp-ws;%设计过渡带带宽%
NO=ceil(6.2*pi/Bt);%计算所需h(n)长度NO,ceil取大于等于x的最小整数%
wc=(wp+ws)/2/pi;%计算理想带通滤波器截止频率%
N=NO+mod(NO+12)-18;%确保h(n)长度N是奇数%
n=0:N-1;
hn=fir1(N-1wchanning(N));%调用firl计算带通FIR数字滤波器的h(n)%
[Hw]=freqz(hn11024);%计算频率响应函数h(n)%
figure(1);
magH=20*log10(abs(H)/max(abs(H)));%计算幅度%
subplot(311);
stem(nhn‘.‘);
xlabel(‘n‘);
ylabel(‘h(n)‘);
title(‘汉宁窗FIR数字低通滤波器的单位脉冲响应‘);
subplot(312);
plot(w/pi*Fs/2magH);%绘制幅度特性%
title(‘汉宁窗FIR数字低通滤波器的幅度特性‘);
xlabel(‘频率/Hz‘);
ylabel(‘幅度magH‘);
grid on;
subplot(313);
plot(w/pi*Fs/2unwrap(angle(H)));
title(‘汉宁窗FIR数字低通滤波器的相位特性‘);
n=0:1023;
dt=1/Fs;
t=n*dt;
Tp=1024*dt;
f1=250;
f2=800;
x=sin(2*pi*f1*t)+sin(2*pi*f2*t);
y=filter(hn1x);
%=====================原始信号
f1=sin(2*pi*f1*t);
f2=sin(2*pi*f2*t);
N=500;
F1=abs(fft(f1N));
F2=abs(fft(f2N));
X=abs(fft(xN));
Y=abs(fft(yN));
figure(2);
subplot(411);
plot(tf1);
title(‘原始信号f1(t)‘);

评论

共有 条评论