在非常基本的方面进行平滑处理的是什么


17

什么是平滑,我该怎么做?

我在Matlab中有一个数组,它是语音信号的幅度谱(FFT的128点的幅度)。如何使用移动平均线对此进行平滑?据我了解,我应该采用一定数量的元素的窗口大小,取平均值,这将成为新的第一个元素。然后将窗口向右移动一个元素,取平均值即成为第二个元素,依此类推。那真的是这样吗?我不确定自己,因为如果这样做,最终结果将少于128个元素。那么它是如何工作的以及如何帮助平滑数据点呢?还是有其他方法可以使数据平滑?

编辑:链接到后续问题


对于一个频谱,您可能想要对多个频谱(在时间维度上)进行平均,而不是沿单个频谱的频率轴进行移动平均值
endolith 2012年

@endolith都是有效的技术。频域中的平均时间(有时称为丹妮尔周期图)与时域中的窗口化相同。平均多个周期图(“频谱”)是一种尝试模仿真实周期图(称为韦尔奇周期图)所需的总体平均。另外,就语义而言,我认为“平滑”是非因果的低通滤波。请参阅Kalman滤波与Kalman平滑,Wiener滤波与Wiener平滑等。这里有一个很重要的区别,它与实现有关。
布赖恩

Answers:


23

可以用多种方法进行平滑处理,但是从非常基本和笼统的意义上讲,这意味着您可以通过将信号元素与其相邻元素进行混合来使信号均匀。您可以稍微涂抹/模糊信号以消除噪音。例如,一种非常简单的平滑技术是将每个信号元素重新计算f(t)为原始值的0.8,再加上每个相邻元素的0.1:

f'(t) = 0.1*f(t-1) + 0.8*f(t) + 0.1*f(t+1)

注意乘法因子或权重是如何加起来的。因此,如果信号相当恒定,则平滑不会对其产生太大影响。但是,如果信号包含突然的抖动变化,则其邻居的贡献将有助于稍微消除该噪声。

在此重新计算功能中使用的权重可以称为内核。一维高斯函数或任何其他基本内核都应针对您的情况进行处理。

一种特定的平滑示例:

上图:信号不平滑下图
:信号平滑

在此处输入图片说明

一些内核的示例:

在此处输入图片说明


那么这是加权移动平均线吗?称为窗口大小为3的窗口吗?那么第一个和最后一个元素呢?如果我有一个由128个元素组成的数组,而我想使用一个由16个或32个元素组成的窗口,该如何修改呢?

@ user13267:是的,您可以说平滑内核是加权移动平均值。如果您使用统一内核(请参见第二张图片),那只是一个简单的移动平均值。您对窗口的大小是正确的。为了处理边缘,有三种基本方法:1)对数据进行零填充,2)重复最后一个值,3)镜像信号。在所有情况下,您都需要假装一些数据,以便内核不会陷入虚无。
Junuxx 2012年

零填充算不上是虚无?在移动平均过程结束时,我的新“平均”数据集应与原始数据集具有相同数量的数据,不是吗?那么,如果我在开始或结尾处将其零填充,或者重复最后一个数据,它是否会在数组边缘偏移平均值?镜像信号对数据数量有何帮助?是否有任何简单的教程可以显示32位数据点和4或5窗口大小的处理过程?

2
如果希望平滑后的数据集具有与原始数据集相同的长度,则必须在端点处“组成”数据。您为如何创建该数据所做的任何选择都会以某种方式使平均值产生偏差。将越界数据视为真实数据集的镜像(即,假设样本N + 1与N-1相同,N + 2 = N-2等)将保留该数据的频谱特性。信号零端部分,而假设零或非零重复将使所有频率似乎都在端部滚降。
罗素·博罗戈夫

8

除了Junuxx的好答案外,我还想讲几点。

  • 平滑与过滤有关(不幸的是,维基百科文章含糊不清)-您应根据其属性选择平滑器。

  • 我的最爱之一是中值过滤器。这是非线性滤波器的示例。它具有一些有趣的特性,它保留了“边缘”,并且在大噪声下也非常坚固。

  • 如果您有一个模型,您的信号如何表现为卡尔曼滤波器,则值得一看。它的平滑实际上是基于观察的信号贝叶斯最大似然估计。


4

平滑意味着使用来自相邻样本的信息以改变相邻样本之间的关系。对于有限向量,在末端,一侧没有相邻信息。您的选择是:不要对端点进行平滑/过滤,接受较短的结果平滑向量,对数据进行补偿和平滑(取决于两端预测的准确性/有用性),或者在以下位置使用不同的非对称平滑内核两端(最终会缩短信号中的信息内容)。


3

您可以找到完整的matlab代码,以平滑变化的抽头长度的移动平均滤波器。www.gaussianwaves.com/2010/11/moving-average-filter-ma-filter-2/


1

其他人提到了如何进行平滑处理,我​​想提及为什么进行平滑处理。

如果您对信号进行了适当的过采样,则从一个采样到下一个采样(采样=时间点,像素等)的变化将相对较小,并且有望获得总体上平滑的外观。换句话说,您的信号包含很少的高频,即信号成分的变化速率与采样速率相似。

但是,测量结果经常会被噪声破坏。在第一个近似中,我们通常认为噪声遵循高斯分布,均值零且具有一定的标准偏差,只需将其添加到信号顶部即可。

为了减少信号中的噪声,我们通常做出以下四个假设:噪声是随机的,在样本之间不相关,平均值为零,并且对信号进行了充分的过采样。基于这些假设,我们可以使用滑动平均滤波器。

考虑例如三个连续的样本。由于信号是高度过采样的,因此可以认为基础信号是线性变化的,这意味着三个采样之间的信号平均值将等于中间采样处的真实信号。相反,噪声的平均值为零,并且不相关,这意味着其平均值应趋于零。因此,我们可以应用三样本滑动平均滤波器,在该滤波器中,我们将每个样本替换为其自身及其两个相邻邻居之间的平均值。

当然,窗口越大,噪声平均到零的可能性就越大,但是我们对真实信号线性度的假设就越少。因此,我们必须进行权衡。试图同时兼顾两者的一种方法是使用加权平均值,在此方法中,我们给较远的样本赋予较小的权重,以便我们对较大范围内的噪声影响进行平均,而在真实信号偏离线性范围时,不会对其加权太大假设。

如何设置权重取决于噪声,信号和计算效率,当然还取决于消除噪声和切入信号之间的权衡。

请注意,最近几年做了很多工作,使我们可以放宽这四个假设中的一些假设,例如,通过设计具有可变滤波器窗口(各向异性扩散)的平滑方案,或者不真正使用窗口的方案完全(非本地方式)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.