您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > matlab > FIR低通滤波器+matlab编程+滤波前后图形
Matlab实现振动信号低通滤波附件txt中的数字是一个实测振动信号,采样频率为5000Hz,试设计一个长度为M=32的FIR低通滤波器,截止频率为600Hz,用此滤波器对此信号进行滤波。要求:(1)计算数字截止频率;(2)给出滤波器系数;(3)绘出原信号波形;(4)绘出滤波后的信号波形;解答过程:第一部分:数字截止频率的计算数字截止频率等于截止频率除以采样频率的一半,即n=600/5000/2=0.24第二部分:滤波器系数的确定在matlab中输入如下程序,即可得到滤波器系数:n=32Wn=0.24b=fir1(n,Wn)得到的滤波器系数b为Columns1through9-0.0008-0.0018-0.0024-0.00140.00210.00750.01100.0077-0.0054Columns10through18-0.0242-0.0374-0.02990.00870.07560.15370.21660.24070.2166Columns19through270.15370.07560.0087-0.0299-0.0374-0.0242-0.00540.00770.0110Columns28through330.00750.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('幅值');运行之后就得到如下波形,即振动信号的原始波形图:00.050.10.150.20.25-1.5-1-0.500.511.5t/s幅值第四部分:滤波后的波形图在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);%用matlab自带的filter函数进行滤波figure(2);plot(t,y0);xlabel('t/s');ylabel('幅值');程序运行后就可以得到滤波后的波形,如下图所示:00.050.10.150.20.25-0.8-0.6-0.4-0.200.20.40.6t/s幅值
本文标题:FIR低通滤波器+matlab编程+滤波前后图形
链接地址:https://www.777doc.com/doc-7027842 .html