连续小波变换CWT画图代码
最后更新于:2024-04-07 21:24:31
一、代码运行环境
MATLAB2018a及更新版本。
二、程序介绍

注:图标代表该m文件为脚本文件,可以直接运行;
图标代表函数文件,在没有输入变量的情况下无法直接运行。更详细的解释可以看这里。
1.demoCWT.m文件
连续小波变换画图函数pCWT.m的测试脚本文件,其中有代码调用的演示案例。演示了绘制锥形区域、不绘制锥形区域使用对数频率轴、不绘制锥形区域使用线性频率轴三种情况。
文件可以直接运行。程序运行完成后,将会画出如下图像:

绘制锥形区域

不绘制锥形区域,使用对数频率轴

不绘制锥形区域使用线性频率轴
2.demoCWT3D.m文件
连续小波变换画图函数pCWT3D.m的测试脚本文件,其中有代码调用的演示案例。演示了使用线性频率轴绘制三维图、使用对数频率轴绘制三维图两种情况。
文件可以直接运行。程序运行完成后,将会画出如下图像:


3.pCWT.m文件
此函数进行连续小波变换,并绘制结果的二维图像。
代码说明:
function [timeAxis, freqAxis, cwtData] = pCWT(data, waveletName, Fs, plotCone, freqScale)
% pCWT - 进行小波分析并绘制结果
%
% 输入:
% data - 待分析数据
% waveletName - 小波名称,可以选择"morse", "amor" 或 "bump"
% Fs - 采样频率
% plotCone - 是否绘制锥形区域
% freqScale - 频率轴类型 ('linear' 或 'log')
%
% 输出:
% timeAxis - 时间轴·
% freqAxis - 频率轴
% cwtData - 小波分析数据
4.pCWT3D.m文件
此函数进行连续小波变换,并绘制结果的三维图像。
代码说明:
function [timeAxis, freqAxis, cwtData] = pCWT3D(data, waveletName, Fs, freqScale)
% pCWT3D - 进行小波分析并绘制三维结果
%
% 输入:
% data - 待分析数据
% waveletName - 小波名称,可以选择"morse", "amor" 或 "bump"
% Fs - 采样频率
% freqScale - 频率轴类型 ('linear' 或 'log')
%
% 输出:
% timeAxis - 时间轴
% freqAxis - 频率轴
% cwtData - 小波分析数据
三、快速开始
1.运行测试脚本
先在MATLAB里打开下载好的文件夹,然后运行demoCWT.m或demoCWT3D.m程序,程序运行完毕后如果没报错,且正常画出上述图像,则说明运行环境正常,程序正确。
2.修改仿真数据/导入数据
复制一个demoCWT.m或demoCWT3D.m的文件副本,在这个副本里做如下修改:
(1)第一种情况,你可能想要对你自己要研究的仿真数据进行滤波测试,此时你需要对 demoCWT.m或demoCWT3D.m 脚本文件中的第1小节内容进行修改替换即可。需要注意的是,请最好保持变量名的一致,即将待分析信号命名为data,为一维数据。此时数据替换完成。
(2)第二种情况,你可能是想对一段真实采集的数据进行滤波,此时需要根据你的文件类型的不同(excel,txt,csv等),将数据导入MATLAB的方法有所不同。同学们可以看博主针对常用文件的导入方法的这个教程,教程上未包含的数据类型,大家可以再参考这个文档。导入完成后请讲这个待分析信号命名为data。
3.实现连续小波分解
参照脚本文件中第二步,根据需要调整相关参数。
运行程序即可。
四、关于完整版与公开版代码
功能 | 完整版 | 公开版 |
数据导入、参数设置、实现滤波 | √ | √ |
软件全部源码(函数m文件) | √ | × |
画图水印 | 有水印 | 无水印 |
可分析数据长度 | 无限制 | 300个点以内 |
五、获取公开版程序(需使用电脑浏览器打开)
CWT小波连续变换公开版代码V2
注:公开版代码需使用MATLAB2022a及以上版本
六、获取完整版程序(使用电脑浏览器或者手机浏览器打开)
获取通道一(淘宝):点击此处获取完整版程序
获取通道二(本页面):点击下面“立即支付”按钮,付款后获取完整版代码下载链接和售后联系方式~本通道处于测试阶段,使用该通道可以额外优惠(仅需27元)。付款完成后刷新一下本页面即可看到下载链接。
(注意支付跳转失败的话,请使用浏览器打开本页面)
七、完整版代码重要更新
20231117 代码初始版本(公开版所在版本)
八、常见问题
无