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對應的瞬時頻率