• 大小: 5KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: Matlab
  • 标签: EMD  小波变换  

资源简介

专门用来处理非线性非平稳信号的工具~~~相当经典~~~编写的时间是2012年10月1日

资源截图

代码片段和文件信息

%% EMD-WP方法:

% 作者:************
% 时间:2012年************



function Emd_Wp(dataNNk)

X=data(1:NN);

%% 参数设置
fs=12000; %采样频率
N = length(X);
y_imf=emd(X); %Emd处理
[y_IMFIMF_lastrest]=IMF_Choose(Xy_imfk);%本征模分量的选择
[mn]=size(y_IMF);
f=(0:N-1)*fs/N; %频率的变化范围。
t=(0:N-1)/N*(N/fs); %时间的变化范围。
Fs=1/(t(2)-t(1));


%% EMD处理后的IMF图
if (m-1)>=4   
    figure; 
    for i=1:4 %1~4
        subplot(41i);
        plot(ty_IMF(i:));
        title([‘IMF‘num2str(i)]);%num2str:数字转化为字符串
    end    
    if floor((m-1)/4)>=2 %5~8。floot:取商   
        figure;  
        for i=5:8        
            subplot(41i-4);        
            plot(ty_IMF(i:));    
            title([‘IMF‘num2str(i)]);
        end       
        if floor((m-1)/4)>=3%9~12
            figure; 
            for i=9:12        
                subplot(41i-8);        
                plot(ty_IMF(i:)); 
                title([‘IMF‘num2str(i)]);
            end
            if floor((m-1)/4)==3%13~...
                figure;
                for i=13:(mod((m-1)4)+12)      
                    subplot(41i-12);        
                    plot(ty_IMF(i:));
                    title([‘IMF‘num2str(i)]);
                end
            end
        else
            if m>9
            figure; 
            for i=9:(rem((m-1)4)+8)%9~...。 取余
                subplot(41i-8);        
                plot(ty_IMF(i:));    
                title([‘IMF‘num2str(i)]);
            end
            end
        end     
    else
        if m-1~=4
            figure;
            for i=5:(rem((m-1)4)+4)%5~...。
                subplot(41i-4);        
                plot(ty_IMF(i:));    
                title([‘IMF‘num2str(i)]);
            end
        end
    end
else
    figure;
    for i=1:m-1 
        subplot(31i);
        plot(ty_IMF(i:));
        title([‘IMF‘num2str(i)]);%num2str:数字转化为字符串
    end
end
%最后一个剩余分量residual的图形
figure;
plot(ty_IMF(m:));
title(‘残余量‘);


%% 对IMF进行一维小波包的分解,返回小波包结构树T
% T=wpdec(XN‘wname‘EP)
% wname=input(‘请输入进行小波包分解的小波函数(仅限db小波):‘‘s‘);
% num=input(‘请输入进行小波包分解的层数:‘);
% for i=1:m-1
%     T=wpdec(y_IMF(i:)numwname‘shannon‘);
%     plot(T);
% end


%% 选择感兴趣的IMF。
int_IMF=input(‘请输入对第几个IMF感兴趣(数字):‘);


%% 用W

评论

共有 条评论