将一维矩阵进行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('滤波后波形图');
运行结果如图: