A. HHT工具箱的添加
现拷贝到matlab路径下的工具箱中,然后利用路径设置加载到工具箱中,就可以直接利用了!
B. EMD分解的matlab实现必须要用EMD工具箱么,可以给发一份么
可以不用啊。。。你也可以自己编写。。。上ilovematlab论坛就可以下载
C. 你发的那个emd程序,具体怎么用比如我有一时间系列的数据,如何处理
时间序列t,最简单用法就是imf=emd(t),当然emd里面还有很多可选项,例如 IMF = EMD(X,...,'Option_name',Option_value,...),详细使用方法安装HHT工具箱后看帮助即可
D. 这是hht语音去噪的代码。求大神指教错在哪里
你用的hht工具箱是哪一个?你发给我看看,[email protected],另外,运行时间与你的语音信号的长度本身有关系,语音数据时长是多少?
E. 我求得了imf作HHT后的瞬时频率跟你写的一样,但是仍然存在负值,
应该不超过1/2
的确有负的我重看了一下,Hilbert变换中的频率与傅里叶中频率意义不同,可能有负值
不过在它的函数工具箱里有处理
[A,f,t]=hhspectrum(imf);%对IMF分量求取瞬时频率与振幅:A:是每个IMF的振幅向量,f:每个IMF对应的瞬时频率,t:时间序列号
[E,t,Cenf]=toimage(A,f);%将每个IMF信号合成求取Hilbert谱,E:对应的振幅值,Cenf:每个网格对应的中心频率这里横轴为时间,纵轴为频率
%即时频图(用颜色表示第三维值的大小)和三维图(三维坐标系:时间,中心频率,振幅)
F. Attempt to execute SCRIPT Emd2 as a function:
跟你的程序不太一样
imf=emd(x);
m=size(imf,1);
figure
for i=1:m
subplot(m,1,i);
plot(1:N,imf(i,1:N));
ylabel(['imf',num2str(i)]);
end %%IMF图
y=0;
for i=1:m
y=imf(i,:)+y;
end %%restructure
a=corrcoef(x,y); %%完备性
%求时频谱
[A,f,t]=hhspectrum(imf(1:end-1, :));
%绘制瞬时包络图和瞬时频率图
figure;
subplot(211),plot(t/N,f(1,:)*fs);xlabel('时间 t/s');ylabel('频率');title('imf1分量瞬时频率');
subplot(212),plot(t/N,f(2,:)*fs);xlabel('时间 t/s');ylabel('频率');title('imf2分量瞬时频率');
G. hht中包络线怎么画 matlab
使用net.backward或者net.backward_prefilled,并且把get_data和set_data替换为get_diff和set_diff。在通过一些方法(例如prob_diff = rand(net.blobs('prob').shape);)产生输出blobs的梯度后,你可以运行:
res = net.backward({prob_diff});
data_diff = res{1};
H. 用hht计算瞬时频率为什么为负值
应该不超过1/2 的确有负的我重看了一下,Hilbert变换中的频率与傅里叶中频率意义不同,可能有负值 不过在它的函数工具箱里有处理 [A,f,t]=hhspectrum(imf); %对IMF分量求取瞬时频率与振幅:A:是每个IMF的振幅向量,f:每个IMF对应的瞬时频率