轻松点的离散傅立叶变换

概述

        一般来说,标准的介绍傅立叶变换会从“连续“的”周期“的信号的傅里叶级数开始,完了再推广到连续无周期信号的傅里叶变换,或是还要介绍离散时间傅立叶变换(DTFT)。但实际中,我们只能处理”有限长度“的离散傅立叶变换,公式如下:

\begin{aligned}DFT:\quad &X[k] = \sum_{n=0}^{N-1} x[n] e^{-j 2\pi kn/N}, \quad k=0,1,2,...,N-1 \\IDFT:\quad  &x[n] = \frac{1}{N}\sum_{k=0}^{N-1} X[k] e^{j 2\pi kn/N}, \quad n=0,1,2,...,N-1 \end{aligned}

        这里遵循工程领域的记法,使用作为虚数单位;另外使用作为时域下标,作为频域下标;表示时域样本,而为频域样本。

        我们注意到,这两个公式是两组有限个数据”先逐个相乘,再相加”的运算;而这不正是”内积运算“吗?所以,下面我们将从线性代数的角度来理解DFT运算,我们将抛开函数的Hilbert空间、完备正交函数系、无穷维度空间序列的收敛性等等诸如此类的概念;也无需特别地讨论空间的完备性,因为在域或是域上的有限维向量空间中,完备性是由域的完备性就可以保证的;这是比较让人愉快的。

        由此,我们先将N维信号放到N维实向量空间,但由于实际中我们多以复数域傅立叶变换为主,所以我们下面只考虑上的向量空间,基本上就是大家所学的线性代数知识,我们将通过下面讨论获得上面两个公式。


内积

首先,我们引入向量空间的内积运算:

,定义为:

        这正是我们所熟知的内积运算,并且满足以下性质:

1)关于第一变元的线性性:

2)共轭对称性:

3)正定性:

        很容易验证上面内积的定义满足这些性质,大家曾经肯定都做过相关的练习。另外,到这里就知道为什么上面的内积的定义中,关于第二变元要加上一个丑陋的共轭符号,因为我们需要它满足正定性条件,使得它可以诱导出合法的范数,进而度量距离。


范数

可以由上面的内积诱导出如下欧几里得范数:

,易知满足如下性质:

1)正齐次性:

2)正定性:

3)三角不等式:

为了水一下文章的长度,我们来证明一下三角不等式,不过按常规我们需要先证明一下Cauchy-Schwarz不等式:,这里我们无需使用内积的具体形式,而只需要上面的三个公理即可。

Proof: 由内积的正定性可知,都成立。

我们利用内积关于两个变元的可加性将其展开得:

        

再利用内积关于第一变元的齐次性,和关于第二变元的共轭齐次性得:

由于是任意的复数,我们将(这里还需假设)代入上式得:

\frac{<\boldsymbol y\ ,\boldsymbol x>\overline{}}{^2} - \frac{}{}-\overline {\frac{}{}}+\   \geq \ 0

代入,且由内积的共轭对称性,以及一个复数乘以它的共轭等于模的平方,经过化简得:

\frac{|<\boldsymbol y \ , \boldsymbol x>|  ^2}{||\boldsymbol x||^2} - \frac{||  ^2}{||\boldsymbol x||^2} - \frac{||  ^2}{||\boldsymbol x||^2}  + ||\boldsymbol y||^2 \geq 0

即:

Proof of triangular inequality:

\begin{aligned}||\boldsymbol x + \boldsymbol y ||^2 &\equiv \\&=  + + + \\&=||\boldsymbol x||^2 + +\overline{} + ||\boldsymbol y||^2\\&=||\boldsymbol x||^2 + 2Re\{\} + ||\boldsymbol y||^2 \\&\leq ||\boldsymbol x||^2 + 2|| + ||\boldsymbol y|| \\&\leq ||\boldsymbol x||^2 + 2||\boldsymbol x|| \ ||\boldsymbol y|| + ||\boldsymbol y|| \quad ({\rm by\ Cauchy-Schwarz}) \\&=(||\boldsymbol x|| + ||\boldsymbol y||)^2 \\\iff&||\boldsymbol x+\boldsymbol y|| \leq ||\boldsymbol x||+||\boldsymbol y|| \quad \quad \Box\end{aligned}


正交基的构造

        在任一个向量空间中,显然存在无穷的基;而在我们定义了有限维完备内积空间后,我们感兴趣的是那些正交基;显然,在N维向量空间中,存在由N个one-hot向量构成的标准正交基;而我们的有限的离散信号就是用这个基来表示的,设这个基为:,信号为,则。

        但是这样的基的表示对我们来说没有用处,因为它不能捕捉到我们感兴趣的特征,我们感兴趣的是信号中的频率成份分布;所以我们下面将构造出一个基,这个基中的所有向量将会捕捉到信号内的不同的频率成份的强度。

        但是,如何构造呢?回想一下,在学习傅立叶变换时,不管是周期信号的傅立叶级数还是非周期信号的傅立叶变换,都使用最基本的复指数正弦波来作为基本的构造函数,当频率不相同时它们就是互相正交的,但是它们或是在有限的连续区间内进行积分,或是在无限的区间进行积分得到积分为0,进而是正交的。

        那么我们在有限维向量空间中,我们同样也想在周期函数上进行采样来获得能刻画频率的且是正交的基;而基本的复周期函数就是,它的图像是复平面上的一个圆;并且我们进行均匀采样,因而希望N个样本点在圆上是均匀分布的。

        这让我们想到1的N次根,设任意的单位长度的复数为,由解得:,即为N个不重复的单位根。重要的是这N个单位根构成了一个Abelian群,群运算定义为复数的乘法运算,事实上这是一个循环Abelian群:所有的根都能由群的生成元的若干次幂(自乘若干次)得到。群的多个性质(如交换性)继承自复数乘法运算,下面简单验证一下群关于运算的封闭性:

Proof:任意取两个中的元素相乘:,若,则显然结果还是属于;若,则由周期性得:,再次有。另外,当多个元素连乘时,也类似可证。

        群的封闭性可以让我们对其中的元素进行任意的相乘而不能跳出去。下面我们再来观察一个性质:设为任意不等于0,1的复数,则有:,所以内的所有元素相加等于0!(这将意味着下面我们的全1向量正交与所有其它的向量。)

1)我们将中的元素按顺序排进一个N维复向量中得到一个非零向量:

令:,它构成我们正交基的第一个成员;遍历该向量的所有元素,刚好绕着复平面单位圆沿着单位根群转了一周,没跳过任一个根;因此对应着提取信号的最低频率成份,具体的物理频率可以根据采样率和FFT点数计算。

2)接下来,我们使用乘向量来生成其它的基向量:

令:\begin{aligned}\boldsymbol e_1 &=\boldsymbol 1 \odot \boldsymbol e_1  = [1, e^{2\pi 1/N}, e^{2\pi 2/N},...,e^{2\pi (N-1)/N}]\\\boldsymbol e_2 &=\boldsymbol e_1 \odot \boldsymbol e_1  = [1, e^{2\pi 1\times 2/N}, e^{2\pi 2\times2/N},...,e^{2\pi (N-1) \times 2/N}] \\\boldsymbol e_3 &=\boldsymbol e_2 \odot \boldsymbol e_1  = [1, e^{2\pi 1\times 3/N}, e^{2\pi 2\times3/N},...,e^{2\pi (N-1) \times 3/N}] \\\vdots\\\boldsymbol e_{N-1} &=\boldsymbol e_{N-2} \odot \boldsymbol e_1  = [1, e^{2\pi 1\times (N-1)/N}, e^{2\pi 2\times(N-1)/N},...,e^{2\pi (N-1) \times (N-1)/N}] \\\boldsymbol e_{0}=\boldsymbol e_{N} &=\boldsymbol e_{N-1} \odot \boldsymbol e_1  = [1, e^{2\pi 1\times (N)/N}, e^{2\pi 2\times(N)/N},...,e^{2\pi (N-1) \times (N)/N}]\end{aligned}

其中:为全1向量,为阿达玛乘积(Hadamard Product)。

        是第二个基向量;对应着提取信号中频率的成份,因为从头到位遍历一遍相当于从根1开始每隔一个取一次,相当于在单位圆上绕2圈;对应提取信号中的两倍于最低频率的量。

        是每隔两个取一次,如此下去,直到最后一个向量构造完成;仔细看实际上是全1向量,对应提取信号的直流分量。我们把最后一个直流向量挪到第一排,构成如下基向量矩阵:

D = \begin{bmatrix}    &1, &1, &1, &... &1 \\    &1, &e^{2\pi 1\times 1/N}, &e^{2\pi 2\times1/N},&...,&e^{2\pi (N-1) \times 1/N}\\&1, &e^{2\pi 1\times 2/N}, &e^{2\pi 2\times 2/N},&...,&e^{2\pi (N-1) \times 2/N}\\&\vdots, &\vdots, & \vdots, &\ddots, &\vdots\\&1, &e^{2\pi 1\times (N-1)/N}, &e^{2\pi 2\times (N-1)/N},&...,&e^{2\pi (N-1) \times (N-1)/N}\\     \end{bmatrix}

3)我们一直称这些向量为基向量,现在我们来简单证明一下,它们的确构成一个基。由于向量的正交性必然也有线性独立性成立,所以我们直接证明它们两两正交即可。

Proof of Orthogonality

\begin{aligned} &= \sum_{n=0}^{N-1} e^{j2\pi kn/N} \ \overline{e^{j2\pi ln/N}} \\& = \sum_{n=0}^{N-1} e^{j2\pi (k-l) n/N}\\&= \begin{cases} &\frac{1 - (e^{j2\pi (k-l)/N)^N}}{1 - e^{j2\pi (k-l)/N}}, &k \neq l \\&\sum_{n=0}^{N-1} 1, &k=l \end{cases} \\&= \begin{cases} &0, &k \neq l \\& N, &k=l \end{cases} \end{aligned}

所以,的确是正交向量组,又该线性无关向量组包含N个向量,因此构成向量空间的一个基。


投影

        既然构造了这个正交基,我们就可以将任意向量投影到这个基上面得到坐标系数向量,我们称之为离散傅立叶变换DFT,即:

显然,由<\overline{\boldsymbol e_k}, \overline{\boldsymbol e_l}> = \sum_{n=0}^{N-1} e^{-j2\pi kn/N} \ e^{--j2\pi ln/N}=\sum_{n=0}^{N-1}  e^{j2\pi ln/N}\ e^{-j2\pi kn/N}= = \delta_{lk}\cdot N

因此,共轭基向量也构成了一个基,而把投影到共轭基上得到:

\begin{aligned} &= \sum_{k=0}^{N-1} X[k]\ e^{--j2\pi kn/N} \\&=\sum_{k=0}^{N-1} ( \sum_{m=0}^{N-1} x[m]\ e^{-j2\pi km/N}) \ e^{j2\pi kn/N} \\&= \sum_{m=0}^{N-1} x[m]\ ( \sum_{k=0}^{N-1} e^{-j2\pi km/N} \ e^{j2\pi kn/N} )\\&= \sum_{m=0}^{N-1} x[m]\  \sum_{k=0}^{N-1} e^{j2\pi k(n-m)/N} \\&= \sum_{m=0}^{N-1} x[m]\  \delta_{m,n} \cdot N\\&=N\cdot x[n]\end{aligned}

因此,我们也把称为傅立叶逆变换。


你可能感兴趣的:(轻松点的离散傅立叶变换)