EMD分解问题!!!!!
各位老师:你们好!
我是一个初学EMD的菜鸟,应用xray老师的程序,对一调制信号进行分析,但是还是有些问题不太明白,希望各位老师给予指导!
%%%%%程序
clear;clc;close all;
fs=100;T=10;N=T*fs;
t=0:1/fs:T; % 采样率100HZ
z=(1+sin(2*pi*t)).*sin(2*pi*10*t);%调幅信号
imf = emd(z); %%%%%%%%%%EMD
= hhspectrum(imf);
if size(imf,1) > 1
= hhspectrum(imf(1:end-1, :));
else
= hhspectrum(imf);
end
= toimage(A,fa,tt,length(tt));
for k = 1:size(E,1)
bjp(k) = sum(E(k,:))*1/fs*1/T;
end
f = (0:N-2)/N*(fs/2);
figure(1)
plot(t,z);
figure(2)
imagesc(tt1,,E);
set(gca,'YDir','normal')
% 使用灰度图显示
% colormap(flipud(gray))
figure(3)
plot(f, bjp);
分析结果如图:
我有几个问题不明白:
1。EMD分解后,各阶的IMF是存在什么位置的?工作空间里的矩阵A,和fa都是9行的矩阵,不知道哪个才是?
2。边际谱中只包含10HZ的频率成分,而我的主要目的是获得调制信号中的包络信号的频率(1HZ),应该怎么获得?
3。应用EMD分解,我是否可以直接从分解中的IMF中提取1HZ的频率信号,再进行FFT变化,从而,获得1HZ的频率?
以上是我的问题,希望各位老师给予指导!!!
怎么没人帮我回答啊!各位大侠,指导一下啊!! imf <10x1001>:表明有10个imf,只不过第2个至第10个imf的幅度都很小。第1个imf与原信号z几乎相等。这是因为,imf本来就是一个AM-FM函数。
求信号包络的最简单的办法是先做Hilbert变换,得到解释信号,再对解释信号(复信号)求模值,这个模值即是你想要的包络。 谢谢你的回答。
我想知道的是:是否可以通过EMD分解获得包络信号,比如某一个IMF就是包络信号。
另外,通过边际谱的计算,是否可以获得包络信号的频率,即1HZ的频率。 有木有人帮我回答一下啊!!!! 如果是纯调幅信号的话,我想你通过EMD做不出来它包络(被认为是某一阶IMF),但是你做出来后通过hhspectrum这个函数处理某一阶IMFs的话,能做出来包络,这样做出来的结果正如二楼说的是直接通过HIlbert变换做出来的(hhspectrum的功能去除求解瞬时频率的部分就是二楼说的那样的做法)。看来楼主对EMD没了解啊! dsp2008 发表于 2012-9-25 21:32 static/image/common/back.gif
imf :表明有10个imf,只不过第2个至第10个imf的幅度都很小。第1个imf与原信号z几乎相等。这是因为,imf本来 ...
是用解析信号的模的正负当做上下包络吗?还是另有算法? 用Hilbert法求信号包络,前提条件是该信号已经是单分量信号。
若是多分量信号,则可用EMD中的方法来求上下包络。 dsp2008 发表于 2012-11-7 12:58 static/image/common/back.gif
用Hilbert法求信号包络,前提条件是该信号已经是单分量信号。
若是多分量信号,则可用EMD中的方法来求上 ...
单分量信号意思是IMF吗?哦,这样的话最大最小值差不多就是关于横坐标轴对称的是吧 回答正确!加十分。 这个问题问得非常好,我也在思考。 怎么又看不到???能不能不设置门槛?
页:
[1]