300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > matlab 一个简单的FIR低通滤波器设计例子

matlab 一个简单的FIR低通滤波器设计例子

时间:2021-10-14 03:08:20

相关推荐

matlab 一个简单的FIR低通滤波器设计例子

matlab 一个简单的FIR低通滤波器设计例子

先直接放代码跟结果

%假设有一个3hz的信号,由于某种原因带有一些高频噪声,需要将其滤除掉close all;clear all;load lowpass_fir; %fs=20 fc=6的32阶低通滤波器汉明窗fs = 20; %采样率T0 = 10; %信号时长10sF0 = 1/T0; %频率分辨率N = fs*T0; %采样点数t = (0:N-1)/fs; %时间轴坐标f = (0:F0:fs/2-F0); %频率轴坐标x = sin(2*pi*3*t)+1.2*sin(2*pi*7*t)+0.7*sin(2*pi*8*t)+0.2*randn(size(t)); %模拟信号subplot(2,2,1);plot(t(1:100),x(1:100));fx = abs(fft(x))*(2/N); %2/N中的N很好理解,2是因为matlab的FFT把负频也算上了,只分析正频需要加倍subplot(2,2,3);plot(f,fx(1:N/2));y = filter(b_fir,1,x);subplot(2,2,2);plot(t(1:100),y(1:100));fy = abs(fft(y))*(2/N);subplot(2,2,4);plot(f,fy(1:N/2));

1.输出有延迟,FIR滤波器的特性,阶数越大延迟越高,延迟为(N-1)/2,

2.窗函数法不可避免带来一定的频谱泄露,所以输出在3hz幅度变小,附近的频率分量增大

要有基本的数信理论才能看懂,最重要的是两点性质

1.观测时长为T0,则频率分辨率为F0=1/T0

2.采样频率为fs,则最大观测频率为fs

这样才能将坐标系对应上

matlab的滤波器设计如下,需要将滤波器系数导出这样方便使用,有了系数就可以用C语言去实现了。对于入门来说,用什么窗,阶数是多少就随便了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。