采用Matlab的Filter Designer设计低通滤波器并对信号进行低通滤波

今天在使用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、得到滤波前后的幅频曲线图:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45362665/article/details/126874923