分享

深入理解傅里叶变换

 昵称35187271 2017-12-21

这原本是我在知乎上对傅立叶变换、拉普拉斯变换、Z变换的联系?为什么要进行这些变换。研究的都是什么?问题的回答,实际上是我在本科学习数学和信号处理期间的思考,知乎上的答案因为写得仓促,只写了一些大致思想,没有具体展开,也没有图,比较难以理解,这里重新整理了一下,汇成此文,目前尚未完成。

本文要求读者需要在对傅里叶变换有一定的了解的基础之上阅读,至少要知道怎么算傅里叶变换。此外部分地方要求读者有一定的微分方程基础,至少会求简谐振子的二阶常微分方程吧。

什么是傅里叶变换

高等数学中一般是从周期函数的傅里叶级数开始介绍的,这里也不例外。简单的说,从高中我们就学过一个理想的波可以用三角函数来描述,但是实际上的波可以是各种奇形怪状的。首先我们来看具有固定周期的波,下图中展示了4种常见的周期波。傅里叶级数告诉我们,这些周期信号都可以分解为有限或无限个正弦波或余弦波的叠加,且这些波的频率都是原始信号频率f0的整数倍。

s(x)=A02+n=1Ansin(2πnf0x+ϕn).

这里f0被称为这些波的基频,A0/2代表直流系数,系数An被称为幅度,ϕn被称作相位。根据幅度和相位可以利用反变换恢复信号的波形,因此幅度和相位包含了信号的全部信息。这里的幅度关于频率的函数,我们称之为频谱,相位关于频率的函数,称之为相位谱。

waveforms.svg

下图是矩形波分解为多个正弦波的示意图,随着正弦波数目的增加,可以无限地逼近矩形波。对于非周期信号,我们不能简单地将它展开为可数个正弦波的叠加,但是可以利用傅里叶变换展开为不可数的正弦波的叠加,其表达式可以通过f0简单得到。

ˆf(ξ)=f(x) e2πixξdx,

我们日常遇到的琴音、震动等都可以分解为正弦波的叠加,电路中的周期电压信号等信号都可以分解为正弦波的叠加。那么问题来了,为什么我们要将信号分解为正弦波的叠加呢?这里面包含两个问题,为什么要分解?为什么是正弦波(或余弦波),可不可以是其他的波?另一个问题是对通信的同学的,我们学过多个变换那么这些变换之间有哪些关系? 在下面的篇章中,我将回答这三个问题。

fourier_series.svg

为什么要分解为正弦波的叠加

这个问题可以追溯到傅里叶变换的创始人傅里叶解热传导方程的时候,因为热传导方程要求读者对热力学有一定了解,这里我以简谐振子系统为例来说明这个问题。没有阻尼的简谐振子系统可以用下面这个微分方程来描述

d2xdt2+2ω0dxdt+ω20x=F(t).

x,t,ω0,F分别代表位移、时间、系统固有频率和外界驱动力。当没有外界驱动力F时,这个系统有通解

x(t)=Asin(ω0t+ϕ)

现在我们考虑存在外界驱动力F的场景,熟悉常微分方程理论的可以知道此时的通解是上述其次方程的通解(F恒为0)加上一个特解,所谓特解就是某个满足上述非齐次方程(F不恒为0)的任意一个接!那为什么能做这种分解呢?原因在于这是一个线性系统,或者说这个方程是一个线性方程,因此遵循叠加原理,可以简单的证明这个一般性结论。假设线性系统可以由线性微分方程来描述

ˆLx(t)=F(t)

ˆL是线性算子,你可以简单地理解为谐振子方程中的左边操作。如果C(t),x0(t)分别是其次方程通解和非齐次方程特解,即他们满足

ˆLC(t)=0,ˆLx0(t)=F(t).

那么将这两个式子相加,就可以得到

ˆL(x0(t)+C(t))=F(t)

因此,只剩下一个问题,对于给定的驱动力F(t),怎么找特解的问题了。也许你还记得在高数的书上,对F(t)为三角函数和指数函数时,可以有和F(t)形式相同的特解。例如F(t)=f0sin(wt)时,可以假定非齐次方程也有这种形式的特解Bsin(wt),代入原方程,求出待定常数可得特解A(ww0)2sin(wt)。指数形式的驱动力也类似,那么对于其他形式的驱动力,怎么求特解呢?很简单,利用线性叠加原理,我如果求出很多个F为正弦驱动力sin(wnt)下的特解xn(t),并且如果F可以表达为这些正弦波的叠加,那么特解不就可以用这些特解的叠加得到了么?用数学语言表述就是

ˆLxn(t)=sin(wnt),n=0,1...ˆLnAnxn(t)=nAnsin(wnt).

上面第二个式子右边如果等于F(t),那么左边的nAnxn(t)就是原齐次方程的特解。简单地说,就是将驱动力做傅里叶变换(如果是周期驱动力则展开为傅里叶级数),求出每个基驱动力的特解,然后叠加得到特解。当然实际求解不用那么绕,以简谐振动方程为例,直接对方程左右两边做傅里叶变换即得

w2ˆX(w)2wω0ˆX(w)+ω20ˆX(w)=ˆF(w)

上式带尖头的函数代表时域函数的傅里叶变换,这是一个代数方程,容易求得

ˆX(w)=ˆF(w)(wω0)2

通过上述描述,我们可以看到,将一个函数做傅里叶变换或者展开为傅里叶级数,可以帮助我们求解线性微分方程,或者从实际意义来说,可以帮助我们分析一个线性系统对外界做出如何响应!之所以能这样展开,是因为我们分析的是线性系统,如果是非线性系统就不能这样操作了。至于为什么是三角函数,我在下面将会回答,接下来我们先来看看更多的例子。

傅里叶变换与信号系统

这里,我们对通信相关的领域再举一个例子,来说明展开为三角函数(或者复指数函数)的重要性。这种分析,我们称之为傅里叶分析,或者叫频谱分析。

一个信号,通常用一个时间的函数x(t)来表示,这样简单直观,因为它的函数图像可以看做信号的波形,比如声波和水波等等。很多时候,对信号的处理是很特殊的,比如说线性电路会将输入的正弦信号处理后,输出仍然是正弦信号,只是幅度和相位有一个变化。这是因为线性电路都可以用常系数线性微分方程来描述,输入信号可以看做外界驱动力,输出可以看做系统地响应,这和上面的谐振子方程类似。因此,如果我们将信号全部分解成正弦信号的线性组合(傅里叶变换)x(t)=ΣωX(ω)eiωt,那么就可以用一个传递函数H(w)=Y(w)/X(w)来描述这个线性系统。倘若这个信号很特殊,例如e2tsin(t),傅里叶变换在数学上不存在,这个时候就引入拉普拉斯变换来解决这个问题x(t)=ΣsX(s)est。这样一个线性系统都可以用一个传递函数H(s)=Y(s)/X(s)来表示。所以,从这里可以看到将信号分解为正弦函数(傅里叶变换)或者 复指数函数(拉普拉斯变换)对分析线性系统也是至关重要的。

傅里叶变换与量子力学

量子力学的波函数可以用多种不同的表象来描述,例如坐标表象、动量表象、能量表象等,不同表象之间的变换实际上是希尔伯特空间的一个幺正变换,其中坐标表象和动量表象之间的变换就是傅里叶变换。

Φ(p)=12πΨ(x)eipxdx,Ψ(x)=12πΦ(p)eipxdp.

傅里叶变换、拉普拉斯、Z变换、离散傅里叶变换的关系

信号处理中经常要对信号做各种变换,其中傅里叶变换、拉普拉斯、Z变换、离散傅里叶变换是最基础的几个变换。他们都是为了对信号做频谱分析而采用的变换,只不过被变换的信号会有一些差异。

如果只关心信号本身,不关心系统,这几个变换的关系可以通过下面这样一个过程联系起来。

从模拟信号x(t)开始,如果模型信号能量是有限的,那么我们可以对它做傅里叶变换,把它用频域表达为X(w)。如果信号的能量是无限的,那么傅里叶变换将不会收敛,这种时候可以对它做拉普拉斯变换X(s)。如果我们将拉普拉斯的s=σ+jw域画出来,他是一个复平面,拉普拉斯变换X(s)是这个复平面上的一个复变函数。而这个函数沿虚轴jw的值X(jw)就是傅里叶变换。

LaplaceFourier

拉普拉斯变换和傅里叶变换广泛应用在模拟电路分析当中,下图就是对模拟电路中基本元件的s域建模示意图,当s=jw时,就是傅里叶变换了。

S-Domain_circuit_equivalents

需要明确一个观点,不管使用时域还是频域(或s域)来表示一个信号,他们表示的都是同一个信号!也就是说,上面的时域表达、频域表达和s域表达都表示的是同一个模拟信号。关于这一点,你可以从线性空间的角度理解。同一个信号,如果采用不同的坐标框架(或者说基向量),那么他们的坐标就不同。例如,采用{δ(tτ)|τR}作为坐标,那么信号就可以表示为x(t),而采用{eiwt|wR}则表示为傅里叶变换的形式X(w)。两个不同坐标框架下,同一个向量的坐标可以通过一个线性变换联系起来,如果是有限维的空间,则可以表示为一个矩阵,在这里是无限维,这个线性变换就是傅里叶变换。

到现在,对信号的形式还没有多少假定,如果信号是带宽受限信号,也就是说X(jw)只在一个小范围内(如BwB)不为0。之所以要做这个假定以及这个假定的合理性是根据实际需要而定的。在一个通信系统或者信号处理系统中,无限带宽的信号是无法处理的,而且一般接受信号的期间都会有一定的带宽,所以这是对实际中的信号的一种理想假设。现代的信号处理系统多是数字信号处理系统,即使是模拟系统,现在也多将复杂的处理放到数字信号处理子系统端进行处理,这两个系统之间通过 AD、DA 连接起来。根据采样定理,只要采样的频率足够高(大于两倍带宽),就可以无失真地将信号还原出来。那么采样对信号的影响是什么呢?从s平面来看,时域的采样将X(s)沿虚轴方向作周期延拓!这个性质从数学上可以很容易验证。下图显示的是就是采样对信号频谱的影响,只画出虚轴上的图像。这个性质也很好的解释了为什么要两倍的采样频率,这样才能使得周期延拓后频谱不会重叠到一起。设fs=ws/2π是采样频率,则采样后信号在s域可以表达为

Xsampling(s)=X(s)n=ens/fs

sampling

对于采样后的信号,可以利用指数变换将s域的带状区域变换到单位圆内。这就是z变换,它可以看做拉普拉斯变换的一种特殊形式,即做了一个代换z=es/fsfs是采样频率。这个变换将信号从s域变换到z域。请注意,s域和z域表示的是同一个信号,即采样完了之后的信号,只有采样才会改变信号本身!从复平面上来看,这个变换将与σ轴平行的条带变换到z平面的一个单叶分支2kπθ2(k+1)π,并且将虚轴映射到单位圆。z=ejw/fs时也称作离散时间傅里叶变换(DTFT)。你会看到前面采样导致的周期延拓产生的条带重叠在一起了,因为具有周期性,所以z域不同的分支的函数值X(z)是相同的。换句话说,如果没有采样,直接进行z变换,将会得到一个多值的复变函数!所以一般只对采样完了后的信号做z变换!

X(z)=Xsampling(z=es/fs)=X(s=fslnz)n=zn

这里讲了时域的采样,时域采样后,信号只有fs/2fs/2间的频谱,即最高频率只有采样频率一半,但是要记录这样一个信号,仍然需要无限大的存储空间,可以进一步对频域进行采样。如果时间有限(实际上这与频率受限互相矛盾,但大多数信号近似成立)的信号,那么通过频域采样(时域做周期扩展)可以不失真地从采样的信号中恢复原始信号。并且信号长度是有限的,这就是离散傅里叶变换(DFT),它有著名的快速算法快速傅里叶变换(FFT)。为什么DFT这么重要呢,因为计算机要有效地对一般的信号做傅里叶变换,都是用DFT来实现的,除非信号具有简单的解析表达式!利用上述关系,可以推导出DFT在第k个频点的值为

X(k)=X(z=ej2πNk)=X(s=j2πNkfs)n=ej2πNnk=X(s=j2πNkfs)=x(t)ej2πNkfstdt=nxnej2πNnk

上述推导利用到两个基本公式

n=ej2πNnk=1x(t)ej2πNkfstdt=nxnej2πNnk

总结起来说,就是对于一个线性系统,输入输出是线性关系的,不论是线性电路还是光路,只要可以用一个线性方程或线性微分方程(如拉普拉斯方程、泊松方程等)来描述的系统,都可以通过傅里叶分析从频域来分析这个系统的特性,比单纯从时域分析要强大得多!两个著名的应用例子就是线性电路和傅里叶光学(信息光学)。甚至非线性系统,也在很多情况里面使用线性系统的东西!所以傅里叶变换才这么重要!你看最早傅里叶最早也是为了求解热传导方程(那里其实也可以看做一个线性系统)!

傅里叶变换的思想还在不同领域有很多演变,比如在信号处理中的小波变换,它也是采用一组基函数来表达信号,只不过克服了傅里叶变换不能同时做时频分析的问题。

傅里叶变换特殊的原因解释

最后,我从纯数学的角度说一下傅里叶变化到底是什么。还记得线性代数中的代数方程Ax=b吗?如果A是对称方阵,可以找到矩阵A的所有互相正交的特征向量{v_i,i=1..n}和特征值λi,i=1..n,然后将向量x和b表示成特征向量的组合x=Σixivi,b=Σibivi。由于特征向量的正交关系,矩阵的代数方程可以化为n个标量代数方程λixi=bi,是不是很神奇!!你会问这跟傅里叶变换有毛关系啊?别急,再看非齐次线性常微分方程y+ay=z(x),可以验证指数函数y=esx是他的特征函数,如果把方程改写为算子表示Λy=z,那么有Λy=λy,这是不是和线性方程的特征向量特征值很像。把y 和 z都表示为指数函数的线性组合,那么经过这种变换之后,常微分方程变为标量代数方程了!!而将y和z表示成指数函数的线性组合的过程就是傅里叶变换(或拉普拉斯变换)。在偏微分方程如波动方程中也有类似结论!这是我在上数理方程课程的时候体会到的。归纳起来,就是说傅里叶变换就是线性空间中的一个特殊的正交变换!他之所以特殊是因为指数函数是常系数微分算子的特征函数

其他微分算子的特征函数举例

这里举其他特征函数的例子是为了说明,傅里叶变换只是常系数微分算子的特征函数,如果是变系数就不是了。所谓常系数微分算子就是具有这种形式的微分算子

ˆL=nk=0akdkxdtk,akR

对于变系数的微分算子,ak是自变量t的函数,这种算子的特征函数并没有一般性的结论。这里列举几个我遇到过多次的特征函数及变系数算子。

柱坐标下的贝塞尔函数是下述微分算子的特征函数

ˆL=x2d2ydx2+xdydx+(x2α2)

球坐标下的勒让德多项式

Pn(x)=12nn!dndxn[(x21)n].

它是下述微分算子的特征函数,这是一个变系数的微分算子

ˆL=ddx[(1x2)ddx]+n(n+1)

拉盖尔多项式

Ln(x)=exn!dndxn(exxn)=1n!(ddx1)nxnˆL=xd2dx2+(1x)ddx+

这样的例子还有很多,这些函数实际上都是一个函数族,这些函数互相正交,这和实对称阵的本征向量互相正交的性质一样,这里的线性算子也是其泛函空间上的对称实轭米算子。这些函数族构成一组完备正交基,可以表达对应泛函空间中的任意函数。这和傅里叶变换的基函数——复指数函数一样。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多