MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 101|回复: 2|关注: 0

[未答复] HHT变换,边际谱是一条直线,怎么才对啊

[复制链接]

新手

5 麦片

财富积分


050


3

主题

14

帖子

0

最佳答案
发表于 6 天前 | 显示全部楼层 |阅读模式
  1. clc;
  2. clear;
  3. N=12500;
  4. n=1:N;
  5. fs=6250;
  6. t=n/fs;
  7. x=importdata('guzhang.txt');
  8. data=x;
  9. imf=emd(data);                        %对输入信号进行EMD分解   
  10. [A,f,t]=hhspectrum(imf);            %对IMF分量求取瞬时频率与振幅:A:是每个IMF的振幅向量,f:每个IMF对应的瞬时频率,t:时间序列号
  11. [E,t,Cenf]=toimage(A,f);            %将每个IMF信号合成求取Hilbert谱,E:对应的振幅值,Cenf:每个网格对应的中心频率  这里横轴为时间,纵轴为频率        
  12.                                                    %即时频图(用颜色表示第三维值的大小)和三维图(三维坐标系:时间,中心频率,振幅)         
  13. cemd_visu(data,1:length(data),imf);   %显示每个IMF分量及残余信号--------------------------------------------
  14. disp_hhs(E);                          %希尔伯特谱----------------------------------------------------------
  15. %画出边际谱
  16. %N=length(Cenf);%设置频率点数   %完全从理论公式出发。网格化后中心频率很重要,大家从连续数据变为离散的角度去思考,相信应该很容易理解
  17. for k=1:size(E,1)
  18.     bjp(k)=sum(E(k,:))*1/fs;
  19. end
  20. figure(3);
  21. plot(Cenf(1,:)*fs,bjp);  % 作边际谱图   进行求取Hilbert谱时频率已经被抽样成具有一定窗长的离散频率,所以此时的频率轴已经是中心频率
  22. xlabel('频率 / Hz');
  23. ylabel('速度/mm/s');
复制代码

边际谱是一条直线,怎么才正确啊

file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\513011783\QQ\WinTemp\RichOle\_7OY7J7S%B@]]U@A0I3VXAD.png


_7OY7J7S%B@]]U@A0I3VXAD.png

guzhang.txt

72.19 KB, 下载次数: 0

新手

5 麦片

财富积分


050


3

主题

14

帖子

0

最佳答案
 楼主| 发表于 5 天前 | 显示全部楼层
帮忙看看啊

新手

5 麦片

财富积分


050


3

主题

14

帖子

0

最佳答案
 楼主| 发表于 4 天前 | 显示全部楼层
求帮忙啊,为什么一开始的时候速度那么大,然后一下边为趋近于0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表