我想在matlab上面将一维信号高于40HZ的信号滤掉,怎么写程序啊?急求啊,谢谢你了,帮帮大忙。再次感谢

如题所述

滤波的话就应该用滤波器啊,应该设计一个cut off frequency = 40 的low pass filter,可以用butterworth IIR filter

[b,a] = butter(6,40,'low'); % order可以自己设
y_filtered = filter(b,a,y) ; % 这里y是你自己原来的信号
想要看滤波后的信号,可以看频谱
Y = abs(fft(y));
Y_filtered = abs(fft(y_filtered));
figure;
subplot(2,1,1);plot(Y);
subplot(2,1,2);plot(Y_filtered);
比较一下频谱,看是不是40HZ以后的东西都没有了
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-09
clear all
close all
clc
n=100;
x=n*rand(1,n);%信号的频率(Hz);
plot(1:n,x,'r-')
for i=1:n
if x(i)>40
x(i)=0;
end
end
hold on
plot(1:n,x,'k*-')%滤波后的信号;

%个人理解,仅供参考;谢谢。。。。本回答被网友采纳
相似回答