Matlab实现振动信号低通滤波
附件txt中的数字是一个实测振动信号,采样频率为5000Hz,试设计一个长度为M32的FIR低通滤波器,截止频率为600Hz,用此滤波器对此信号进行滤波。
要求:(1)计算数字截止频率;(2)给出滤波器系数;(3)绘出原信号波形;(4)绘出滤波后的信号波形;解答过程:第一部分:数字截止频率的计算数字截止频率等于截止频率除以采样频率的一半,即
60050002024第二部分:滤波器系数的确定在matlab中输入如下程序,即可得到滤波器系数:
32W
024bfir1
W
得到的滤波器系数b为Colum
s1through9000080001800024000140002100075001100007700054Colum
s10through18
14
f002420037400299000870075601537021660240702166Colum
s19through27
015370075600087002990037400242000540007700110Colum
s28through33
000750002100014000240001800008第三部分:原信号波形将附件4中的dat文件利用识别软件读取其中的数据,共1024个点,存在TXT文档中,取名bvtxt,并复制到matlab的work文件夹。在matlab中编写如下程序:x0loadzhe
do
gtxt找到信号数据地址并加载数据。t01500010235000将数据的1024个点对应时间加载figure1plottx0xlabeltsylabel幅值运行之后就得到如下波形,即振动信号的原始波形图:15105幅值0
24
f05115000501ts01502025第四部分:滤波后的波形图在matlab窗口中输入如下程序,即可得到滤波后的波形图:x0loadzhe
do
gtxtt01500010235000figure1plottx0xlabeltsylabel幅值fs5000
32W
024bfir1
W
求滤波系数y0filterb1x0用matlab自带的filter函数进行滤波figure2plotty0xlabeltsylabel幅值
34
f程序运行后就可以得到滤波后的波形,如下图所示:0604020幅值02040608000501ts01502025
44
fr