声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: fancy78066994

[HHT] 完整的EMD分解全过程,有Hilbert谱和边际谱

  [复制链接]
发表于 2010-4-26 15:58 | 显示全部楼层
运行提示:??? Undefined function or method 'emd' for input arguments of type 'double'.
emd.m哪里有

点评

搜索本站  发表于 2010-9-27 22:29
回复 支持 反对
分享到:

使用道具 举报

发表于 2010-5-4 10:44 | 显示全部楼层

楼主能不能把那个hilbert谱的横轴变成时间

你的那个时间横轴是个采样点个数,不是时间啊,、如果用时间表示如何表示,单位用s.按你的程序应该是n/fs.但是如何加入到程序并显示出来,怎么弄啊?

点评

楼主懂了没,教教我,我这个横坐标时间还不太懂  详情 回复 发表于 2016-6-3 23:38
楼主懂了没,教教我,我这个横坐标时间还不太懂  详情 回复 发表于 2016-6-3 23:38
自己研究一下代码吧,在绘图的时候加进去就行  发表于 2010-9-27 22:30
发表于 2010-9-17 21:55 | 显示全部楼层
我是直接复制粘贴的,运行的时候为什么会出现下面的情况:
??? Error: File: D:\MATLAB\toolbox\hht2\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-9-17 22:22 | 显示全部楼层
上面的问题已经解决了,但是又有问题了:
??? Error using ==> toimage
Too many output arguments.
这是怎么回事?
发表于 2010-9-21 13:13 | 显示全部楼层
没问题了
发表于 2010-9-27 19:39 | 显示全部楼层
我这显示 没有EMD函数啊 楼主
发表于 2010-9-27 22:29 | 显示全部楼层
发表于 2010-9-28 10:41 | 显示全部楼层
18 19楼的问题我也遇到了 怎么修改啊 请指导一下
发表于 2010-9-29 15:53 | 显示全部楼层
谢谢楼主,对我的帮助很大。先拷下了慢慢学
发表于 2010-10-16 11:09 | 显示全部楼层
我的也是在matlab直接运行出现
??? Undefined function or method 'instfreq' for input arguments of type 'double'.

Error in ==> hhspectrum at 79
  f(i,:)=instfreq(an(i,:)',tt,l)';

我把源程序拷过来,请大哥们帮帮忙。
%HHSPECTRUM  compute Hilbert-Huang spectrum
%
% [A,f,tt] = HHSPECTRUM(x,t,l,aff) computes the Hilbert-Huang spectrum
%
% inputs:
%   - x   : matrix with one signal per row
%   - t   : time instants
%   - l   : estimation parameter for instfreq (integer >=1 (1:default))
%   - aff : if 1, displays the computation evolution
%
% outputs:
%   - A   : instantaneous amplitudes
%   - f   : instantaneous frequencies
%   - tt  : truncated time instants
%
% calls:
%   - hilbert  : computes the analytic signal
%   - instfreq : computes the instantaneous frequency
%   - disprog : displays the computation evolution
%
%Examples:
%
%s = randn(1,512);
%imf = emd(s);
%[A,f,tt] = hhspectrum(imf(1:end-1,:));
%
%s = randn(10,512);
%[A,f,tt] = hhspectrum(s,1:512,2,1);
%
% rem: need the Time-Frequency Toolbox (http://tftb.nongnu.org)
%
% See also
%  emd, toimage, disp_hhs
%
% G. Rilling, last modification 3.2007
% gabriel.rilling@ens-lyon.fr

function [A,f,tt] = hhspectrum(x,t,l,aff)

error(nargchk(1,4,nargin));

if nargin < 2

  t=1:size(x,2);

end

if nargin < 3

  l=1;

end

if nargin < 4

  aff = 0;

end

if min(size(x)) == 1
        if size(x,2) == 1
                x = x';
                if nargin < 2
                        t = 1:size(x,2);
                end
        end
        Nmodes = 1;
else
        Nmodes = size(x,1);
end

lt=length(t);

tt=t((l+1):(lt-l));

for i=1:Nmodes

  an(i,:)=hilbert(x(i,:)')';
f(i,:)=instfreq(an(i,:)',tt,l)';----------就是这显示错误。
  A=abs(an(:,l+1:end-l));

  if aff
        disprog(i,Nmodes,max(Nmodes,100))
  end

end
发表于 2010-10-17 15:51 | 显示全部楼层
楼主 你知道不知道 学习 HHT 这方面的matlab仿真书啊  给介绍介绍啊  
秋秋 :494197178
发表于 2010-10-19 20:28 | 显示全部楼层
非常好啊。。
发表于 2010-10-20 08:57 | 显示全部楼层
我的也是在matlab直接运行出现
??? Undefined function or method 'instfreq' for input arguments of type 'double'.

Error in ==> hhspectrum at 79
  f(i,:)=instfreq(an(i,:)',tt,l)';

这个问题到底是怎么解决的 请帮忙呀 急!
发表于 2010-11-18 22:16 | 显示全部楼层
楼主这里是什么意思呢??
%N=length(Cenf);%设置频率点数

另,不知道楼主有没有做过间断频率的设置呢?设置间断频率f,把频率高于f的信号分离出来
发表于 2010-11-21 13:38 | 显示全部楼层
谢谢楼主,看看
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 13:09 , Processed in 0.065296 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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