FIR低通滤波器+matlab编程+滤波前后图形

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab实现振动信号低通滤波

附件txt中的数字是一个实测振动信号,采样频率为5000Hz,试设计一个长度为M=32的FIR低通滤波器,截止频率为600Hz,用此滤波器对此信号进行滤波。要求:

(1)计算数字截止频率;

(2)给出滤波器系数;

(3)绘出原信号波形;

(4)绘出滤波后的信号波形;

解答过程:

第一部分:数字截止频率的计算

=600/5000/2=0.24 数字截止频率等于截止频率除以采样频率的一半,即

n

第二部分:滤波器系数的确定

在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('幅值');

运行之后就得到如下波形,即振动信号的原始波形图:

00.050.1

0.150.20.25-1.5-1

-0.5

0.5

1

1.5

t/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.1

0.150.20.25

-0.8-0.6

-0.4

-0.2

0.2

0.4

0.6

t/s 幅值

相关文档
最新文档