一维时间序列信号的多小波分析方法(MATLAB R2021B)

多小波是小波理论新的发展,它是指该多小波是由两个或两个以上的函数作为尺度函数而生成的。鉴于多小波这个名词的解释,将前面讲到的那些由一个函数作为尺度函数而生成的小波叫做单小波,来与多小波解释进行区分。单小波又叫纯量小波。

以谐波检测为例,在运用单小波进行谐波检测时,只需要选定需要使用的小波种类,然后对信号进行采样,接着就可以对信号进行分解了。但是,多小波并没有这么简单,在选定好多小波之后不能直接就运用该多小波对电网电流信号进行分解,而是应该在运用分解公式分解信号之前对数据进行先处理。这是由于我们需要检测的电网信号一般它的维度是一维的,而用来检测电网信号的多小波工具无论其尺度函数还是小波函数都是r维的,如果不先将电网信号通过一定线性变换变为与多小波维度相同的r维,那么该电网信号就无法与r维多小波这样检测工具相匹配,就无法对该信号进行检测,因此在分解以前必须进行对电网信号进行预处理。较典型的预处理法目前有两大类:

(1)预滤波方法。该方法的主要思想是:在分解以前,首先用一个预滤波器将采样得到的电网电流信号按2行输出,接着再乘以分组滤波器,来达到被检测信号与多小波之间维数匹配的目的。

(2)平衡预处理方法。当所测量的信号是经过预滤波器初始化之后的,将形成矢量数据。多小波分解中的低通滤波器存在不平衡信道,当矢量数据中通过低通信道时,会产生尺度系数与小波系数混合的现象,若在这样的情况下仅用尺度系数进行信号重构,那么就会产生强烈的震荡。对不平衡的多小波进行平衡,是解决不平衡的基本思想。运用在电力系统信号检测的具体方法首先是对采样得到的电网电流信号进行简单的分解,常常将电网电流信号分为奇偶两个部分。经过简单处理的采样信号,再以平衡处理,处理对象为在运用多小波进行分解和重构时要用到的滤波矩阵。

鉴于此,采用多小波对一维时间序列信号进行分解重构,运行环境为MATLAB R2021B。

Matlab 复制代码
% Loading the four-channel single filter bank response coeficients
G0 = multiwavelet.S4KF{1};
G1 = multiwavelet.S4KF{2};
G2 = multiwavelet.S4KF{3};
G3 = multiwavelet.S4KF{4};

% applying the extension on input signal
ad = length(G0);
extin = wextend('ac', extension, in, ad);

% Calculating length of output signal after convolution and creating
% variables with calculated length
outLen = conv(extin(1, :), G0, 'full');
c11_c = zeros(size(extin, 1), size(outLen, 2));
c12_c = zeros(size(extin, 1), size(outLen, 2));
d11_c = zeros(size(extin, 1), size(outLen, 2));
d12_c = zeros(size(extin, 1), size(outLen, 2));

% Performing convolution of input signal and response coeficients of
% four-channel single filter bank
for i = 1:size(extin, 1)
    c11_c(i, :) = conv(extin(i, :), G0, 'full');
    c12_c(i, :) = conv(extin(i, :), G1, 'full');
    d11_c(i, :) = conv(extin(i, :), G2, 'full');
    d12_c(i, :) = conv(extin(i, :), G3, 'full');
完整代码可通过知乎学术咨询获得:https://www.zhihu.com/consult/people/792359672131756032?isMe=1
end

工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

相关推荐
小和尚同志3 小时前
54.6k star 的 Multica: 集多 Agent 和看板于一体的 AI 平台
人工智能·aigc·three.js
一枕槐安4874 小时前
少样本提示(Few-shot)在业务场景的落地实践
大数据·人工智能·意图分类·mmr多样性·knn检索·动态示例选择
小徐不徐说4 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
ZhengEnCi4 小时前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法
ragnwang5 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
王中阳Go5 小时前
后端转 Agent 岗面试怎么答:8 个高频问题与应答口径
人工智能·后端·python·大语言模型
Wang's Blog5 小时前
Java 项目实战: 交友项目 - 搜索附近的功能概述和分析
java·开发语言·交友
海宇AI5 小时前
零信任架构实战:基于海宇个人风险报告构建自动化分期商城信用额度初审网关
运维·人工智能·架构·自动化
骑着蜗牛撵大象3275 小时前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm
tellmewhoisi5 小时前
深度学习32:卷积神经网络:卷积层(卷积运算,填充,步幅)
人工智能·深度学习·cnn