資源簡(jiǎn)介
代碼中的plot_hht函數(shù)實(shí)現(xiàn)了Hilbert-Huang變換(HHT),HHT就是Hilbert-Huang Transform(希爾伯特黃變換),美國(guó)航天航空局黃鱷教授發(fā)明的,大概的過(guò)程是:先對(duì)信號(hào)進(jìn)行經(jīng)驗(yàn)?zāi)B(tài)分解(Empirical mode decomposition -EMD),得出本征模態(tài)函數(shù)(IMF intrinsic mode function),再對(duì)本征模態(tài)函數(shù)進(jìn)行希爾伯特變換,從而過(guò)進(jìn)一步得該信號(hào)的希爾伯特譜、時(shí)頻能量譜等,以便對(duì)信號(hào)進(jìn)行分析,據(jù)介紹對(duì)非線性及非平穩(wěn)信號(hào)有較好的分析和處理效果。
代碼片段和文件信息
function?imf?=?emd(x)
%?Empiricial?Mode?Decomposition?(Hilbert-Huang?Transform)
%?imf?=?emd(x)
%?Func?:?findpeaks
x???=?transpose(x(:));
imf?=?[];
while?~ismonotonic(x)
???x1?=?x;
???sd?=?Inf;
???while?(sd?>?0.1)?|?~isimf(x1)
??????s1?=?getspline(x1);
??????s2?=?-getspline(-x1);
??????x2?=?x1-(s1+s2)/2;
??????
??????sd?=?sum((x1-x2).^2)/sum(x1.^2);
??????x1?=?x2;
???end
???
???imf{end+1}?=?x1;
???x??????????=?x-x1;
end
imf{end+1}?=?x;
%?FUNCTIONS
function?u?=?ismonotonic(x)
u1?=?length(findpeaks(x))*length(findpeaks(-x));
if?u1?>?0?u?=?0;
else??????u?=?1;?end
function?u?=?isimf(x)
N??=?length(x);
u1?=?sum(x(1:N-1).*x(2:N)?0);
u2?=?length(findpeaks(x))+length(findpeaks(-x));
if?abs(u1-u2)?>?1?u?=?0;
else??????????????u?=?1;?end
function?s?=?getspline(x)
N?=?length(x);
p?=?findpeaks(x);
s?=?spline([0?p?N+1][0?x(p)?0]1:N);
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????958087??2007-01-25?14:59??HHT.pdf
?????文件?????????965??2008-04-24?13:36??plot_hht.m
?????文件?????????893??2008-03-13?11:49??emd.m
?????文件?????????146??2007-08-26?00:42??findpeaks.m
?????文件??????102892??2007-04-28?15:57??Hum.wav
- 上一篇:SIFT算法MATLAB源碼
- 下一篇:MIMO信道容量MATLAB仿真程序
評(píng)論
共有 條評(píng)論