⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mydwt.m

📁 一种SPIHT的改进算法!!!mallat算法实现,还有待提高!多联系lhz_5156@163.com
💻 M
字号:
function [cA,cD] = mydwt(x,lpd,hpd,dim);
% 函数 [cA,cD]=MYDWT(X,LPD,HPD,DIM) 对输入序列x进行一维离散小波分解,输出分解序列[cA,cD]
% 输入参数:x——输入序列;
%          lpd——低通滤波器;
%          hpd——高通滤波器;
%          dim——小波分解层数。
% 输出参数:cA——平均部分的小波分解系数;
%           cD——细节部分的小波分解系数。

cA=x;       % 初始化cA,cD
cD=[];
for i=1:dim
    cvl=conv(cA,lpd);   % 低通滤波,为了提高运行速度,调用MATLAB提供的卷积函数conv()
    dnl=downspl(cvl);   % 通过下抽样求出平均部分的分解系数
    cvh=conv(cA,hpd);   % 高通滤波
    dnh=downspl(cvh);   % 通过下抽样求出本层分解后的细节部分系数
    cA=dnl;             % 下抽样后的平均部分系数进入下一层分解
    cD=[cD,dnh];        % 将本层分解所得的细节部分系数存入序列cD
end


% 以下部分是信号去噪的测试程序,与上述函数无关
%     if sym
%         if i<=dim-3
%             dnh=averlize(dnh,1);
%         else if i<=dim-1
%                 dnh=averlize(dnh,2);
%             end
%         end
%     end

% function y=averlize(x,fa);
% N=length(x);
% % aver=sum(x(1:N))/N;
% for i=2:N
%     if abs(x(i)-x(i-1))>=0.7
%         switch fa
%             case 1
%                 x(i)=x(i-1);
%             case 2
%                 x(i)=x(i-1);
%             otherwise
%                 x(i)=x(i);
%         end
%     end
% end
% y=x;

⌨️ 快捷键说明

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