多小波是小波理论新的发展,它是指该多小波是由两个或两个以上的函数作为尺度函数而生成的。鉴于多小波这个名词的解释,将前面讲到的那些由一个函数作为尺度函数而生成的小波叫做单小波,来与多小波解释进行区分。单小波又叫纯量小波。
以谐波检测为例,在运用单小波进行谐波检测时,只需要选定需要使用的小波种类,然后对信号进行采样,接着就可以对信号进行分解了。但是,多小波并没有这么简单,在选定好多小波之后不能直接就运用该多小波对电网电流信号进行分解,而是应该在运用分解公式分解信号之前对数据进行先处理。这是由于我们需要检测的电网信号一般它的维度是一维的,而用来检测电网信号的多小波工具无论其尺度函数还是小波函数都是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等。