这个例子讨论了从噪声数据中恢复信号的问题。一般的去噪过程包括三个步骤。该程序的基本版本如下所述的步骤:
分解:选择一个小波,选择一个电平N,计算N级信号的小波分解。
阈值细节系数:对于从1到N的每一级,选择一个阈值,并对细节系数应用软阈值。
重构:利用第N层的原始逼近系数和1到N层的修正细节系数计算小波重构。
特别要注意两点:
如何选择门槛,
以及如何执行阈值。
使用该函数可以实现阈值设置wthresh
它返回输入信号的软阈值或硬阈值。硬阈值法是最简单的方法,而软阈值法具有良好的数学特性。让用力推
表示阈值。
用力推= 0.4;
硬阈值可以描述为将绝对值低于阈值的元素设置为零的通常过程。硬门限信号为x如果x >用力推
, x = 0
用力推
.
y = linspace (1100);ythard = wthresh (y,“h”,用力推);
软阈值是硬阈值的扩展,首先将绝对值小于阈值的元素置零,然后将非零系数缩小到0。软阈值信号为符号(x)(x-用力推
)如果x >用力推
x = 0
用力推
.
ytsoft = wthresh (y,“年代”,用力推);次要情节(1、3、1)情节(y)标题(“原始”)子地块(1,3,2)地块(ythard)标题(“硬阈值”) subplot(1,3,3) plot(ytsoft) title(“软阈值”)
从上图可以看出,硬程序在x =处造成了不连续 而软程序则不会。
回顾去噪过程的第二步,函数thselect
执行阈值选择,然后为每个级别设置阈值。第二步可以使用wthcoeff
,直接处理原始信号的小波分解结构。该函数实现了4个阈值选择规则thselect
.通常,当输入信号是高斯白噪声时,显示它们的作用是很有趣的。
rng默认的y = randn (1000);
规则1:运用Stein的无偏风险估计原则(SURE)进行选择
用力推= thselect (y,“rigrsure”)
用力推= 2.0518
规则2:固定形式阈值等于根号(2*log(y))
用力推= thselect (y,“sqtwolog”)
用力推= 3.7169
规则3:混合使用前两个选项进行选择
用力推= thselect (y,“heursure”)
用力推= 3.7169
规则4:使用极大极小原则进行选择
用力推= thselect (y,“minimaxi”)
用力推= 2.2163
当信号的小细节位于噪声范围附近时,Minimax和SURE阈值选择规则更保守,更方便。另外两条规则可以更有效地消除噪音。
让我们使用Donoho和Johnstone的“blocks”测试数据作为第一个例子。生成原始信号xref和添加标准高斯白噪声的噪声版本x。
sqrt_snr = 4;%设置信噪比init = 2055615866;%结籽[xref x] = wnoise (sqrt_snr 1, 11日,init);
首先对信号进行降噪处理wdenoise
使用默认设置。将结果与原始信号和噪声信号进行比较。
xd = wdenoise (x);次要情节(1,1)情节(xref)轴紧标题(原始信号的)子图(3,1,2)图(x)轴紧标题(噪声信号的)子图(3,1,3)图(xd)轴紧标题('去噪信号-信噪比= 4')
对噪声信号进行第二次降噪,这一次使用软启发式确定阈值对从x分解得到的细节系数,在第3级sym8
小波。与之前的去噪信号进行比较。
xd2 = wdenoise (x 3“小波”,“sym8”,...“DenoisingMethod”,“确定”,...“ThresholdRule”,“软”);图subplot(3,1,1) plot(xref)轴紧标题(原始信号的)子图(3,1,2)图(xd)轴紧标题(“第一个去噪信号:默认设置”)子图(3,1,3)图(xd2)轴紧标题(第二次去噪信号)
由于只有少量的大系数表征了原始信号,所以两种去噪信号都与原始信号有很好的对比。你可以使用小波信号降噪探讨其他去噪参数对噪声信号的影响。
当您怀疑非白噪声时,必须根据电平噪声的电平相关估计重新调整阈值。作为第二个例子,让我们在电信号的高扰动部分尝试这种方法。让我们用db4
在3级进行小波分解。为了处理复合噪声的性质,让我们尝试一个依赖于电平的噪声大小估计。
负载leleccumindx = 2000:3450;x = leleccum (indx);加载电信号并选择其中的一部分。
使用软固定形式阈值和电平依赖噪声大小估计对信号进行降噪。
xd = wdenoise (x 3“小波”,“db4”,...“DenoisingMethod”,“UniversalThreshold”,...“ThresholdRule”,“软”,...“NoiseEstimate”,“LevelDependent”);Nx =长度(x);图subplot(2,1,1) plot(indx,x)轴紧标题(原始信号的)子plot(2,1,2) plot(indx,xd)轴紧标题(的去噪信号)
尽管在2410左右传感器故障开始前后的噪声性质存在时间不均一性,但结果相当好。
一维情况下的去噪方法同样适用于图像,也适用于几何图像。二维去噪过程也有相同的三个步骤,并且使用二维小波工具代替一维小波工具。对于阈值选择,如果使用固定形式阈值,则使用prod(size(y))而不是length(y)。
生成有噪声的图像。
负载女人init = 2055615866;rng (init);x = x + 15*randn(size(x)); / /
在这种情况下,采用固定形式的阈值对电平噪声进行估计,阈值模式较软,逼近系数保持不变。
(用力推,sorh keepapp] = ddencmp (“窝”,西弗吉尼亚州的, x);用力推
用力推= 107.9838
使用全局阈值选项去噪图像。
xd = wdencmp (gbl(的, x,“sym4”2用力推sorh keepapp);图(“颜色”,“白色”) colormap(pink(255)) sm = size(map,1);图像(wcodemat (X, sm)标题(原始图像的)
图(“颜色”,“白色”) colormap(粉红色(255))image(wcodemat(x,sm)) title(“嘈杂的图像”)
图像(wcodemat (xd, sm))标题(”“去噪图像)