songzhen2566 发表于 2012-9-4 21:13

希尔伯特变换(调用程序出错不明原因求高手解答)

我下载了希尔伯特变换的程序包,也成功加载,可是调用函数时出错。调用函数及错误如下:
fs=8192;N=4096;
t=(0:N-1)*1/fs;
=emd(x,t,);
L=size(imf,1);
X=0;
for i=1:L;
X=imf(i,+X;
end
= hhspectrum(imf,t,l,0);
下面是报错:
Warning: HILBERT ignores imaginary part of input.
> In hilbert at 39
In hhspectrum at 44
Undefined function 'instfreq' for input arguments of type 'double'.

Error in hhspectrum (line 45)
f(i,=instfreq(an(i,',tt,l)';

求高手解答!感激不尽



=hspec(imf,N);
下面是报错:
Warning: HILBERT ignores imaginary part of input.
> In hilbert at 39
In hspec at 39
Undefined function 'instfreq' for input arguments of type 'double'.

Error in hspec (line 45)
freq(:,i) = instfreq(z(:,i)); % instantaneous frequency

dsp2008 发表于 2012-9-4 22:21

从网上下载一个instfreq程序。

songzhen2566 发表于 2012-9-5 08:42

回复 2 # dsp2008 的帖子

十分感谢!!!

yghit08 发表于 2012-9-5 11:08

楼主标题改一下,不是Hilbert变换的问题,是你调用子程序instfreq(求解瞬时频率)不存在的问题。从这点看,楼主没有细致的读给出的错误提示。求解瞬时频率的程序网上或者论坛里都用、有,时频工具箱下一个(如何安装时频工具箱的内容,搜索如何在Matlab中添加搜索目录)。另外一个提示是Hilbert变换会忽略数据的虚部部分。

我是了了 发表于 2012-11-29 12:51

安装tftb工具箱可以解决问题!
页: [1]
查看完整版本: 希尔伯特变换(调用程序出错不明原因求高手解答)