声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: cwb

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

[复制链接]
发表于 2014-9-15 14:07 | 显示全部楼层
本帖最后由 shuihai707 于 2014-9-15 16:47 编辑

时频分布,其实图像也是星星点点的,就是图像缩小后看不出来。

时频分布

时频分布

边际谱

边际谱
回复 支持 反对
分享到:

使用道具 举报

发表于 2014-9-15 14:28 | 显示全部楼层
说明一下吧,函数[E,tt1,Cenf]=toimage(A,fa,tt,length(tt),2500)最后一个参数2500表示频率分辨率,表示输出E的行数,这个值越大,边际谱越真实。对于你的数据采样频率为500000,理想情况下频率分辨率如果能达到250000,就能分辨出1hz的频率,受电脑配置限制,频率分辨率设置过大就会产生Out of memory的情况,我只能设置2500了,设置2500只能分辨出250000/2500=100Hz的频率,这样边际谱的结果就不是很真实,某些频率的数值就无法叠加,造成边际谱中的数值过小。相对FFT频谱反映的比较真实了。
看看边际谱函数
for k=1:size(E,1)     %size(E,1)表示E的行数
    bjp(k)=sum(E(k,:))*1/fs;   %边际谱的大小取决于E的行数,而E的行数又取决于频率分辨率
end
看看函数[E,tt1,Cenf] = TOIMAGE(A,fa,tt,splx,sply),A,f,t就是函数"hhspectrum"的输出,output of "hhspectrum",不多说。
           - splx : number of columns of the output im (time resolution).
                     If different from length(tt), works only for uniform
                     sampling.将时间平分的份数,一般为length(tt).
            - sply : number of rows of the output E (frequency resolution).
                     sply表示输出结果E的行数了,即将频率需要平分的份数
正常频率范围是0~fs/2,如果sply能达到fs/2,那么频率就能分辨出1Hz的值了。
萝莉啰嗦,希望明白。
回复 支持 1 反对 0

使用道具 举报

发表于 2014-9-15 14:35 | 显示全部楼层
程序给你贴出来,自己研究吧
clc;clear
data=xlsread('matlab.xls');
x=(data(:,2));
x=(x-mean(x))';
fs=1/2e-6;
imf=emd(x);
emd_visu(x,1:length(x),imf);
% figure
% hua_fft(x,fs,1);xlim([0 5000]);
[A,fa,tt]=hhspectrum(imf);
[E,tt1,Cenf]=toimage(A,fa,tt,length(tt),2500);
%%%%%%%%%%%%%%图像滤波,对实测数据效果好些%%%%%%%%%%%%
q=fspecial('gaussian', 7, 0.6);
nsu=filter2(q, E);
nsu=filter2(q, nsu);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure
imagesc(tt,0:0.5*fs,nsu.^.5);colorbar;xlim([0 9000]);
% imagesc(tt,0:0.5*fs,E);colorbar;
ylabel('频率f/Hz')
set(gca,'YDir','normal')
xlabel('采样点数')
for k=1:size(E,1)%SIZE(X,1) returns the number of rows  
    bjp(k)=sum(E(k,:))*1/fs;
end
figure;plot(Cenf(1,:)*fs,bjp);

评分

1

查看全部评分

 楼主| 发表于 2014-9-15 15:12 | 显示全部楼层
shuihai707 发表于 2014-9-15 14:35
程序给你贴出来,自己研究吧
clc;clear
data=xlsread('matlab.xls');

嗯嗯,真是太感谢啦!可以把你的FFT变换程序贴出来吗?
 楼主| 发表于 2014-9-15 15:44 | 显示全部楼层
shuihai707 发表于 2014-9-15 14:35
程序给你贴出来,自己研究吧
clc;clear
data=xlsread('matlab.xls');

colorbar是什么意思?为什么我执行colorbar之后是这样的,,从-20到0.
colorbar.png
发表于 2014-9-15 15:58 | 显示全部楼层
cwb 发表于 2014-9-15 15:44
colorbar是什么意思?为什么我执行colorbar之后是这样的,,从-20到0.

你的图像满天繁星的也对,可能就是没有用图像滤波,可用可不用。disp_hhs函数的幅值是db,你好好看看函数,开头就有说明,colorbar自己百度吧,就是旁边的颜色条。

点评

满天繁星能说明什么,求指导  详情 回复 发表于 2016-5-31 22:35
 楼主| 发表于 2014-9-15 16:22 | 显示全部楼层
shuihai707 发表于 2014-9-15 15:58
你的图像满天繁星的也对,可能就是没有用图像滤波,可用可不用。disp_hhs函数的幅值是db,你好好看看函数 ...

嗯,好的。
刚才一还做了滤波之后的FFT谱,对比边际谱,感觉FFT谱反而更加准确一些,,,本来想用HHT来做信号处理,这下迷糊了,不知道用HHT好还是用FFT好 了。。。

滤波后的FT谱

滤波后的FT谱

滤波后的边际谱

滤波后的边际谱
 楼主| 发表于 2014-9-15 16:29 | 显示全部楼层
shuihai707 发表于 2014-9-15 15:58
你的图像满天繁星的也对,可能就是没有用图像滤波,可用可不用。disp_hhs函数的幅值是db,你好好看看函数 ...

disp_hhs就是显示E的吧,关键是我不太理解E里面的内容是啥,是有很多个点组成的二维图像?绘出来之后每个点的颜色就代表该点的幅度吗?幅度的单位就是dB?我的理解对吗?
发表于 2014-9-15 16:29 | 显示全部楼层
如果你的电脑内存足够大,不会出现Out of memory情况,建议使用边际谱,我的帖子中的一个例子就说明了边际谱比傅里叶谱要准确。
 楼主| 发表于 2014-9-16 09:57 | 显示全部楼层
shuihai707 发表于 2014-9-15 16:29
如果你的电脑内存足够大,不会出现Out of memory情况,建议使用边际谱,我的帖子中的一个例子就说明了边际 ...

嗯,希望是这样吧。因为在滤波之前的边际谱好像要比FFT谱光滑而紧凑一些,可能泄漏更小一些吧。
我有个疑问,是不是HHT不适合分析频率太高的信号呀?我看到HUANG的原文里举的一些例子都是频率很低的信号,信号的周期都是秒级别的,得出来的结果和FFT及小波分析很有对比性;我分析的超声信号是20kHz以上的,在微秒级的,,其HHT分析结果和FFT及小波分析的对比性好像就不是很明显了。
发表于 2014-9-16 10:13 | 显示全部楼层
shuihai707 发表于 2014-9-15 16:29
如果你的电脑内存足够大,不会出现Out of memory情况,建议使用边际谱,我的帖子中的一个例子就说明了边际 ...

你有没有发现个问题,关于EMD。HUANG文章里的所采用的仿真信号是“幅值或者频率的缓变信号”(frequency and amplitude slow-varying),这样就需要一个前提,采样频率要明显大于仿真信号频率,这种情况下,各种乱七八糟的干扰信号或者噪音不会影响IMF的分解结果。EMD方法具有一种二进制滤波特性,虽说是自适应的,但是与采样点数是有很大关系的,如果你的信号刚刚好位于各滤波范围内的不重叠位置,那分离出来的信号IMF,物理意义很明显。

而对于振动信号来言,很难保证采样频率远远大于信号频率的,所以,使得分离出来的很多信号意义不明确。
发表于 2014-9-16 10:13 | 显示全部楼层
cwb 发表于 2014-9-16 09:57
嗯,希望是这样吧。因为在滤波之前的边际谱好像要比FFT谱光滑而紧凑一些,可能泄漏更小一些吧。
我有个 ...

你有没有发现个问题,关于EMD。HUANG文章里的所采用的仿真信号是“幅值或者频率的缓变信号”(frequency and amplitude slow-varying),这样就需要一个前提,采样频率要明显大于仿真信号频率,这种情况下,各种乱七八糟的干扰信号或者噪音不会影响IMF的分解结果。EMD方法具有一种二进制滤波特性,虽说是自适应的,但是与采样点数是有很大关系的,如果你的信号刚刚好位于各滤波范围内的不重叠位置,那分离出来的信号IMF,物理意义很明显。

而对于振动信号来言,很难保证采样频率远远大于信号频率的,所以,使得分离出来的很多信号意义不明确。
发表于 2014-9-16 11:23 | 显示全部楼层
yugang2010 发表于 2014-9-16 10:13
你有没有发现个问题,关于EMD。HUANG文章里的所采用的仿真信号是“幅值或者频率的缓变信号”(frequency  ...

采样点数和采样频率的确对EMD有影响,采样频率至少保证最高频率的4倍以上。
发表于 2014-9-20 13:49 | 显示全部楼层
采样频率影响很大
 楼主| 发表于 2014-9-23 09:52 | 显示全部楼层

你说的采样频率指的是哪个采样频率?我的数据是从示波器上取下来的,示波器的采样频率是500kHz
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-15 00:27 , Processed in 0.080521 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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