图形学之信号处理

随着图形学学习深入,会遇到连续函数不能直接用于数字计算机,必须进行数字化处理的情况。处理连续函数最有效的方法之一,就是函数的采样值,将函数在多个不同点处的值存储起来,需要时就重构其他函数值。本节将概述采样与重构技术。

一、数字音频:一维采样

记录音频信号的数字方法是采样,模数转换器(ADC)每秒钟测量电压数千次,产生整数流。这些整数可以很容易的存储在媒体中。在播放录音时,按照适当的速度读出数据,然后送入数模转换器(DAC)中。

要使重构出的音频具有较高的质量,每秒的采样次数取决于所记录声音的音调高低。

采样干扰与走样

数字音频记录链可以作为图形学采样与重构过程的具体模型。在图形学的图像或者其他采样信号中,也会出现同样的欠采样干扰和重构干扰现象。
问题原因:采样频率太低。
解决办法:采样前滤波,重构过程中再次滤波。

二、卷积

卷积概念在采样与重构算法中广泛被应用,它是一个简单的数学概念,是采样、滤波、重构等算法的基础。
卷积是函数的运算,有两个函数产生一个新的函数。卷积可用于连续函数和离散序列;可用于一维、二维活高维定义域的函数(维度是按自变量个数计算得来)。

(一)滑动平均

举例:采用滑动平均对一位韩束进行平滑处理。
为了获得任意点的平滑值,计算该店 (r) 邻域的函数平均值((r) 是指平滑运算的半径,是一个控制平滑程度的参数)。

计算:

  1. 连续函数 (g(x)) —— 在某个区间上对 (g) 积分,然后除以区间长度2r:

[h(x) = frac{1}{2r}int_{x-r}^{x+r}g(t)d_t ]

  1. 离散函数 (b[i]) —— 平均就是将索引范围内( (2r+1) )累加求平均:

[c[i] = frac{1}{2r+1}sum_{j=i-r}^{i+r}b[j] ]

卷积的本质是滑动平均思想,唯一的区别是卷积中的滑动平均是加权平均

(二)离散卷积

离散卷积计算:
对离散序列 (a[i])(b[i])进行卷积,结果为离散序列 ((a * b)[i]),该过程类似爱用序列 (a) 所给的样本赋予加权值,对 b 进行滑动平均。
例:索引为 (i-j) 的样本 (b[i-j])的权重为 (a[j])。这是 (a) 卷积 (b)(a*b))的计算公式表示:

[(a * b)[i] sum_{j}a[j]b[i-j] ]

上式是对所有整数的求和运算((- infty ightarrow + infty)

在图形学中,一般两个函数中由一个具有有限支撑集(意味着旨在自变量的有限区域内取非零值)。假设 (a) 有限,存在半径为 (r) ,使得当(|j|>r)时,都有 (a[j]=0),上面的求和公式再完整为:

[(a * b)[i] sum_{j=-r}^{r}a[j]b[i-j] ]

(三)把卷积看做移位滤波器之和

如果 (b) 是一个序列,那么将 (b) 序列向右移动 (j) 个位置,将得到新序列 (b_{ ightarrow j})((b_{ ightarrow j}[i] = b[i-j]))
就可以把卷积公式写成整个 ((a * b))的形式:

[(a*b) = sum_{j} a[j]b_{ ightarrow j} ]

(四)与连续函数的卷积

两个连续函数之间的卷积,用积分代替求和运算;

[(f*g)(x) = int_{-infty}^{+infty}f(t)g(x-t)dt ]

(x)(f*g) 的值,就是移动 (f) 使得 (f(0))(g(x)) 对应之后,两函数形成的曲线下面的面积。和离散情况一样,求卷积就是进行滑动平均,由滤波器提供权值。

(五)离散-连续卷积

离散与连续的相互转换存在有两种方式:

  1. 连续转离散:
    采样 —— 通过记录连续函数在所有的整数自变量处的值,而忽略其他位置的值。

  2. 离散(或有序)转连续:
    重构 —— 用连续滤波器 (f(x)) 对离散序列 (a[i]) 进行滤波:

[(a * f)(x) = sum_{i} a[i] f(x-i) ]

原文地址:https://www.cnblogs.com/somedayLi/p/12571350.html