一维时间序列信号的改进小波降噪方法(MATLAB R2021B)

目前国内外对于小波分析在降噪方面的方法研究中,主要有小波分解与重构法降噪、小波阈值降噪、小波变换模极大值法降噪等三类方法。

(1)小波分解与重构法降噪

早在1988 年,Mallat提出了多分辨率分析的概念,利用小波分析的多分辨率特性进行分解。小波分解能将含噪信号分解,得到一组小波系数,然后在重构时对噪声所在频带小波系数进行舍弃,从而有效的进行信号的降噪。其文章中也给出了小波分解和重构的快速算法,称为 Mallet 算法。小波分解与重构法降噪是小波分析被应用于降噪领域最为基本的方法,也是后续一些降噪方法的基础。

(2)小波阈值降噪

小波阈值降噪的基本原理是将混合信号进行不同层次的小波分解,在每个层次利用阈值对小波系数进行处理,过滤掉噪声所在频带,然后对信号进行重构,达到降噪的目的。噪声信号一般在高频部分,所以一般对每层的高频系数进行阈值处理。

(3)小波变换模极大值降噪方法

在信号领域,信号的重要信息往往包含在其突变部分和奇异点之中,所以对于信号奇异点的检测研究至关重要。在小波变换的理论中,lip指数直接影响着模极大值和分解尺度之间的关系。通常情况下,若lip指数大于零,则该信号的模极大值随着分解尺度的增大而增大;若lip指数小于零,则该信号的模极大值随着分解分解尺度的增大而减小。通常的实测信号之中,有用信号的lip指数大于零,而噪声的lip指数小于零,这样就能对有用信号和噪声进行区分,在选出有用信号产生的模极大值点之后,利用这些有用的模极大值点对信号进行重建,就可以达到降噪的目的。

鉴于此,提出一种改进小波降噪方法,该方法提供了一种分解层数选择策略,并使用一个新公式来估计噪声阈值,运行环境为MATLAB R2021B。

Matlab 复制代码
%---------------------通过计算peak-to-sum ratio来确定分解层数----------------
%变量初始化
Sj = [1:14]; %每层的peak-to-sum值
Tr = 0.5; %稀疏性判定指标,可调超参数
k = 0; %分解层数

%循环遍历所有的细节系数
for level = 1 : 1 : 14
    %分解到第j层时的细节系数向量
    wj = cell2mat(cD(level)); 
    
    %分为L(负数)与H(正数)两组
    wj_L = []; %负系数数组
    wj_H = []; %正系数数组
    for index = 1 : 1 : length(wj)
        if wj(index) <= 0
            wj_L = cat(1, wj_L, wj(index));
        else
            wj_H = cat(1, wj_H, wj(index));
        end
    end

    %分别用元胞数组记录
    cD_L{level, 1} = wj_L; 
    cD_H{level, 1} = wj_H; 

    %计算peak-to-sum值,裁定第j的稀疏性
    maxwj = max(abs(wj)); %第j层最大的细节系数
    sumwj = sum(abs(wj)); %第j层细节系数绝对值之和
    Sj(level) = maxwj / sumwj;
    完整代码:https://mbd.pub/o/bread/mbd-ZpWWm59w

end
相关推荐
金井PRATHAMA4 小时前
描述逻辑(Description Logic)对自然语言处理深层语义分析的影响与启示
人工智能·自然语言处理·知识图谱
Rock_yzh4 小时前
AI学习日记——参数的初始化
人工智能·python·深度学习·学习·机器学习
gopyer5 小时前
180课时吃透Go语言游戏后端开发6:Go语言的循环语句
开发语言·游戏·golang·循环语句
CiLerLinux6 小时前
第四十九章 ESP32S3 WiFi 路由实验
网络·人工智能·单片机·嵌入式硬件
七芒星20237 小时前
多目标识别YOLO :YOLOV3 原理
图像处理·人工智能·yolo·计算机视觉·目标跟踪·分类·聚类
楼田莉子7 小时前
Qt开发学习——QtCreator深度介绍/程序运行/开发规范/对象树
开发语言·前端·c++·qt·学习
Learn Beyond Limits8 小时前
Mean Normalization|均值归一化
人工智能·神经网络·算法·机器学习·均值算法·ai·吴恩达
ACERT3338 小时前
5.吴恩达机器学习—神经网络的基本使用
人工智能·python·神经网络·机器学习
韩立学长8 小时前
【开题答辩实录分享】以《基于python的奶茶店分布数据分析与可视化》为例进行答辩实录分享
开发语言·python·数据分析
天若有情6738 小时前
C++空值初始化利器:empty.h使用指南
开发语言·c++