资源简介
用plot_hht程序进行emd分解和画图:
运行后imf保存的是各个分量,d和b一个是分解过后的重构信号,另一个是每个分量的能量大小。
出来的图是每一个imf分量从高频到低频排列。
代码片段和文件信息
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
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1258 2013-05-29 14:53 plot_hht.m
文件 893 2008-03-13 11:49 emd.m
文件 2187 2008-10-21 18:55 extrema.m
文件 146 2007-08-26 00:42 findpeaks.m
----------- --------- ---------- ----- ----
4484 4
- 上一篇:wifi cmwrun自动测试脚本
- 下一篇:淘宝小号批量检测-推广版
评论
共有 条评论