使用matlab对一维矩阵的数据进行滤波

将一维矩阵进行fft变换,得到其频谱图。然后对其进行带通滤波,只将其中的信号中的部分频率的信号保留下来,于是设计一个带通滤波器进行滤波。最后可以对比信号滤波前后的波形图查看滤波效果。

N=512;
subplot(4,1,1);
plot(data1(1:N));
title('原始信号波形图');

Fs=100;
T=1/Fs;
N=512;
dur=N*T;
t=0:T:dur-T;
X=fft(data1);
Y=abs(X);
A=Y/(N/2);
width=Fs/N;
f=0:width:Fs-width;
subplot(4,1,2);
plot(f(1:N/2),A(1:N/2));
title('原始信号频谱图');

fl=18;
fh=22;
wp=[2*fl/Fs 2*fh/Fs];
b=fir1(30,wp);  % 30阶
sign=filtfilt(b,1,data1);  % 滤波后的信号


X=fft(sign,N);
Y=abs(X);
A=Y/(N/2);
width=Fs/N;
f=0:width:Fs-width;
subplot(4,1,3);
plot(f((1:N/2)),A(1:N/2));
title('滤波后频谱图');

N=512;
subplot(4,1,4);
plot(sign(1:N));
title('滤波后波形图');

运行结果如图: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值