今天在使用Filter Designer设计低通滤波器进行低通滤波发现滤波总是得不到理想中的结果,经过一番折腾后终于解决了问题,特写博文供大家学习参考。
1、找到工具箱中的Filter Designer并打开:
2、按照如下图所示设计参数,注意Fs最好和程序中的Fs对应上:
3、找到左上角File中的Generate Matlab code,点击Filter Design Function,命名lowpass3得到程序lowpass3.m:
4、运行源码程序,进行滤波:
close all;clc;clear all;
f1=100;f2=500;%两个频率分别为100Hz和500Hz
Fs=3000; %采样速率
n=0:100;
N=2^10;
Hd=lowpass3; %设计的低通滤波器系数
y=sin(2*pi*f1/Fs*n)+sin(2*pi*f2/Fs*n);
Y=fftshift(2*abs(fft(y,N)/N));
f=Fs*linspace(-1/2,1/2,N);
y1=filter(Hd,y); %进行低通滤波得到滤波后的信号
Y1=fftshift(2*(abs(fft(y1,N)))/N);%得到滤波后的频谱图
figure(1);
subplot(211);plot(f,Y);title('低通滤波前的信号'),xlabel('频率/Hz'),ylabel('幅度');
subplot(212);plot(f,Y1);title('低通滤波后的信号'),xlabel('频率/Hz'),ylabel('幅度');
5、得到滤波前后的幅频曲线图: