抖动:噪声信号可以改善它

图片

引言


在本系列文章的第一部分中我们将考虑抖动的理论方面,一些历史及其在一维信号和采样中的应用。 我将尝试对离散化错误进行频率分析,并讨论抖动如何帮助纠正它们。 基本上,这是一篇理论文章,因此,如果您对更实际的应用感兴趣,请等待下一部分。

可以在此处找到用于再现结果的Mathematica笔记本,并且可以在此处找到pdf版本。

什么是抖动?


抖动可以描述为故意/故意将噪声引入信号中,以防止由于采样或二次采样而导致的大规模/低分辨率误差。

如果您曾经合作过:

  • 音频信号
  • 90年代调色板图像格式

他们应该遇到抖动选项,这要归功于噪声和低分辨率伪像的添加,从而“神奇地”改善了声音或图像的质量。

但是,我在Wikipedia上发现了一个有关第一个定义和使用抖动的方法的相当令人惊讶的事实:

在第二次世界大战期间出现了抖动的第一个应用。 轰炸机使用机械计算机来导航和计算炸弹的轨迹。 奇怪的是,这些计算机(装有数百个齿轮的齿轮箱)在飞机上飞行时比在地面上运行时更准确。 工程师意识到,由飞机引起的振动可以减少由粘性运动部件引起的误差。 在地球上,它们以短促的动作运动,而在空中,它们的运动更为连续。 小型振动电机内置于计算机中,其振动被称为中英文单词“ didderen”的“抖动”,意思是“颤抖”。 如今,当您敲开机械仪表以提高其精度时,您会应用抖动。 从少量的意义上讲,当少量使用时,抖动成功地将数字化系统转换成更模拟的形式。

-Ken Polmann, 数字音频原理

这是一个令人鼓舞且有趣的历史事实,我理解为什么它可以让我们通过随机中断机械振动的反馈周期来避免计算和共振中的偏差。

但是,有了足够的故事,让我们首先来看一维信号(例如音频)中的抖动过程。

通过抖动恒定信号进行采样


我们将首先分析世界上最无聊的信号-恒定信号。 如果您对与声音有关的信号的数字处理有所了解,您可以说:但是您答应考虑音频,并且从定义上说,声音中没有恒定的成分! (此外,在软件和声音处理设备中,有意消除了所谓的DC偏移 。)

的确如此,不久我们将研究更复杂的功能,但我们将再次开始。

想象一下,我们正在对归一化的浮点信号执行1位采样。 这意味着我们只处理有限的二进制值0或1。

如果信号为0.3 ,则不抖动的简单舍入将是最无聊的功能-仅为

误差也恒定且等于0.3 ,因此平均误差等于0.3 。 这意味着我们在信号中引入了相当大的偏差,并且完全丢失了原始信号的信息。

我们可以尝试抖动该信号并查看结果。

在这种情况下,抖动(使用舍入功能时)仅会应用普通的随机白噪声(每个元素的随机值,会创建均匀的噪声频谱),并在采样前为信号添加随机间隔(-0.5、0.5)。

QuantizedDitheredSignal =
舍入[constantSignalValue + RandomReal []-0.5]和/ @范围[sampleCount];



在这里很难看到什么,现在离散化的结果只是一组随机的1和0。 具有(预期)很多零。 信号本身本身并不是特别令人感兴趣,但是错误时间表和平均错误却非常令人感兴趣。


因此,正如我们预期的那样,误差也有所不同,但令人恐惧的是有时误差会变大(绝对值0.7)! 也就是说,最大误差不幸地变得更糟,但是平均噪声很重要:

均值[ditheredSignalError]
0.013

比初始误差0.3更好。 对于大量样本,此误差将趋于零(达到极限)。 因此,常数分量的误差变得很小,但是让我们看一下所有误差的频率图。


红色图形/脉冲串=在没有抖动的情况下错误的频谱(恒定信号,没有频率)。 黑色-使用白噪声抖动。

一切都变得越来越有趣! 这表明从抖动后得出的第一个结论是在多个频率之间分配采样误差/偏差

在下一节中,我们将了解这将如何帮助我们。

频率灵敏度和低通滤波


上面,我们观察到采样的恒定信号的抖动:

  • 他增加了最大误差。
  • 平均误差几乎为零。
  • 在误差频谱中增加了恒定的白噪声(具有完整的频谱覆盖范围),从而减少了低频误差。

它本身对我们不是很有用。但是,我们没有考虑将任意数学函数/信号离散化。 我们考虑人类会感知到的信号。 显然,人类的感知是有限的。 以下是一些示例:

  • 我们的视野有清晰度极限。 许多人患有近视,并且没有戴眼镜,他们会看到远处物体的模糊图像。
  • 我们认为细节的平均尺度比非常高或非常低的频率要好得多(非常平滑的渐变的小细节是不可见的)。
  • 我们的听力在一定的频率范围内工作(20 Hz-20 kHz,但会随着时间的推移而变差),我们对中间范围-2 kHz-5 kHz最敏感。

因此,更接近感知频率上限范围的频率中的任何误差将不那么明显。

此外,我们的媒体设备越来越好,提供了更多的过采样 。 例如,在电视和显示器方面,我们采用了“视网膜”技术和4K显示器(在该显示器上看不到单个像素),在声音方面,我们使用的文件格式的采样率至少为44 kHz,即使对于通常无法播放的廉价扬声器也是如此超过5-10 kHz。

这意味着我们可以通过执行低通滤波来近似感知到的信号外观。 在图中,我执行了低通滤波(左侧的零填充是一个“上升”):


红色-所需的非采样信号。 绿色-具有抖动的离散信号。 蓝色是此信号的低通滤波器。

信号开始看起来更接近原始的非采样功能!

不幸的是,我们开始看到在原始信号中非常明显且不存在的低频。 在本系列的第三部分中,我们将尝试在蓝噪声的帮助下对其进行修复。 同时,这是带有伪噪声函数的图形的外观,伪噪声函数的频率要低得多:

这是可能的,因为我们的伪随机序列具有以下频谱:


但是,让我们看一下简单的,恒定的函数。 看一下正弦波(如果您熟悉傅立叶定理,您就会知道它是任何周期性信号的基础!)。

正弦波采样


如果我们以1位采样对正弦波采样,则会得到一个简单的矩形信号。


矩形信号非常有趣,因为它既包含基本频率又包含奇次谐波

这是一个有趣的特性,已在模拟减法合成器中积极使用,以产生空心/铜质乐器的声音。 减法合成可以获取复杂,和谐的声音并对其进行滤波,从而消除了某些频率(滤波器参数随时间变化),从而使声音具有所需的形状。

方波频谱:


但是在这篇文章中,我们对采样错误更感兴趣! 让我们创建一个误差图,以及一系列误差频率:


在这种情况下,情况要好得多-平均误差接近零! 不幸的是,我们仍然有许多非常不理想的低频,它们非常接近我们的主频率(幅度减小的奇数乘数)。 这种现象称为混叠或抖动噪声-原始信号中似乎没有出现频率,而且频率很大。

即使是低通滤波也无法显着帮助信号。 该错误的发生频率很多:


离散正弦波低通滤波


采样正弦波精度

让我们看一下添加抖动后情况如何变化。 乍一看,几乎没有任何改进:


但是,如果我们将其视为图像,则看起来会更好:


注意,采样误差再次分布在不同的频率之间:


看起来很有前途! 特别是考虑到现在我们可以尝试过滤:


这是一个略微失真的正弦波,但与不抖动的版本相比,它看起来比原始版本更接近原始波形,除了非对称滤波器引入的相移之外(我不会在此解释;我只能说可以通过应用对称滤波器来解决问题):


红色是原始的正弦波。 绿色-低通滤波信号,无抖动。 蓝色-具有抖动的低通滤波信号。

两种错误的图形均从数字上证实了该错误小得多:


红色-未经抖动的低通滤波信号的误差。 蓝色-带有抖动的低通滤波信号的误差。

最后,让我们简要地看一下具有更好抖动功能的信号,该信号仅包含高频:


顶部图像是白噪声的函数。 较低的图像是包含较高频率的函数。


如果不考虑由滤波器引起的相移,则该版本具有低通滤波,抖动和改进的功能-几乎完美的结果!

最后,比较所有三个误差谱:


红色-没有抖动的采样误差频谱。 黑色-具有抖动白噪声的采样误差频谱。 蓝色-高频抖动时的采样误差频谱。

总结


这是系列结尾的第一部分。 主要发现:

  • 抖动会在多个频率之间分配采样误差/偏差,这取决于抖动功能。 他们不专注于低频。
  • 一个人对任何信号(声音,视觉)的感知在非常特定的频率范围内效果最佳。 信号通常在感知不敏感的感知频谱边界处过采样。 例如,标准音频采样率使您可以重现大多数成年人根本听不到的信号。 由于前面的段落,这使得使用抖动和将误差移入该频率范围的想法非常有吸引力。
  • 不同的噪声函数会创建可使用的不同误差谱,知道哪个误差谱是最理想的。

在下一部分中,我们将研究各种抖动功能-我在本文中使用的(黄金比例系列)和蓝色噪声。

Source: https://habr.com/ru/post/zh-CN481386/


All Articles