Skip to content

Latest commit

 

History

History
283 lines (191 loc) · 30.6 KB

10 - 信号处理.md

File metadata and controls

283 lines (191 loc) · 30.6 KB

10 - 信号处理

在图形学中,我们经常处理带有连续变量的函数:图像是您看到的第一个例子,但随着您继续探索图形学,您将遇到更多的例子。从本质上讲,连续函数不能在计算机中直接表示,我们必须用有限位数来表示它们。表示连续函数的最有用的方法之一是使用函数的采样:只需将函数的值存储在许多不同的点上,并在需要时重建它们之间的值。

到目前为止,您已经熟悉了使用二维像素网格表示图像的思想,因此您已经看到了一个采样过的表示!想象一下由数码相机拍摄的图像:由相机镜头形成的场景的实际图像是图像平面上位置的连续函数,相机将该函数转换为二维采样网格。从数学上讲:采样将$R^2\to Color$型的函数转换为$Z^2\to Color$型的函数。

采样表示的另一个例子是 2D 数字化平板电脑,例如平板电脑的屏幕或艺术家使用的单独的笔平板电脑。在这种情况下,原始函数是手写笔的运动,它是一个随时间变化的二维位置,或者是$R\to R^2$类型的函数。数字化仪在多个时间点测量触控笔的位置,从而得到一个二维坐标序列,或$Z→R^2$型函数。 动作捕捉系统对附着在演员身体上的特殊标记做完全相同的事情:它随着时间的推移获取标记的 3D 位置(R→R3),并将其转化为一系列瞬时位置测量(Z→R3)。 继续提升维度,用于非侵入性检查人体内部的医学 CT 扫描仪,测量密度作为人体内部位置的函数。扫描仪的输出是密度值的 3D 网格:它将身体的密度(R3→R)转换为实数的 3D 数组(Z3→R)。

这些例子看起来不同,但实际上它们都可以使用完全相同的数学来处理。在所有情况下,一个函数都是在一个或多个维度的栅格点上采样而来的,并且,我们都需要能够从采样数组中重建原始的连续函数。

从 2D 图像的例子来看,像素似乎已经足够了,一旦相机将图像离散化,我们就再也不需要考虑连续函数了。但是,如果我们想让图像在屏幕上变得更大或更小呢?事实证明,最简单的算法执行得很差,它引入了明显的视觉伪影,称为混叠。解释混叠发生的原因和理解如何防止混叠需要采样理论的数学知识。我们从理论中得到的算法相当简单,但其背后的推理以及使其表现良好的细节可能很微妙。

当然,在计算机中表示连续函数并不是图形学所独有的,采样和重建的想法也是如此。采样表示用于从数字音频到计算物理的应用程序中,而图形只是相关算法和数学的一个(绝不是第一个)用户。自 20 世纪 20 年代以来,关于如何进行采样和重建的基本事实在通信领域已经为人所知,并且在 20 世纪 40 年代以我们使用它们的确切形式陈述。

10.1 数字信号:1D 采样

虽然采样表示已在电信领域使用多年,但随着前十年音频数字录音的使用增加,1982 年推出的光盘是采样的第一个明显的消费者应用。

在录音中,麦克风将空气中以压力波形式存在的声音转换成随时间变化的电压,这相当于对麦克风所在点处变化的气压进行测量。这种电信号需要以某种方式存储,以便在以后回放,并发送到扬声器,扬声器通过与电压同步移动隔膜将电压转换回压力波。 记录音频信号的数字方法使用采样:模数转换器(A/D 转换器,或 ADC)每秒测量电压数千次,产生一个整数流,可以很容易地存储在任何数量的介质上,例如录音棚中的计算机上的磁盘上,或传输到另一个位置,例如便携式音频播放器中的存储器。在回放时,以适当的速率读出数据并将其发送到数模转换器(D/A 转换器,或 DAC)。DAC 根据它接收的数字产生电压,并且,如果我们采集足够的样本来表示电压的变化,所产生的电信号与输入相同。

事实证明,实现良好复制所需的每秒采样数取决于声音的高频程度。如果我们试图记录短笛或锣,那么对于复制弦低音或踢鼓来说,采样率会产生奇怪的声音结果;但是更高的采样率可以很好地再现这些声音。为了避免这些欠采样伪像,数字录音机对 ADC 的输入进行过滤,以去除可能导致问题的高频。

另一种问题出现在输出端。DAC 产生的电压值在每次新样本进入时都会改变,但在下一个样本之前保持不变,产生阶梯状的图形。这些阶梯的作用类似于噪声,增加了高频的、依赖于信号的嗡嗡声。为了消除这种重建伪像,数字音频播放器对 DAC 的输出进行过滤,以剔除波形。

10.1.1 采样伪影和锯齿

数字音频记录链可以当作图形中采样和重建过程的具体模型。同样类型的欠采样和重建伪影也发生在图像或图形中的其他采样信号中,解决方案是相同的——在采样之前进行滤波,并在重建期间再次过滤。 上图显示了由于采样频率太低而产生伪影的具体例子。这里,我们使用两种不同的采样频率对一个简单的正弦波进行采样:顶部每周期 10.8 个采样,底部每个周期 1.2 个采样。较高的采样率产生一组明显能很好地捕捉信号的采样,但由于采样率较低而产生的样本与低频正弦波的样本难以区分

一旦采样完成,就不可能知道两个信号——快正弦波或慢正弦波——中的哪一个是原始的,因此,没有一种单一的方法可以在这两种情况下正确地重建信号。由于高频信号是假装是低频信号,这种现象被称为混叠。

混叠伪影:由于收集时采样率不足,导致重建后的数据看起来很诡异 例如,一个以 10 kHz 响起的铃声,在以 8 kHz 的频率采样后,重建后听起来像 6 kHz 的声音。

每当采样和重建中的缺陷以惊人的频率导致伪迹时,混叠就会出现。在音频中,混叠的形式是听起来奇怪的额外音调——一个以 10 kHz 响起的铃声,在以 8 kHz 的频率采样后,变成了 6 khz 的音调。在图像中,锯齿通常采用摩尔纹图案的形式,这些图案是样本网格与图像中的常规特征相互作用的结果。

合成图像中混叠的另一个例子是只使用黑白像素渲染的直线上的台阶。这是一个小尺度特征(线条的锋利边缘)在不同尺度上的例子(对于斜率低的线条,楼梯台阶会非常长)。

采样和重建的基本问题可以简单地理解为特征太小或太大,但一些更定量的问题更难回答:

  1. 什么样本率足够高才能保证好的结果?
  2. 什么类型的滤波器适合采样和重建?
  3. 需要多大程度的平滑来避免混叠?

10.2 卷积

$$Convolution=f,\star,g$$ 卷积既可以应用于连续函数(函数 f (x)定义为任何实参数 x),也可以应用于离散序列(函数 a[i]仅定义为整数参数 i)。可以应用于定义在一维,二维或高维域上的函数(即一个,两个或多个参数的函数)。 $$(a\star b)[i]=\sum_{j=i-r}^{i+r} a[j],b[i-j]$$ 性质: $$(a\star b)[i]=(b\star a)[i]$$ $$(a\star(b\star c))[i]=((a\star b)\star c)[i]$$ $$(a\star(b+c))[i]=(a\star b+a\star c)[i]$$

$$(f\star g)(x)=\int_{-\infty}^{+\infty} f(t)g(x-t)dt$$

狄拉克脉冲函数 or 狄拉克 Delta 函数

离散-连续函数卷积 $$(a\star f)(x)=\int_{i}a[i]f(x-i)$$ 离散-连续卷积与样条线密切相关,对于均匀样条线(例如均匀 B-样条线),其参数化样条曲线正是样条基函数与控制点序列的卷积

二维卷积 $$(a\star b)[i,j]=\sum_{i'}\sum_{j'}a[i',j'],b[i-i',j-j']$$ $$(f\star g)(x,y)=\int\int f(x',y')g(x-x',y-y')dx'dy'$$ $$(a\star f)(x,y)=\sum_i\sum_j a[i,j]f(x-i,y-j)$$

10.3 卷积滤波器

滤波模板缩放$f_s(x)=\frac{f(x / s)}{s}$

当一个连续的过滤器被用来从离散的序列重建一个连续的函数时,如果它被用来重建一个连续的函数,得到的函数正好是采样点上的样本值--也就是说,它‘连接这些点’而不是产生一个只在点附近的函数。内插过滤器就是那些整数 i 的那些过滤器 f(图 10.25)。 一个具有负值的过滤器有振铃或超调:它会在被过滤函数值的急剧变化周围产生额外的振荡。

例如,Catmull-RomFilter 在两边都有负瓣,如果你用它过滤一个阶跃函数,它会夸大这一步骤位,导致函数值下冲为 0,过冲为 1(图 10.26)。

如果连续滤波器将把恒定序列重构为恒定函数,则它是无纹波的(图 10.27)。这相当于要求任何整数间隔网格上的滤波器和为 1: 上述的滤波在他们的自然半径上都是无波纹的,除了高斯滤波。但是当它们在非整数尺度上使用时,它们都不一定是无纹波的。如果需要消除离散-连续卷积中的纹波,很容易做到这一点:将每个计算样本除以用于计算它的权重之和: $$(\bar{a\star f})(x)=\frac{\sum_i a[i]f(x-i)}{\sum_ia[i]}$$ 重构的函数会继承重构滤波的连续性,所以滤波的连续性很重要。

可分离滤波器$$f_2(x,y)=f_1(x)f_1(y)$$

10.4 图像的信号处理

到目前为止,我们已经在摘要中讨论了采样、滤波和重构,主要使用一维信号作为示例。但正如我们在本章开头所观察到的,信号处理在图形中最重要和最常见的应用是采样图像。让我们仔细看看这一切是如何应用于图像的。

10.4.1 使用离散滤波器的图像滤波

也许卷积最简单的应用是使用离散卷积处理图像。一些最广泛使用的图像处理程序的功能是简单的卷积滤波器。图像的模糊可以通过卷积许多常见的低通滤波器,从 box 到高斯滤波。高斯滤镜创建一个非常平滑的模糊。

与模糊相反的是锐化,一种方法是使用“反锐化蒙版”程序:从原图中减去一张模糊图像。alpha 用来保护新锐化图像的亮度。 d 时离散脉冲。alpha 是锐化的程度。

另一个组合两个离散滤波器的例子是阴影。通常采用一个模糊的、移动的物体轮廓的副本来创建一个柔和的阴影。我们可以将移动操作表示为具有偏离中心脉冲的卷积:

10.4.2 图像采样种的抗锯

在图像合成中,我们经常有一个任务是产生一个图像的采样表示,我们有一个连续的数学公式,(或者至少一个过程,我们可以用来计算任何点的颜色,而不仅仅是整数像素位置)。光线跟踪是一个常见的例子。在信号处理中,我们有一个连续的 2D 信号我们需要在一个规则的 2D 网格上采样(图像)。 如果我们采样图像而没有任何特殊措施,结果将显示出各种混叠伪影,在图像中的锐利的边缘处,我们看到阶梯状的伪影,称为锯齿状,在重复图案的区域,我们看到宽的条纹,称为莫尔图案。

这里的问题是图像包含太多的小尺度特征,我们需要在采样前通过滤波使其平滑。我们需要在像素位置周围的区域内对图像进行平均,而不仅仅是在单个点处取值。 第四章讨论了实现这一目标的具体方法。一个简单的过滤器,如一个 box 滤波器将改善尖锐边缘的外观,但它仍然产生一些莫尔纹。高斯滤波器非常平滑,它对莫尔图更有效,但代价是整体上更加模糊。这两个例子说明了锐度和混叠之间的权衡,这是选择抗锯齿滤波器的基础。

10.4.3 重构与重采样

最常见的图像操作之一是重采样——改变采样率或改变图像大小,在这之中滤波器的选择是至关重要的。 假设我们用数码相机拍摄了一张 3000 × 2000 像素的图像,我们希望将其显示在只有 1280 × 1024 像素的显示器上。为了使它适合,同时保持 3:2 的宽高比,我们需要重新采样到 1278 × 852 像素。我们该怎么做呢?

解决这个问题的一种方法是把这个过程想象成像素的减少,尺寸比例在 2 到 3 之间,所以我们必须在我们保留的像素之间减少一到两个像素。 用这种方式缩小图像,但是结果的质量很低。然而,像素下降非常快,在交互式操作期间预览调整大小的图像是一个合理的选择。

考虑调整图像大小的方法是将其视为重采样操作:我们希望采样的一组样本来自新的图像,我们通过在有输入重构的连续函数上采样。这么看,它只是一系列标准的图像处理操作:首先,我们从输入样本中重建连续函数,然后像采样任何其他连续图像一样采样该函数。

为了为每个输出样本计算一个值,我们需要以某种方式计算样本之间的图像值。像素丢弃算法给了我们一种方法:只要取输入图像中最近的样本值,并使其作为输出值,这完全等同于用 1 像素宽的 box 滤波来重构图像然后进行点采样。

当然,如果选择像素丢弃或其他非常简单的滤波的主要原因是性能,人们永远不会实现这种方法作为常规重构-重采样流程的一种特殊的方法。事实上,由于不连续性,box 滤波在常规流程中很难使用。但是,对于高质量重采样,架构中会提供一定的灵活性。 这个过程通过将输入序列与连续滤波器进行卷积,然后对它进行点采样来重建连续图像。并不是说这两个操作顺序发生——连续函数只在理论上存在,并且它的值只在采样点上计算。但是从数学上讲,这个函数计算函数$a\star f$的一组点采样。

但是,这个点采样似乎是错误的,因为我们刚刚才提到一个信号应该用一个适当的平滑滤波器采样以避免混叠。我们应该用一个采样滤波器 g 卷积重构过的函数,相当于: $$g\star (f\star a)=(g\star f)\star a$$ 我们可以将采样滤波器与重构滤波器一起使用——我们只需要计算一次。这种组合的重构和采样滤波器被称为重采样滤波器。

重构滤波 + 采样滤波 = 重采样滤波

当重采样图像时,我们通常以旧图像为单位指定一个源矩形,它指定我们希望保留在新图像中的部分。例如,我们用来重新采样整个图像的矩形是(-0.5, nx-0.5)x(-0.5,ny-0.5)。给定源矩形(xl,yh)x(yl,yh),用于新图像的样本间距为(xh-xl)/nx,和(yh-yl)/ny。

修改 1D 伪代码以使用该约定并将对重构函数的调用扩展到隐含的双循环中,我们得到 这个例程包含重采样图像的所有基础。 最后一个需要解决的问题是在图像的边缘做什么:

  1. 只在序列的末尾停止循环。这相当于在图像的四周填充零。
  2. 将所有数组访问裁切到序列的末尾,即当我们想要访问 a[−1]时返回 a[0]。这相当于通过扩展最后一行或最后一列来填充图像的边缘(常值填充边缘)。
  3. 当我们接近边缘时修改过滤器,使其不会超出序列的边界。

当我们重新采样整个图像时,第一个选项会导致暗淡的边缘。第二种选择很容易实现。第三个可能是表现最好的。 修改图像边缘附近的滤波器的最简单方法是对其进行重新规范化——将滤波器除以图像内的滤波器部分的总和。这样,滤波器对实际图像样本的相加总是为 1(加权和为 1),因此它保留了图像亮度。 为了提高性能,最好将边缘(需要重新规范化)的过滤器半径内的像素带与中心(包含更多像素且不需要重新规范化)分开处理。

重采样滤波器的选择很重要。有两个独立的问题:过滤器的形状和大小(半径)。由于滤波器同时作为重构滤波器和采样滤波器,这两个的要求都会影响滤波器的选择。 对于重建,我们希望滤波器足够平滑,以避免在放大图像时出现混叠现象,并且滤波器应该是无纹波的。对于采样,滤波器应该足够大以避免欠采样,并且足够平滑以避免莫尔曲线伪影。

通常,我们会选择一个滤波器形状,并根据输入和输出的相对分辨率对其进行缩放。两个分辨率中较低的一个决定了滤波器的大小。当输出比输入采样更粗(下采样,或缩小图像)时,适当采样所需的平滑大于重建所需的平滑,因此我们根据输出样本间距来调整滤波器的大小。另一方面,当输出更精细采样(上采样,或放大图像)时,重构所需的平滑占主导地位,因此滤波器的大小由输入采样间隔决定。

选择过滤器本身是速度和质量之间的权衡。box 滤波(当速度是最重要的时候),帐篷过滤器(中等质量),或分段三次(优秀的质量)。在分段三次情况下,通过在 fB 和 fc 之间插值,可以调整平滑度;Mitchell—Netravali 滤波器是一个不错的选择。

就像图像滤波一样,可分离的滤波器可以提供一个显著的加速。基本思想是先对所有行进行重新采样,生成一个宽度改变但高度不变的图像,然后对图像的列进行重新采样以产生最终结果。修改前面给出的伪代码以使其利用这种优化是相当简单的。

10.5 采样定理

10.5.1 傅里叶变换

傅里叶变换背后的基本思想是通过利用所有频率的正弦波相加来表示任何函数。通过对不同频率使用适当的权重,我们可以安排正弦波加起来成为我们想要的任何(合理的)函数。例如,方波可以用一系列正弦波来表示: $$\sum_{n=1,3,5,\dots}^{\infty} \sin{2\pi nx}$$ 这个傅立叶级数从频率为 1.0 的正弦波开始(频率:$f=w / 2\pi$),与方波相同,其余的项添加越来越小的修正以减少波纹,并在极限下精确地再现方波。注意,和中的所有项的频率都是方波频率的整数倍。这是因为其他频率会产生与方波周期不同的结果。 一个令人惊讶的事实是,信号并不一定是周期性的,以便以这种方式表示为正弦波的和:一个非周期信号只需要更多的正弦波。 我们不对离散的正弦波序列求和,而是对连续的一组正弦波进行积分。例如对于 box 函数: 积分公式将无限多个余弦相加,用权(sin)/u 加权频率 u 的余弦。当我们包括越来越高的频率时,结果收敛于箱函数。当函数 f 以这种方式表示时,这个权重是频率 u 的函数,称为的傅里叶变换($\hat{f}$)。函数$\hat{f}$告诉我们如何通过对一系列正弦曲线进行积分来建立 f: 方程式被称为傅里叶逆变换(IFT)。

请注意,在方程式(10.7)中,复数指数 e 已替换前一个方程式中的余弦。 此外,f 是一个拥有复数的函数。需要复数机制来控制正弦函数的相位和频率;这对于表示任何在零点上不对称的函数是必要的。f 的大小是所谓的傅立叶谱。这些知识对我们来说足够了,毕竟我们不需要关心相位或是直接使用复数。

使用 f 求出$\hat{f}$的过程非常相似: 方程是众所周知的(正向)傅里叶变换(FT)。指数符号是正向和反向傅里叶变换之间唯一的区别,它实际上只是一个技术细节。为了我们的目的,我们可以把 FT 和 IFT 看作是同一个运算。

有时,f—f 表示法不方便,然后,我们将用$F{f}$表示 f 的傅里叶变换,用$F^{-1}{f}$表示 f 的逆傅里叶变换。

一个函数及其傅里叶变换函数有一些使用的性质,比如:

  • $$\int (f(x))^2dx=\int (\hat{f}(x))^2dx$$

  • $$F{af}=aF{f}$$

  • $$F{f(x / b)}=b\hat{f}(bx)$$ 这意味着,如果我们对不同宽度和高度的函数族感兴趣,那么我们只需要知道一个标准函数的傅立叶变换,我们可以很容易地知道该函数的所有缩放版本和扩张版本的傅里叶变换。

  • f 的平均值是$\hat{f}(0)$,毕竟$\hat{f}(0)$应当是$\hat{f}$的 0 频率分量。

  • 如果 f 是实数函数,那么$\hat{f}$应当是一个偶函数。如果 f 是偶函数,那么$\hat{f}$是实数函数。

10.5.2 卷积与傅里叶变换

傅里叶变换的最后一项值得提及性质是他与卷积之间的关系。 $$F{f\star g}=\hat{f}\hat{g}\quad and \quad F{fg}=\hat{f}\star\hat{g}$$ 简单地说,两个函数的卷积的傅里叶变换是傅里叶变换的乘积。 这种关系是傅立叶变换在研究采样和重构效果时有用的主要原因。我们已经看到了如何用卷积来看待采样、滤波和重构;现在傅立叶变换给我们一个新的域——频域,其中这些运算是简单的乘积。

10.5.3 列出一些傅里叶变换

10.5.4 采样定理中的狄拉克脉冲

脉冲在采样理论中很有用的原因是我们可以用它们来讨论连续函数和傅立叶变换中的采样。我们通过把一个单位脉冲平移、缩放来表示一个样本(有一个位置和一个值)。在位置 a 处的采样值为 b 的样本为$b\cdot \delta(x-a)$。这样我们就可以将函数 f 在 a 处的采样表示为$f(a)\cdot\delta(x-a)$

因此,在一系列等距点上采样一个函数可以表示为将函数乘以一系列等距脉冲之和,称为脉冲串。脉冲串周期为 T,意味着脉冲的间隔为 T。 $$s_T(x)=\sum_{i=-\infty}^{\infty} \delta(x-Ti)$$ s1 的傅里叶变换和 s1 是一样的:一个所有整数频率的脉冲序列。你可以通过思考当脉冲序列乘以正弦信号并积分时会发生什么来理解为什么这是正确的(为什么呢?)。我们最后把所有整数处的正弦值加起来。对于非整数频率,这个和将完全抵消为零,对于整数频率,它将发散到+∞(啊???)。 由于傅里叶变换的膨胀特性,我们可以猜测周期为 T 的脉冲序列的傅里叶变换(就像 s1 的膨胀)是周期为 1/T 的脉冲序列。在空间域中采样越细,脉冲在频域中间隔越远。(看不懂。。。)

10.5.5 采样与混叠伪影

现在我们已经建立了数学机制,我们需要从频域的角度来理解采样和重建过程。引入傅里叶变换的主要优点是,它使卷积滤波对信号的影响更容易理解,并且它提供了更精确的解释,关于为什么我们需要在采样和重构时进行滤波。

我们从原始的连续信号开始这个过程。一般来说,它的傅里叶变换可以包含任何频率的分量,尽管对于大多数类型的信号(尤其是图像),我们期望它的分量随着频率的增加而减少。图像在零频率处也往往有很大的分量——记住,零频率,或 DC,分量是整个图像的积分,由于图像都是正值,所以它往往是一个很大的数字。

让我们看看如果我们不做任何特殊滤波采样和重构,傅里叶变换会发生什么。当我们对信号进行采样时,我们将这种操作建模为脉冲序列的乘法。采样信号为$f\cdot s_T$。由于采样信号的乘法卷积特性,采样信号的傅里叶变换为$(\hat{f}\star s_{1 / T})=\hat{f}\star s_{1 / T}$ 回想一下 δ 是卷积的恒等式。这意味着: $$(\hat{f}\star s_{1 / T})(u)=\sum^{\infty}_{i=-\infty}\hat{f}(u-i / T)$$

[!NOTE] 混叠伪影 $$F{f\cdot s_T}=(\hat{f}\star\hat{s}T)=(\hat{f}\star s{1 / T})$$ > $$(\hat{f}\star s_{1 / T})(u)=\sum_{i=-\infty}^{\infty}\hat{f}(u-i / T)\cdot 1$$ 新函数可以视作原始函数的多个平移 copy 的叠加,在两个主峰之间的区域,两个副本的函数值叠加,这种现象被称为”混叠“

u 点处的新振幅值是$\hat{f}(u-i / T)$的叠加,例如$\hat{f}(u-2 / T)$处的振幅会叠加到$\hat{f}(u)$上,这是名称”混叠“的来历。 如果满足$\vert u-0\vert=i / T$,此时$\hat{f}(u)$会受到来自主峰$\hat{f}(0)$的叠加,会在$\hat{f}(u)$位置产生不寻常的大振幅,这是混叠伪影产生的原因。

改善混叠影响的方法是低通滤波,使用低通滤波将 f 的频率限制起来,称此时频谱的宽度为 w,他是最大频率 fm 的两倍 为了不发生混叠,copy 之间的间距 d 必须要大于 w,事实上 d 是采样频率 f(1/T),它意味着不发生混叠的必要要求是采样频率 f 必须要大于最大频率 fm 的两倍。

也就是说,与脉冲序列卷积得到一系列等间隔的 f 的频谱副本。对于这个看似奇怪的结果,一个很好的直观解释是,所有这些副本只是表达了一个事实,采样频率相差整数倍的频率,一旦我们采样,它们将产生完全相同的采样集。原始频谱称为基频谱,而复制的频谱称为混叠频谱。

如果信号的频谱重叠,则问题开始出现,如果信号包含超过样本频率一半的任何重要内容,就会发生这种情况。当出现这种情况时,频谱相加,不同频率的信息不可逆地混合在一起。这是出现混叠的第一个地方,如果这里发生这种情况,那是由于采样不足——对信号使用的采样频率太低。 假设我们使用最近邻技术重建信号,这相当于用宽度为 1 的盒子卷积。(离散-连续函数卷积与代表连续样本的离散脉冲序列的连续-连续卷积是相同的。)卷积乘法性质是指重构信号的频谱是采样信号的频谱与 box 滤波频谱的乘积。所得到的重构傅里叶变换包含了基频谱(虽然在较高频率下有所衰减),加上所有混叠光谱的衰减副本。由于 box 滤波具有相当宽的傅立叶变换,这些衰减的混叠光谱位是重要的,它们是混叠的第二种形式,由于不充足的重建滤波。这些混叠成分在图像中表现为正方形图案,这是最近邻重建的特征。

采样中防止混叠伪影

为了进行高质量的采样和重建,我们已经看到,我们需要适当地选择采样和重构滤波器。 从频域的观点来看,采样时低通滤波的目的是限制信号的频率范围,使混叠频谱不与基谱重叠。图 10.49 显示了采样率对采样信号傅里叶变换的影响。采样率越高,混叠频谱越远,最终,任何重叠都无关紧要。 关键标准是频谱的宽度必须小于两个副本之间的距离,信号中存在的最高频率必须小于采样频率的一半。这被称为奈奎斯特准则,允许的最高频率被称为奈奎斯特频率或奈奎斯特极限。奈奎斯特-香农采样定理指出,原则上,频率不超过奈奎斯特极限的信号(或者,换句话说,带宽受限于奈奎斯特频率的信号)可以从样本中准确地重构。

对于一个特定的信号有足够高的采样率,我们不需要使用采样滤波器。但是,如果我们被一个包含广泛频率范围的信号所困扰(例如有尖锐边缘的图像),我们必须在采样之前使用采样滤波器对信号进行带宽限制。 图 10.50 显示了三种低通(平滑)滤波器在频域的效果, 图 10.51 显示了在采样时使用这些滤波器的效果。

即使没有滤波的频谱重叠,用低通滤波器对信号进行卷积也可以使频谱足够窄以消除重叠,并产生滤波后信号的良好采样表示。当然,我们失去了高频,但这总比让它们和信号混在一起变成伪影要好。

重构时防止混叠伪影

从频域的角度来看,重构滤波器的工作是在保留基谱的同时去除混叠谱。最重要的是,它完全阻断了所有混叠光谱的主峰。这是所有合理重构滤波器的一个特点:它们在采样频率的所有倍数处频率空间都为零。这就等价于空间域中的无纹波性质(???)。

因此,一个好的重构滤波器需要是一个好的低通滤波器,并要求完全阻塞采样频率的所有倍数。使用不同于 box 滤波器的重构滤波器的目的是为了更彻底地消除混叠频谱,减少高频伪影泄漏到重构信号中,同时尽可能少地干扰基谱。 正如我们所看到的,即使采样率足够高,盒滤波器也相当“漏”,并导致大量的伪影。帐篷滤波器,导致线性插值,衰减高频,导致温和的伪影。b 样条滤波器是非常光滑的,控制混叠谱非常有效。它也平滑了一些基本频谱,这是平滑和混叠之间的权衡,我们之前看到过。

重采样时防止混叠伪影

当重构和采样的操作在重采样中结合时,应用相同的原理,但用一个滤波器同时完成重构和采样的工作。 图 10.53 说明了重采样滤波器必须去除混叠光谱,并使光谱足够窄,以便以新的采样率进行采样。

10.5.6 理想滤波器与实用滤波器

根据频域分析得出逻辑结论,频域下的 box 滤波器对于采样和重构都是理想的。这样的滤波器可以防止两个阶段的混叠,而不会降低奈奎斯特频率以下的频率。

回想一下傅里叶反变换和傅里叶正变换本质上是相同的,所以在空域中有一个频域 box 形状的滤波器是函数:$\sin{\pi x} / \pi x=sinc(\pi x)$

然而,sinc 滤波器在实践中并不常用,无论是用于采样还是用于重建,因为它不切实际,而且因为即使它根据频域标准是最佳的,它也不能在许多应用中产生最佳结果。

对于采样来说,sinc 滤波器的范围无限,并且向外函数值衰减的速度慢,这是一个缺点。此外,对于某些类型的采样,复数区域是有问题的。 高斯滤波器是一个优秀的滤波器,即使在高频分量必须被去除的困难情况下。因为它的频域函数呈指数级下降,没有奇怪的凸起而让混叠伪影泄漏出去。对于不那么困难的情况,一个帐篷过滤器通常就足够了。 对于重建,sinc 函数的大小再次产生问题,但更重要的是,它的波纹会在重建信号中产生许多“振铃”伪影。