imcoming 发表于 2008-12-19 21:10

请教信号预处理问题

经验模式分解(EMD)方法在处理imf分量间能量差很远的情况时,不能很好的辨识各imf分量,有文献说,可以用基于傅里叶变换的emd方法来处理这类问题。
不知有没有现成的matlab程序?多谢
比如
t = 0:1/3200:0.24
x = 10*sin(2*pi*50*t) + sin(2*pi*150*t);
对于这个信号,做emd处理,无法得到频率为50和150的两个imf分量啊。。
请大家指教~

hahaer 发表于 2008-12-19 22:35

我没有做过这个方面的尝试
但是EMD本身就是存在这样的问题
模态混叠
端点效应

期待有人来解答楼主的问题

baobao1982 发表于 2008-12-22 15:52

楼主的采样频率是多少呀?

qqvirile 发表于 2008-12-30 11:32

看本论坛的精贴

clear;
fs=1000;    %fs为采样频率;
N=1000;   %采样点数
t=1/fs:1/fs:1;
y1=10*sin(2*pi*50*t);
y2=sin(2*pi*150*t);
y=; %IMF集
%%%%%%%%%%%%%求边际谱
=hhspectrum(y);
=toimage(A,fa,tt,length(tt));
%E=flipud(E);
for k=1:size(E,1)
    bjp(k)=sum(E(k,:))*1/fs;
end
f=(0:N-3)/N*fs/2;
plot(f,bjp);
xlabel('频率 / Hz');
ylabel('幅值');

qqvirile 发表于 2008-12-30 11:34

回复 地板 qqvirile 的帖子

我也是昨天刚看的 今天正好拿来用一下 这个程序没有emd分解 而是直接 y1=10*sin(2*pi*50*t);y2=sin(2*pi*150*t);作为单分量函数 大家一起学习吧!我也是初学!

hahaer 发表于 2008-12-30 19:42

这个程序没有emd分解 而是直接 y1=10*sin(2*pi*50*t);y2=sin(2*pi*150*t);作为单分量函数
正弦信号本身可以作为一个IMF
页: [1]
查看完整版本: 请教信号预处理问题