希尔伯特变换(调用程序出错不明原因求高手解答)
我下载了希尔伯特变换的程序包,也成功加载,可是调用函数时出错。调用函数及错误如下: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 从网上下载一个instfreq程序。 回复 2 # dsp2008 的帖子
十分感谢!!! 楼主标题改一下,不是Hilbert变换的问题,是你调用子程序instfreq(求解瞬时频率)不存在的问题。从这点看,楼主没有细致的读给出的错误提示。求解瞬时频率的程序网上或者论坛里都用、有,时频工具箱下一个(如何安装时频工具箱的内容,搜索如何在Matlab中添加搜索目录)。另外一个提示是Hilbert变换会忽略数据的虚部部分。 安装tftb工具箱可以解决问题!
页:
[1]