声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6459|回复: 39

[HHT] 为什么FFT和HHT边际谱差这么远?

[复制链接]
发表于 2014-9-11 21:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 牛小贱 于 2014-9-12 13:16 编辑

以下是我用matlab求的FFT频谱和HHT频谱,为何纵轴差这么远啊,这数量级差的太远了吧?
一下是我求边际谱FFT谱的程序:
求傅立叶谱程序:
  1. y2=fft(y);
  2. Fourier_Amp=sqrt(real(y2).^2+imag(y2).^2);
  3. fori=1:length(Fourier_Amp)/2
  4. Real_Fourier_Amp(i)=Fourier_Amp(i)+Fourier_Amp(length(Fourier_Amp)-i);%折半
  5. end
  6. Ts=2e-6;
  7. fs=1/Ts;
  8. f_Fourier=(0:length(Fourier_Amp)/2-1)/length(Fourier_Amp)*fs;
  9. plot(f_Fourier,Real_Fourier_Amp)
  10. title('FourierSpectrum');
  11. xlabel('Frequency/Hz');
  12. ylabel('amplitude')
复制代码
求边际谱程序:
>>imf=emd(y);
>>[A,fa,tt]=hhspectrum(imf);
>>[E,tt1]=toimage(A,fa,tt,length(tt));
>>for k=1:size(E,1)
bip(k)=sum(E(k,:))*(2e-6);
end
>>Ts=2e-6;
>>fs=1/Ts;
>>f=(0:(length(y)-3))/(length(y))*(fs/2);
>>plot(f,bip)
>>titile('Marginal Spectrum of Ultrasonic Signal')
>>xlabel('Frequency/Hz')
>>ylabel('Amplitude')



真切期望得到大家的解答,谢谢!!!


FFT谱

FFT谱

HHT边际谱

HHT边际谱

评分

1

查看全部评分

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

 楼主| 发表于 2014-9-11 22:32 | 显示全部楼层
恳请大家的真知灼见呀!
发表于 2014-9-12 11:42 | 显示全部楼层
按照我给的程序做
 楼主| 发表于 2014-9-12 19:42 | 显示全部楼层
shuihai707 发表于 2014-9-12 11:42
按照我给的程序做

嗯???你的程序可以贴一下吗?
 楼主| 发表于 2014-9-12 20:40 | 显示全部楼层
shuihai707 发表于 2014-9-12 11:42
按照我给的程序做

哦哦,我搜到你的程序了,你的FFT和边际谱的数量级是一样的,为何呢。。。
 楼主| 发表于 2014-9-13 09:40 | 显示全部楼层
shuihai707 发表于 2014-9-12 11:42
按照我给的程序做

您好,为什么我的频谱两端会有那么高的幅值呀?这是由于HHT和FFT算法本身造成的吗?
发表于 2014-9-13 15:38 | 显示全部楼层
cwb 发表于 2014-9-13 09:40
您好,为什么我的频谱两端会有那么高的幅值呀?这是由于HHT和FFT算法本身造成的吗?

去均值即可,0Hz是直流分量。
 楼主| 发表于 2014-9-14 10:27 | 显示全部楼层
shuihai707 发表于 2014-9-13 15:38
去均值即可,0Hz是直流分量。

均值指的是原始信号的算术平均吗?  意思是原始数据减去均值之后再做变换就不会出现两端的高幅值了是吧?
 楼主| 发表于 2014-9-14 11:12 | 显示全部楼层
shuihai707 发表于 2014-9-13 15:38
去均值即可,0Hz是直流分量。

imf=emd(y-mean(y));  我这样 之后效果好一些了,但是还有一点。。

减去均值之后

减去均值之后
发表于 2014-9-14 12:14 | 显示全部楼层
把信号贴出来
 楼主| 发表于 2014-9-14 20:04 | 显示全部楼层

ok,我的原始信号是这样的,我把它的HHT谱图也贴出来了。
这个HHT图是用这两句得到的:
       [E,tt1]=toimage(A,fa,tt);
       disp_hhs(E,[],500000);
开始我是 用[E,tt1]=toimage(A,fa,tt,length(tt));求E,但是这样会出现out of memory 的错误,于是去掉了参数ength(tt),我不知道这样做会不会有什么问题,因为我之前用另外一台电脑是可以执行[E,tt1]=toimage(A,fa,tt,length(tt))的,这样求得的E的维数和 [E,tt1]=toimage(A,fa,tt);求得的E的维数相差很远。


谢谢指教!

原始信号

原始信号

HHT谱图

HHT谱图

点评

请问下,你的下图的hilbert_huang spectrum里面的星星点点怎么去分析  详情 回复 发表于 2016-5-31 22:02
发表于 2014-9-14 22:01 | 显示全部楼层
你给我这样的信号,我怎样仿真啊?
 楼主| 发表于 2014-9-14 22:08 | 显示全部楼层
本帖最后由 cwb 于 2014-9-14 22:11 编辑
shuihai707 发表于 2014-9-14 22:01
你给我这样的信号,我怎样仿真啊?

呵呵,实在不好意思

你下载还要消耗体能,我不会设置成不消耗体能的。。你不会介意吧?

matlab.xls

493.5 KB, 下载次数: 9

原始数据

 楼主| 发表于 2014-9-14 23:00 | 显示全部楼层
shuihai707 发表于 2014-9-13 15:38
去均值即可,0Hz是直流分量。

我在EMD之前做了滤波处理,效果好多了:有用的信号占了主要成分

滤波后的HHT谱图

滤波后的HHT谱图

滤波后的边际谱

滤波后的边际谱

点评

你好,把你滤波的程序发我下可好,感谢啦  详情 回复 发表于 2016-5-31 22:03
发表于 2014-9-15 11:44 | 显示全部楼层
做了FFT,发现低频部分有一谱峰

FFT

FFT

低频部分

低频部分

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-26 21:27 , Processed in 0.122793 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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