小波分解DWT画图代码

最后更新于:2024-04-07 21:43:44

一、代码运行环境

MATLAB2018b及更新版本。

二、程序介绍

注:图标代表该m文件为脚本文件,可以直接运行;图标代表函数文件,在没有输入变量的情况下无法直接运行。更详细的解释可以看这里

1.demoDWT.m文件

使用生成仿真信号进行小波分解的案例,其中演示了pDWT、pDWTandFFT、rDWT函数的应用方式示范。

文件可以直接运行。程序运行完成后,将会画出如下图像:

仿真信号

小波分解结果

小波分解及频谱图

组合重构信号对比图

2.pDWT.m文件

小波分解并画图的函数程序。

代码说明:

function [a,d] = pDWT(signal, level, wname)
% 小波分解并画图的程序
% 输入:
% signal:为待分解信号
% lev:  小波分解水平
% wname:小波名称,可选范围参考这里:https://ww2.mathworks.cn/help/wavelet/ref/wfilters.html?searchHighlight=wname&s_tid=srchtitle_wname_2#d123e130597
% 输出:
% a: 近似信号
% b:细节信号

3.pDWTandFFT.m文件

绘制DWT分解图及频谱图函数程序。

代码说明:

function [a,d] = pDWTandFFT(signal, level, wname, fs)
% 绘制DWT分解图及频谱图
% 输入:
% signal:为待分解信号
% lev:  小波分解水平
% wname:小波名称,可选范围参考这里:https://ww2.mathworks.cn/help/wavelet/ref/wfilters.html?searchHighlight=wname&s_tid=srchtitle_wname_2#d123e130597
% fs:   采样频率
% 输出:
% a: 近似信号
% b:细节信号

4.rDWT.m文件

绘制重构信号并绘制DWT重构图函数程序。

代码说明:

function combined_signal = rDWT(signal, waveletType, decompositionLevel, approxLevels, detailLevels)
% 重构信号并绘制DWT重构图:该函数实现了基于小波变换的信号重构。用户可以选择要包含的近似和细节分量。
% 输入:
% signal : 输入信号,行向量或列向量,要进行小波分解和重构的原始信号。
% waveletType : 小波类型,用于小波分解和重构的小波类型。
%               可选范围参考这里:https://ww2.mathworks.cn/help/wavelet/ref/wfilters.html?searchHighlight=wname&s_tid=srchtitle_wname_2#d123e130597
% decompositionLevel : 分解级数,整数,信号进行小波分解的级数或深度。
% approxLevels : 要包含的近似级数,整数或整数数组,要包含在重构信号中的近似分量的级数。
% detailLevels : 要包含的细节级数,整数或整数数组,要包含在重构信号中的细节分量的级数。
% 输出:
% combined_signal : 组合重构信号,行向量,包含所选近似和细节分量的重构信号。

三、快速开始

1.运行测试脚本

先在MATLAB里打开下载好的文件夹,然后运行demoDWT.m程序,程序运行完毕后如果没报错,且正常画出上述图像,则说明运行环境正常,程序正确。

2.修改仿真数据/导入数据

复制一个demoDWT.m的文件副本,在这个副本里做如下修改:

(1)第一种情况,你可能想要对你自己要研究的仿真数据进行滤波测试,此时你需要对 demoDWT.m 脚本文件中的第1小节内容进行修改替换即可。需要注意的是,请最好保持变量名的一致,即将待分解信号命名为signal,为一维数据。此时数据替换完成。

(2)第二种情况,你可能是想对一段真实采集的数据进行滤波,此时需要根据你的文件类型的不同(excel,txt,csv等),将数据导入MATLAB的方法有所不同。同学们可以看博主针对常用文件的导入方法的这个教程,教程上未包含的数据类型,大家可以再参考这个文档导入完成后请讲这个待滤波信号命名为signal

3.实现小波分解

参照脚本文件中第二、三、四步,根据需要调整相关参数。

运行程序即可。

四、关于完整版与公开版代码

功能完整版公开版
数据导入、参数设置、实现滤波
软件全部源码(函数m文件)×
画图水印有水印无水印
可分析数据长度无限制1000个点以内

五、获取公开版程序(需使用电脑浏览器打开)

小波分解公开版代码

注:公开版代码需使用MATLAB2022a及以上版本

六、获取完整版程序(使用电脑浏览器或者手机浏览器打开)

获取通道一(淘宝):点击此处获取完整版程序

获取通道二(本页面):点击下面“立即支付”按钮,付款后获取完整版代码下载链接和售后联系方式~本通道处于测试阶段,使用该通道可以额外优惠(仅需28元)。付款完成后刷新一下本页面即可看到下载链接。

(注意支付跳转失败的话,请使用浏览器打开本页面)

您需要先支付 38元 才能查看此处内容!立即支付

七、完整版代码重要更新

20231029 代码初始版本(公开版所在版本)

八、常见问题