声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 12223|回复: 38

[HHT] 边际谱和HHT谱的Matlab例子

  [复制链接]
发表于 2009-6-29 10:09 | 显示全部楼层 |阅读模式

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

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

x
看到版上总有人在问边际谱和HHT谱的画法,又搜索了一下,好像没有这方面的主题帖子,就发两个以前写的小程序,权作抛砖引玉吧。

% 边际谱与FFT比较
clear

T = 1;                        % 仿真时间
f1 = 15.2;
f2 = 40;
fs = 1000;                    % 采样率
N = T*fs;
n = 1:N;
s = sin(2*pi*f1/fs*n) + sin(2*pi*f2/fs*n);
s_fft = abs(fft(s))/N;

imf = emd(s);
[A, fa, tt] = hhspectrum(imf);
[E, tt1] = toimage(A,fa,tt,length(tt));

for k=1:size(E,1)
    bjp(k) = sum(E(k,:))*1/fs*1/T;  
end
f = (0:N-3)/N*(fs/2);

figure(1);
plot(f,bjp);
xlabel('频率 / Hz');
ylabel('幅值');

figure(2);
plot(0:fs/N:fs/2-fs/N, s_fft(1:end/2))


% 实际信号的HHT谱和边际谱
clear

rand('seed', 0);

T = 0.01;                        % 仿真时间
R = 5000;                 % 码速率
fd = 10000;              % 载波频差
fc = 20000;              % 载波频率
fs = 200000;            % 采样率
samp = fs/R;            % 每个码元上的采样点数
N = T*fs;
n = 1:N;
x = randint(1, R*T, 2);
y = fskmod(x, 2, fd, samp, fs);
y = y .* exp(i*2*pi*fc/fs*n);
y = real(y);
% z = awgn(y, 20, 'measured');
z = y;

imf = emd(z);
[A, fa, tt] = hhspectrum(imf);
if size(imf,1) > 1
    [A,fa,tt] = hhspectrum(imf(1:end-1, :));
else
    [A,fa,tt] = hhspectrum(imf);
end
[E, tt1] = toimage(A,fa,tt,length(tt));
disp_hhs(E, tt1);
% 使用灰度图显示
% colormap(gray(255))        

for k = 1:size(E,1)
    bjp(k) = sum(E(k,:))*1/fs*1/T;  
end
f = (0:N-3)/N*(fs/2);
figure(2);
plot(f, bjp);

评分

1

查看全部评分

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2009-6-29 10:39 | 显示全部楼层
谢谢你,我昨天晚上研究了下,知道怎么用G. Rilling的程序了,原来只需要自己编程,设置一些参数,直接调用相关的函数就可以了,之前比较傻,云里雾里的搞了半天呵呵
发表于 2009-6-29 22:22 | 显示全部楼层
xray,你好!我用g.rilling的程序对自己的信号分析了下,感觉做出的hht谱有些奇怪,好像不对,那跟我的原始信号很相似,上传麻烦您给看下。后面又用你给的程序做出了边际谱,也不知道对不对,也上传给你看下,感觉我的边际谱很乱。我的数据也在附件里附上了。另外最后一张图,是我之前用plot_hht的程序做出的时频图也上传过来看下。

[ 本帖最后由 yanling66520 于 2009-6-29 22:26 编辑 ]

hht谱图

hht谱图

边际谱

边际谱

plot_hht程序做的时频图

plot_hht程序做的时频图

lylzai.txt

6.79 KB, 下载次数: 81

信号数据

发表于 2010-5-18 21:01 | 显示全部楼层
楼主你好 请问一下 我用了你的程序可是 报错了 我对MATLAB不熟 请帮我看看
QQ截图未命名.png
发表于 2010-5-19 16:34 | 显示全部楼层

回复 地板 hitdely 的帖子

搜索时频工具箱,安装工具包就会有这个函数。

评分

1

查看全部评分

发表于 2010-5-21 11:03 | 显示全部楼层

回复 楼主 xray 的帖子

楼主你好 请问一下 我用了你的程序可是还是有问题。我看了好多东西,不知道怎么解决。麻烦知道的人给小弟一提点。
??? Error: File: toimage.m Line: 59 Column: 1
This statement is not inside any function.
(It follows the END that terminates the definition of the function "toimage".)
发表于 2010-5-21 21:53 | 显示全部楼层
本帖最后由 VibInfo 于 2016-11-7 14:47 编辑
原帖由 jiangxiaolong 于 2010-5-21 11:03 发表
...This statement is not inside any function.
(It follows the END that terminates the definition of the function "toimage".)

检查下end的对应情况看看!
发表于 2010-5-23 08:55 | 显示全部楼层

回复 7楼 ChaChing 的帖子

我弄出来了,非常感谢你的帮助。
发表于 2010-5-23 11:43 | 显示全部楼层

回复 8楼 jiangxiaolong 的帖子

建议LS说清楚些, 与大家分享你的成果!
发表于 2010-5-23 18:30 | 显示全部楼层

回复 9楼 ChaChing 的帖子

弄错了,我只是知道我的错误了,楼主的问题,我不会。不好意思。
发表于 2010-5-29 09:37 | 显示全部楼层
请问能画出三维图吗
发表于 2010-5-29 09:38 | 显示全部楼层
谢谢了
那位大哥帮帮小弟

评分

1

查看全部评分

发表于 2010-9-12 15:23 | 显示全部楼层
回复 ChaChing 的帖子

感谢,给解决大问题了   
发表于 2010-9-16 16:49 | 显示全部楼层
谢谢各位了,看了这些真是受益匪浅.
发表于 2010-9-18 15:14 | 显示全部楼层
回复 xray 的帖子

请问楼主,第一个程序中边际谱和FFT谱的结果为什么会不一致?

边际谱

边际谱


FFT谱

FFT谱

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

本版积分规则

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

GMT+8, 2024-11-25 15:48 , Processed in 0.111319 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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