此示例显示如何使用小波来代替信号和图像。由于小波本地化数据中的功能到不同的尺度,因此可以在删除噪声时保留重要信号或图像功能。小波噪声或小波阈值处理背后的基本思想是小波变换导致许多真实信号和图像的稀疏表示。这意味着小波变换集中在几个大幅度小波系数中的信号和图像特征。小的值小波系数通常是噪声,并且您可以“收缩”这些系数或删除它们而不会影响信号或图像质量。在系数阈值之后,使用逆小波变换重建数据。
为了说明小波去噪,创建一个有噪声的“颠簸”信号。在这种情况下,既有原始信号,也有噪声信号。
rng.默认的;[x,xn] = wnoise(“疙瘩”,10,sqrt(6));子图(211)绘图(x);标题('原始信号');甘氨胆酸AX =;斧子。YLim = [0 12];次要情节(212)情节(XN);标题('嘈杂的信号');甘氨胆酸AX =;斧子。YLim = [0 12];
使用降噪信号到4级wdenoise
使用默认设置。wdenoise
使用抽取的小波变换。将结果与原始信号绘制在一起。
XD = WDEOISE(XN,4);数字;绘图(x,“r”) 抓住在;情节(xd)传说('原始信号','去噪','地点',“NorthEastOutside”)轴紧的;持有离开;
你也可以使用非抽取小波变换去噪信号。使用未抽取小波变换将信号降噪到第4级。将结果与原始信号绘制在一起。
xdMODWT = wden (XN,“modwtsqtwolog”,“年代”,'MLN',4,“sym4”);数字;绘图(x,“r”) 抓住在;情节(xdMODWT)传说('原始信号','去噪','地点',“NorthEastOutside”)轴紧的;持有离开;
你可以看到,在这两种情况下,小波去噪去除了大量的噪声,同时保留了信号中的尖锐特征。这是傅里叶去噪的一个挑战。在基于傅里叶的去噪或滤波中,应用低通滤波器来去除噪声。然而,当数据具有高频特征时,如信号中的尖峰或图像中的边缘,低通滤波器将这些特征平滑掉。
你也可以用小波去噪噪声不均匀的信号。输入并检查部分显示随时间变化的耗电量的信号。
负载Leleccum.;Indx = 2000:3450;x = leleccum(indx);绘图(x)网格在;
大约在样本500之后,信号似乎有更多的噪声。因此,您希望在信号的初始部分使用不同的阈值。您可以使用cmddenoise
确定要去噪并欺骗信号的最佳间隔数。在此示例中,使用“DB3”小波并将数据分解为级别3。
[sigddden,〜,thrparams,〜,bestnbofint] = cmddenoise(x,'db3'3);
显示间隔的数量和分隔间隔的示例值。
BestNbOfInt
Bestnbofint = 2
thrparams {1}(:,1:2)
ans =2×21 412 412 1451
确定了两个区间。标记两段边界的样本为412。如果您绘制信号并标记两个信号段,您会看到噪声在样本412之前和之后确实出现了不同。
情节(x)持有在;情节(412年[412],[100 - 550],“r”) 抓住离开;
绘制去噪信号。
情节(SIGDEN)标题('去噪')
你也可以用小波去噪图像。在图像中,边缘是图像亮度变化迅速的地方。图像去噪时保持边缘对图像的感知质量至关重要。虽然传统的低通滤波去除噪声,但它经常平滑边缘,并对图像质量产生不利影响。小波可以在去除噪声的同时保留重要的感知特征。
加载嘈杂的图像。使用图像wdenoise2
使用默认设置。默认情况下,wdenoise2
使用Biorthogonal小波Bior4.4
.若要显示原始图像和去噪图像,请不要提供任何输出参数。
负载(“jump.mat”) wdenoise2(跳)
注意,图像中的边缘并没有被去噪过程平滑掉。