xiebofenjie.m

来自「本源代码主要实现谐波小波的分解及重构的matlab程序。」· M 代码 · 共 36 行

M
36
字号
function [out1,out2]=fenjie(a,time)
%a为原始信号,double
%time为时间,double
xi=length(a);
j1=fix(log2(xi));%xi取整
a1=a(1:2.^j1);
xi=2.^j1;
time=time(1:2.^j1);
j=fix(log2(xi/4));%计算j的最大值
as=zeros(1,xi);
a2=fft(a1);
%对a2进行分段并做傅里叶逆变换
for i=-1:j
    if i==-1
        xi2=a2(1);
    else
        xi2=a2(2.^i+1:2.^(i+1));
    end    
    if i==-1
        as(1)=ifft(xi2);
    else
        as(2.^i+1:2.^(i+1))=ifft(xi2);
    end
end
as=as(1:xi-2.^(j+1));%as为谐波小波分解系数
out1=as;
kk=abs(as);
kk=kk.^2;
kk3=log10(kk);
xi3=-1:j;
[kk1,kk2]=meshgrid(time,xi3);
out2=tianchong(kk3,xi3,time);%调用tianchong子程序
mesh(kk1,kk2,tianchong(kk3,xi3,time));%画谐波小波分解系数时频图
Xlabel('t/s');
Ylabel('j');
Zlabel('lg|a_s|^2');

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?