matlab小波阈值降噪

本人从多位老师的论文中查阅资,有不足之处希望大家指正,代码放到最后。

目录

1.小波模极大值去噪

 2.小波变换尺度间相关性去噪

 3.小波阈值萎缩去噪

  4.平以不变量小波阈值去噪


小波变换是一种信号的时间——尺度(时间——频率)分析方法,在时频两域都具有表征信号局部特征的能力,是一种窗口大小固定不变但其形状可改变,时间窗和频率窗都可以改变的时频局部化分析方法。即在低频部分具有较低的时间分辨率和较高的频率分辨率,在高频部分具有较高的时间分辨率和较低的频率分辨率,很适合于分析非平稳的信号和提取信号的局部特征,所以小波变换被誉为分析处理信号的显微镜。
 

2小波去噪类型概括.

        1.小波变换模极大值去噪方法,在低信噪比去噪中有优势,适合信号中混有白噪声且含有较多奇异点的情况;2.小波变换尺度间相关性去噪比较适合噪声水平不是很高的信号去噪,且具有较好的边缘重构能力;3.小波变换阈值萎缩去噪广泛的适应性,有很好的去噪效果,平移不变量去噪能很好的抑制阈值去噪方法的伪吉布斯效应,且有更好的视觉效果。

  1. 小波模极大值去噪

信号与噪声的小波变换模极大值在不同的尺度的传播特性,有效信号的小波变换随着尺度的增大而增加,噪声的小波变换模极大值随尺度的增大而减小,小波模极大值去噪是通过区分尺度下信号的模极大值与噪声的模极大值,利用小波模极大值直接检测信号的边缘,实现去噪。

信号的奇异性(信号在某处有间断或某阶导数不连续)

去噪算法:1.对加噪信号进行二进小波变换一般4-5个尺度,并求每一尺度模极大值

2.去除最大尺度噪声对应的模极大值点,保留信号对应的模极大值点。

3.j-1上寻找j上小波变换模极大值的传播点,保留尺度j-1上信号产生的极值点,去掉噪声产生的极值点。

4.j上模极大值点位置,构造一个邻域,在j-1上模极大值中保留落在邻域上的模极大值点,去除落在邻域外的极值点

5.最后对j=1上的小波变换模极大值全部去掉然后在j=2上进行非线性插值得到j=1上的模极大值

        2.小波变换尺度间相关性去噪

有效信号的小波系数在尺度间有很强的相关性在边缘有很强的相关性,而噪声的小波系数在尺度间没有明显的相关性。通过相邻尺度的小波系数进行相乘来增强信号,

关键精确地提取有效信号的边缘信息,可能通过多次重复循环处理来抑制奇异点附近的震荡现象,并可通过加入均值来消除震荡,ssnf稳定,计算量大,程序运行效率比较低,受模型影响。

        

        

        3.小波阈值萎缩去噪

非线性去噪,在最小均方误差下最优。最简单,计算量最小。

原理:正交小波变换有很强的去数据相关性,能使信号的能量在小波域集中在一些大的有限的系数中,而噪声能量分布在整个小波域。,找一个合适的阈值,对噪声引起的小波系数进行萎缩来去除噪声。

  1. 计算含噪信号的正交小波变换,选择分解层次N,进行N层小波分解。
  2. 对小波系数进行非线性阈值处理,保留低频系数,对1到N层的高频系数采用硬阈值和软阈值量化处理。硬阈值保留信号特征平滑方面有欠缺,软阈值去噪后信号平滑,会丢失某些特征。
  3. 进行逆小波变换,进行重构得到恢复的原始信号的估计值

固定阈值   自适应阈值   启发式阈值   极大极小阈值

希望去砸后光滑选固定阈值,均方误差最小选自适应阈值。

Sym8小波逼近信号奇异点或快速变化处表现振荡现象,就是伪吉布斯现象。

4.平以不变量小波阈值去噪

可以抑制伪吉布斯现象,通过循环平移再平均消除

伪吉布斯现象与信号不连续点的位置有关,不连续点与小波基元素特征之间的精确对准有关,

T1算法在光滑程度还是误差方面都优于阈值萎缩去噪法。

高频信号含有大量噪声,小波阈值法可以消除高频噪声,再把近似信号和处理后的其他频带信号重构回原信号,然而小波变换在随机噪声处理上较为薄弱,必须对小波变换进行改进从而降出地震数据的各种干扰噪声。

下面用阈值固定软阈值去噪进行举例。

 经过阈值去噪后信噪比增强,信噪比由3.9633提高至15.8226。

clc;
clear;
close all;
%% 产生仿真信号
Fs=100;   %数据采样率Hz
t=(1:1/Fs:4096*1/Fs)'; %对数据进行采样,将t转置为1列
N = length(t);  %数据的采样数目
f1 =0.8; %信号的频率
f2=0.05;
x=2*sin(2*pi*f1*t+cos(2*pi*f2*t));    %产生原始信号
nt=0.9*randn(N,1);  %高斯白噪声生成
y=x+nt; %含噪信号
Psig=sum(x'*x)/N;
Pnoi1=sum((nt)'*(nt))/N;
SNR1=10*log10(Psig/Pnoi1)
%% 用db4小波对含噪信号进行5层分解并提取系数
[c,l]=wavedec(y,5,'db4'); 
%取第5层低频近似系数
ca5=appcoef(c,l,'db4',5);
%取各层高频细节系数
cd5=detcoef(c,l,5);
cd4=detcoef(c,l,4);
cd3=detcoef(c,l,3);
cd2=detcoef(c,l,2);
cd1=detcoef(c,l,1);
thr=thselect(y,'sqtwolog'); % 阈值获取
%% 进行软阈值处理
ysoft5=wthresh(cd5,'s',thr);
ysoft4=wthresh(cd4,'s',thr);
ysoft3=wthresh(cd3,'s',thr);
ysoft2=wthresh(cd2,'s',thr);
ysoft1=wthresh(cd1,'s',thr);
c1=[ca5;ysoft5;ysoft4;ysoft3;ysoft2;ysoft1];
Y=waverec(c1,l,'db4');
Psig=sum(Y'*Y)/N;
Pnoi2=sum((Y-x)'*(Y-x))/N;
SNR2=10*log10(Psig/Pnoi2)
%% 画图
% 时域波形对比图
figure;
subplot(3,1,1);plot(t,x);xlabel('t/s');ylabel('幅值');title('模拟信号x(t)');
subplot(3,1,2);plot(t,y);xlabel('t/s');ylabel('幅值');title('含噪信号y(t)');
subplot(3,1,3);plot(t,Y);xlabel('t/s');ylabel('幅值');title('去噪后信号x(t)');

6.根据每一尺度保留下的模极大值,选择合适的重构算法,对信号进行恢复。

  • 10
    点赞
  • 145
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值