資源簡(jiǎn)介
本程序?yàn)槭褂胢atlab編寫的EMD的實(shí)現(xiàn)程序,并且在程序中對(duì)提取包絡(luò)線的三次樣條函數(shù)進(jìn)行了改進(jìn),利用本程序可以提高EMD的使用精度。本人多次使用本程序或在本程序的基礎(chǔ)上改進(jìn)新算法,并發(fā)表學(xué)術(shù)論文。

代碼片段和文件信息
function?imf?=?emd(x)??????????????????????????%EMD的實(shí)現(xiàn)函數(shù)
%?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);????????????????????????%s1是極大值包絡(luò)
??????s2?=?-getspline(-x1);??????????????????????%s2是極小值包絡(luò)
??????x2?=?x1-(s1+s2)/2;?????????????????????????%x2是原信號(hào)減去極大值包絡(luò)和極小值包絡(luò)之和的平均值之后的剩余部分
??????
??????sd?=?sum((x1-x2).^2)/sum(x1.^2);???????????%極大值與極小值包絡(luò)平均值的平方和與原信號(hào)的平方和之比小于0.1,則認(rèn)為滿足IMF的第二個(gè)條件。
??????x1?=?x2;
???end
???
???imf{end+1}?=?x1;???????????????????????????????%x1是個(gè)向量
???x??????????=?x-x1;
end
imf{end+1}?=?x;
%?FUNCTIONS
function?u?=?ismonotonic(x)???????????????????????????????????????%判斷X是否是單一分量
u1?=?length(findpeaks(x))*length(findpeaks(-x));
if?u1?>?0?u?=?0;
else??????u?=?1;?end
function?u?=?isimf(x)?????????????????????????????????????????????%判斷X是否是IMF分量
N??=?length(x);
u1?=?sum(x(1:N-1).*x(2:N)?0);???????????????????????????????????%零點(diǎn)總數(shù)
u2?=?length(findpeaks(x))+length(findpeaks(-x));??????????????????%極大值與極小值總數(shù)
if?abs(u1-u2)?>?1?u?=?0;?????????????????????????????????????????%極值點(diǎn)數(shù)與零點(diǎn)數(shù)相等或相差一個(gè)時(shí),為IMF分量
else??????????????u?=?1;?end?????????????????????????????????????%findpeaks(x)得到極大值點(diǎn),findpeaks(-x)得到極小值點(diǎn)
function?s?=?getspline(x)?????????????????????????????????????????%三次樣條插值得到極大值點(diǎn)的包絡(luò)
N?=?length(x);
p?=?findpeaks(x);
s?=?spline([0?p?N+1][0?x(p)?0]1:N);
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-03-30?10:35??EMD-Hermite\
?????文件????????1690??2011-02-28?16:17??EMD-Hermite\emd.m
?????文件????????1424??2011-03-01?09:37??EMD-Hermite\EMD_Hermite.m
?????文件????????3406??2011-03-01?16:07??EMD-Hermite\EMD_Hermite_tst.asv
?????文件????????3406??2011-03-10?15:20??EMD-Hermite\EMD_Hermite_tst.m
?????文件????????3865??2011-03-01?14:41??EMD-Hermite\EMD_Hermite_tst_1.m
?????文件????????3409??2011-03-01?16:13??EMD-Hermite\EMD_Spline_tst.m
?????文件?????????382??2011-03-01?11:29??EMD-Hermite\point.m
?????文件?????????652??2011-02-25?10:36??EMD-Hermite\subHermite.m
?????文件????????1240??2011-03-01?11:15??EMD-Hermite\subHermite_test.asv
?????文件????????1234??2011-03-01?11:22??EMD-Hermite\subHermite_test.m
?????文件?????????468??2011-02-28?15:05??EMD-Hermite\tst.m
?????文件???????66732??2011-03-01?16:07??EMD-Hermite\unti
評(píng)論
共有 條評(píng)論