blusun_2008 发表于 2008-10-30 19:34

边际谱问题

在用论坛里求边际谱的程序时,出现了一些小问题。我的程序是这样的
%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);结果又是不一样,都不知道是哪里出了问题,请高手们帮帮忙啊!!!

blusun_2008 发表于 2008-10-30 20:34

该信号的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]
查看完整版本: 边际谱问题