匝间短路故障学习历程(三)-- 信号加噪去噪
作者:互联网
因为通过仿真实验做出来的数据是模拟数据,所以不能和真实的数据进行比较,所以会用到针对模拟的信号进行添加噪声数据的方法来进行模拟实际场景中的信号。
在MATLAB中也存在直接添加噪声数据的函数,我之前在网上看见过一个帖子详细的讲解了添加噪声数据的方法。在这个帖子中也是用的函数进行添加的噪声。
这些是帖子中的介绍:
y = awgn(x,snr)将白高斯噪声添加到向量信号x中。标量snr指定了每一个采样点信号与噪声的比率,单位为dB。如果x是复数的,awgn将会添加复数噪声。这个语法假设x的能量是0dBW。
y = awgn(x,snr,sigpower)和上面的语法相同,除了sigpower是x的能量,单位为dBW。
y = awgn(x,snr,‘measured’)和y = awgn(x,snr)是相同的,除了agwn在添加噪声之前测量了x的能量。
y = awgn(x,snr,sigpower,state)和y = awgn(x,snr,sigpower)是相同的,除了awgn首先重置了正态随机数产生器randn的状态为整数状态。
y = awgn(x,snr,‘measured’,state)和y = awgn(x,snr,‘measured’)是相同的,除了awgn首先重置了正态随机数产生器randn的状态为整数状态。
y = awgn(…,powertype)和前面的语法相同,除了字符串powertype指定了snr和sigpower的单位。powertype的选择有’db’ and ‘linear’,如果powertype是’db’,那么snr是按照dB为单位测量的,sigpower是按照dBW为单位测量的。如果powertype是线性的,snr是按照一个比率测量的,sigpower是以瓦特为单位测量的。Relationship Among SNR, Es/N0, and Eb/N0
对于SNR和其他的噪声相对能量测量的关系,查看Describing the Noise Level of an AWGN Channel。
( matlab awgn函数加入高斯白噪声_GREYWALL-CSDN博客_matlab加性高斯白噪声https://blog.csdn.net/u010632165/article/details/108609684
但是针对具体的信号数据来说的话,其实添加的锯齿状的噪声相对来说比较好,但是要选择添加的噪声比,不能太小,不然会让原来信号的特征会变得不明显。然后我的是电流信号,所以用的锯齿状的噪声,然后设置的信噪比为10,我还用别的信噪比试了一下,太小的话原来信号就变得很模糊,只有10是最合适的一种信噪比。
%添加高斯白噪声,添加‘measured是为了添加锯齿状的白噪声’
% Y = awgn(X,10,'measured');
这样之后就会添加了一个包含噪声的信号Y,可以对信号Y进行分解重构,模拟实际场景下的数据处理了。
同样的,数据去噪的话其实有多的方法,相对来说分解重构算是可以针对不同频率的信号进行滤波去噪,还有就是可以通过阈值法进行去噪,具体阈值法是啥可以去自行百度(推荐一本书,叫MATLAB小波分析超级学习手册,如果看视频的话我记得有一个是哪个大学的数字信号处理的课程,可以看一下需要的),这两种方法我都在下边贴一下,按需来找。
(1)利用阈值法进行去噪(wden)
%利用阈值法进行去噪%
% [M] = wden(X,TPTR,SORH,SCAL,N,'wavename');
其中M为去噪之后的信号,X为原始信号。
TPTR为阈值规则,一般分为三种:heursure为最优变量预测阈值(信噪比比较小的时候用的多);rigrsure:基于stein的无偏差似然估计原理,自适应阈值的选择;sqtwolog:固定阈值;miniaxi:固定阈值,是指最小均方差的极值。
SORH为阈值方法,一般分为两种:‘s’为软阈值方法;'h'为硬阈值方法
SCAL:阈值尺度改变的比例,一般是有三种:‘one’,可以忽略必须估计的噪声层次;‘sln’,非白噪声模式,每个分解层次上都估计噪声的层次;‘mln’,不同分解层次进行独立的噪声设计。
N为分解的层数;wavename是所用的小波基。
(2)利用阈值法进行去噪(wdencmp)
% 利用阈值法进行去噪
% [thr,sorh,keepapp] = ddencmp('den','wv',V1);
% 获取信号的默认阈值
% [Y,CY] = wdencmp('gbl',X,'wavename',N,thr,sorh,keepapp);
‘gbl’是全局阈值,‘lvd’是各层阈值
keepapp = 1的情况下对低频系数不做处理;keepapp = 0的情况下是对低频系数也不做处理。
CY是返回的Y的结构,也可以不返回。
上边这个写的是对信号通过默认阈值进行去噪,还有其他的两种办法,一种是通过给定阈值进行去噪,通过经验公式获得,用到的是wthresh函数;还有一种是强制去噪;将高频系数强制转换为0,对信号进行重构(个人不建议用)。
其实去噪的方法是有很多的,但是我觉得吧,这个的选取可以通过你多做几次的实验来进行选择,改变每次的方法或者规则,实验过后看看哪种方法更好就选取哪种。上边介绍的这些基本在推荐的那本书都会有介绍,仔细看一下就能懂。
《MATLAB小波分析超级学习手册》链接自己找一下?可以私聊我给你发一下我读书的链接。
标签:匝间,阈值,加噪,噪声,--,添加,snr,信号,awgn 来源: https://blog.csdn.net/weixin_42213869/article/details/121140585