边际谱问题
在用论坛里求边际谱的程序时,出现了一些小问题。我的程序是这样的%N为信号的采样点数。
= hhspectrum(imf(1:end-1,:));
= toimage(A,f,tt);
disp_hhs(im,[],fs);
figure;
for k=1:size(im,2);
bjp1(k)=sum(im(:,k))*1/fs*1/T;%T=N*1/fs
end
f=(0:N-3)/N*(fs/2);
plot(f,bjp1,'r');
title('边际谱');
xlabel('频率HZ');
ylabel('幅值');
可是运行出来的结果不对,在不该出现有幅值的地方也出现了,对应频率出现的机率和HHT谱出现的不对应。im是二维的谱信号,bjp1(k)=sum(im(:,k))*1/fs*1/T这样可不可以求出谱值的?我也不懂,把k=1:size(im,2);改为k=1:size(im,1);结果又是不一样,都不知道是哪里出了问题,请高手们帮帮忙啊!!! 该信号的HHT谱图和边际谱如附件所示,信号的取样率为50hz,N=36001,为什么在20-25hz这一部分,HHT谱图和边际谱图不对应呢,出现了没有值,这是为什么呀?sig为信号。
t=sig(:,1);
pm=sig(:,2);
N=length(t);
fs=50;
T=N*1/fs;
% imf = emd(pm);
= emd(pm);
emd_visu(pm,t,imf);
= hhspectrum(imf(1:end-1,:));
= toimage(A,f,tt);
figure;
for k=1:size(im,2);
bjp1(k)=sum(im(:,k))*1/fs*1/T;
end
NN=size(im,2);
f=(0:N-3)/N*(fs/2);
plot(f,bjp1);
title('边际谱');
xlabel('频率HZ');
ylabel('幅值');
页:
[1]