• 大小: 863B
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-07
  • 语言: Matlab
  • 标签: EMD  MATLAB  

资源简介

基于MATLAB个人编写的EMD分解及信号重构例子,显示hilbert谱分析图像、各级分解结果,并显示重构误差。

资源截图

代码片段和文件信息

clear;
clc;
close all;

fs=2048;
T=1/fs;
L=2048;
t=(0:L-1)*T;

f1=20;
f2=50;
f3=100;

z=sin(2*pi*f1*t)+sin(2*pi*f2*t)+sin(2*pi*f3*t);

figure()
plot(z‘b‘)
xlabel(‘采样点数‘)
ylabel(‘幅值‘)
 
imf = emd(z);       

emd_visu(z1:length(z)imf);%调用EMD工具箱中的emd_visu函数运行结果如下

s=0;
for k=1:length(imf(:1))
    s=s+imf(k:);
end
es=z-s;
figure()
plot(es)
xlabel(‘采样点数‘)
ylabel(‘重构误差‘)

[Aftt] = hhspectrum(imf); 
[Ett1] = toimage(Afttlength(tt));
figure
imagesc(tt1/fs[00.5*fs]E);   
set(gca‘YDir‘‘normal‘)
xlabel(‘time‘)
ylabel(‘frequency(Hz)‘)
colorbar
title(‘Hilbert-Huang spectrum‘)

for k=1:size(E1)
bjp(k)=sum(E(k:))*1/fs; 
end
f=(1:L-2)/L*(fs/2);
figure()
plot(fbjp);
xlabel(‘频率 / Hz‘);
ylabel(‘信号幅值‘);
title(‘信号边际谱‘)%要求边际谱必须先对信号进行EMD分解

评论

共有 条评论