logo资料库

FIR低通滤波器+matlab程序.doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
Matlab 实现振动信号低通滤波 附件 txt 中的数字是一个实测振动信号,采样频率为 5000Hz,试设计一个长度 为 M=32 的 FIR 低通滤波器,截止频率为 600Hz,用此滤波器对此信号进行滤波。 要求: (1) 计算数字截止频率; (2) 给出滤波器系数; (3) 绘出原信号波形; (4) 绘出滤波后的信号波形; 解答过程: 第一部分:数字截止频率的计算 数字截止频率等于截止频率除以采样频率的一半,即 n =600/5000/2=0.24 第二部分:滤波器系数的确定 在 matlab 中输入如下程序,即可得到滤波器系数: n=32 Wn=0.24 b=fir1(n,Wn) 得到的滤波器系数b为 Columns 1 through 9 -0.0008 -0.0018 -0.0024 -0.0014 0.0021 0.0075 0.0110 0.0077 -0.0054 Columns 10 through 18 -0.0242 -0.0374 -0.0299 0.0087 0.0756 0.1537 0.2166 0.2407 0.2166 Columns 19 through 27 0.1537 0.0756 0.0087 -0.0299 -0.0374 -0.0242 -0.0054 0.0077 0.0110 Columns 28 through 33 0.0075 0.0021 -0.0014 -0.0024 -0.0018 -0.0008 第三部分:原信号波形 将附件4中的dat文件利用识别软件读取其中的数据,共1024个点,存在TXT 文档中,取名bv.txt,并复制到matlab的work文件夹。 在matlab中编写如下程序: x0=load('zhendong.txt'); t=0:1/5000:1023/5000; %找到信号数据地址并加载数据。 %将数据的1024个点对应时间加载
figure(1); plot(t,x0); xlabel('t/s'); ylabel('幅值'); 运行之后就得到如下波形,即振动信号的原始波形图: 1.5 1 0.5 值 幅 0 -0.5 -1 -1.5 0 0.05 0.1 t/s 0.15 0.2 0.25 第四部分:滤波后的波形图 在matlab窗口中输入如下程序,即可得到滤波后的波形图: x0=load('zhendong.txt'); t=0:1/5000:1023/5000; figure(1); plot(t,x0); xlabel('t/s'); ylabel('幅值'); fs=5000; n=32; Wn=0.24; b=fir1(n,Wn); y0=filter(b,1,x0); figure(2); plot(t,y0); xlabel('t/s'); ylabel('幅值'); %求滤波系数 %用matlab自带的filter函数进行滤波
程序运行后就可以得到滤波后的波形,如下图所示: 值 幅 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 0 0.05 0.1 t/s 0.15 0.2 0.25
分享到:
收藏