来自系列:理解小波
Kirthi Devleker,Mathworks
该视频概述了使用MATLAB与离散小波变换的去噪涉及的步骤®。了解这种去噪技术如何与其他去噪技术进行比较。
在此视频中,我们将讨论如何使用MATLAB使用离散小波变换来表示信号。让我们加载信号并在Matlab中绘制它。这里有两个信号:第一个是原始信号,第二个是原始信号,其中包含一些噪音。我们这里的目标是使用离散小波变换来表示噪声信号。
很快你会看到在Matlab中这样做是多么容易。以下是小波去噪所涉及的步骤的概述:
1.您的第一步是获得近似和细节系数。通过执行多级小波分解来执行此操作。回想一下,离散小波变换将信号分成低通子带(也称为“近似水平”)和高通子带(也称为“细节电平”)。您可以在多个级别或尺度下分解近似子带以进行精确分析。
第二步是分析细节并识别合适的阈值化技术。我稍后会在视频中覆盖。
第三步是阈值细节系数并重建信号。让我们首先使用函数Wavedec执行多级小波分解。我们将使用Sym6小波并将嘈杂的信号分解为5个级别。该功能随着级别的细节系数输出第五级近似系数。第一级细节系数捕获信号的高频。
大多数高频内容包括信号中存在的噪声。然而,部分高频的一部分由信号中的突然变化构成。有时这些突然更改携带含义,您希望在删除噪声的同时保留此信息。让我们仔细看看细节子带。要提取系数,可以使用DetCoeF功能并对每个级别绘制系数。我正在使用帮助函数来提取和绘制系数。您在这里看到的是原始信号,以及详细信息绘制了一到五个级别。请注意,随着尺度或水平的增加,活动随着规模的增加而减少。因此,我们将专注于一个细节级别,并忽略其余的。我们的目标是在摆脱噪音的同时保留这些剧烈的变化。 One way to do this is by scaling the detail coefficients by a threshold. There are four main techniques available in MATLAB to help you compute a threshold for the purpose of denoising. The universal threshold is the simplest to compute and is computed using this formula.
手动计算其他三种去噪技术的阈值并不直接。相反,您可以使用MATLAB为此,因此您可以专注于使用阈值,而不必担心如何计算它。有两种应用阈值的方法。有两个阈值操作,软阈值和硬阈值。在这两种情况下,幅度小于阈值的系数被设置为零。这两个阈值操作之间的差异在于它们如何应对比阈值更大的系数。在软阈值的情况下,通过从系数值中减去阈值,而在硬阈值下,阈值大于阈值的幅度大的系数幅度缩小,而在硬阈值下,幅度大于阈值的系数不变。回到我们的示例,让我们使用软阈值技术缩小,让我们使用软阈值技术缩小。如果您不确定选择哪种技术,软阈值是一个很好的起点。
可以使用单个函数来完成阈值和重建来自新系数的信号的整个过程,如这里所示。第一个参数f是噪声信号。第二个参数指定阈值化技术;在这种情况下,肯定会缩小。S表示软阈值,参数SLN指示使用基于第一级系数的单一噪声估计来指示阈值重构。级别表示小波分解级别,最后一个参数指定在这种情况下为sym6的小波。函数Wdde执行输入信号的多级分解,计算并将阈值应用于细节系数,以新的细节系数重建信号,并将其提供为输出。让我们现在使用Plot命令将嘈杂信号与去噪信号进行比较,这是上一步的输出。显然,去噪版本噪音较小。
您还可以比较我们之前讨论的去噪技术的表现,以及其他去噪技术,如Savitzky-Golay滤波或移动平均技术。您可以看到小波去噪方法优于其他去噪技术。因此,使用小波技术来表示信号的益处是清晰的。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。