作者:tracholar链接:https://www.zhihu.com/question/22085329/answer/26047106来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。2017年更新:将这个答案整理了一下,写了篇博客,加了一些理解和图示,可以参考 深入理解傅里叶变换**
曾经和同学上课时深入探讨过此问题,占坑,有空再来回答!!
我来说些不一样的东西吧。
我假定楼主对这些变换已有一些了解,至少知道这些变换怎么算。好了,接下来我将从几个不同的角度来阐述这些变换。
一个信号,通常用一个时间的函数
x(t)
来表示,这样简单直观,因为它的函数图像可以看做信号的波形,比如声波和水波等等。很多时候,对信号的处理是很特殊的,比如说线性电路会将输入的正弦信号处理后,输出仍然是正弦信号,只是幅度和相位有一个变化(实际上从数学上看是因为指数函数是线性微分方程的特征函数,就好像矩阵的特征向量一样,而这个复幅度对应特征值)。因此,如果我们将信号全部分解成正弦信号的线性组合(傅里叶变换)
x(t)=\Sigma_\omega X(\omega ) e^{i \omega t}
,那么就可以用一个传递函数
H(w)=Y(w)/X(w)
来描述这个线性系统。倘若这个信号很特殊,例如
e^{2t} sin(t)
,傅里叶变换在数学上不存在,这个时候就引入拉普拉斯变换来解决这个问题
x(t)=\Sigma _s X(s) e^{st}
。这样一个线性系统都可以用一个传递函数
H(s)=Y(s)/X(s)
来表示。所以,从这里可以看到将信号分解为正弦函数(傅里叶变换)或者 复指数函数(拉普拉斯变换)对分析线性系统至关重要。
如果只关心信号本身,不关心系统,这几个变换的关系可以通过这样一个过程联系起来。
首先需要明确一个观点,不管使用时域还是频域(或s域)来表示一个信号,他们表示的都是同一个信号!关于这一点,你可以从线性空间的角度理解。同一个信号,如果采用不同的坐标框架(或者说基向量),那么他们的坐标就不同。例如,采用
{\delta(t-\tau )|\tau \in R}
作为坐标,那么信号就可以表示为
x(t)
,而采用
{e^{i w t}|w\in R}
则表示为傅里叶变换的形式
X(w)
。线性代数里面讲过,两个不同坐标框架下,同一个向量的坐标可以通过一个线性变换联系起来,如果是有限维的空间,则可以表示为一个矩阵,在这里是无限维,这个线性变换就是傅里叶变换。
如果我们将拉普拉斯的
s=\sigma+j w
域画出来,他是一个复平面,拉普拉斯变换
X(s)
是这个复平面上的一个复变函数。而这个函数沿虚轴
j w
的值
X(jw)
就是傅里叶变换。到现在,对信号的形式还没有多少假定,如果信号是带宽受限信号,也就是说
X(jw)
只在一个小范围内(如
-B<w<B
)不为0。
根据采样定理,可以对时域采样,只要采样的频率足够高,就可以无失真地将信号还原出来。那么采样对信号的影响是什么呢?从s平面来看,时域的采样将
X(s)
沿虚轴方向作周期延拓!这个性质从数学上可以很容易验证。
z变换可以看做拉普拉斯变换的一种特殊形式,即做了一个代换
z=e^{sT}
,T是采样的周期。这个变换将信号从s域变换到z域。请记住前面说的那个观点,s域和z域表示的是同一个信号,即采样完了之后的信号。只有采样才会改变信号本身!从复平面上来看,这个变换将与
\sigma
轴平行的条带变换到z平面的一个单叶分支
2k\pi\le\theta \le 2(k+1)\pi
。你会看到前面采样导致的周期延拓产生的条带重叠在一起了,因为具有周期性,所以z域不同的分支的函数值
X(z)
是相同的。换句话说,如果没有采样,直接进行z变换,将会得到一个多值的复变函数!所以一般只对采样完了后的信号做z变换!
这里讲了时域的采样,时域采样后,信号只有
-f_s/2\rightarrow f_s/2
间的频谱,即最高频率只有采样频率一半,但是要记录这样一个信号,仍然需要无限大的存储空间,可以进一步对频域进行采样。如果时间有限(这与频率受限互相矛盾)的信号,那么通过频域采样(时域做周期扩展)可以不失真地从采样的信号中恢复原始信号。并且信号长度是有限的,这就是离散傅里叶变换(DFT),它有著名的快速算法快速傅里叶变换(FFT)。为什么我要说DFT呢,因为计算机要有效地对一般的信号做傅里叶变换,都是用DFT来实现的。除非信号具有简单的解析表达式!
总结起来说,就是对于一个线性系统,输入输出是线性关系的,不论是线性电路还是光路,只要可以用一个线性方程或线性微分方程(如拉普拉斯方程、泊松方程等)来描述的系统,都可以通过傅里叶分析从频域来分析这个系统的特性,比单纯从时域分析要强大得多!两个著名的应用例子就是线性电路和傅里叶光学(信息光学)。甚至非线性系统,也在很多情况里面使用线性系统的东西!所以傅里叶变换才这么重要!你看最早傅里叶最早也是为了求解热传导方程(那里其实也可以看做一个线性系统)!
傅里叶变换的思想还在不同领域有很多演变,比如在信号处理中的小波变换,它也是采用一组基函数来表达信号,只不过克服了傅里叶变换不能同时做时频分析的问题。
最后,我从纯数学的角度说一下傅里叶变化到底是什么。还记得线性代数中的代数方程
Ax=b
吗?如果A是对称方阵,可以找到矩阵A的所有互相正交的特征向量
{v_i,i=1..n}
和特征值
\lambda_i,i=1..n
,然后将向量x和b表示成特征向量的组合
x=\Sigma_i x_i v_i, b=\Sigma_i b_i v_i
。由于特征向量的正交关系,矩阵的代数方程可以化为n个标量代数方程
\lambda_i x_i = b_i
,是不是很神奇!!你会问这跟傅里叶变换有毛关系啊?别急,再看非齐次线性常微分方程
y'+ay=z(x)
,可以验证指数函数
y=e^{sx}
是他的特征函数,如果把方程改写为算子表示
\Lambda y = z
,那么有
\Lambda y = \lambda y
,这是不是和线性方程的特征向量特征值很像。把y 和 z都表示为指数函数的线性组合,那么经过这种变换之后,常微分方程变为标量代数方程了!!而将y和z表示成指数函数的线性组合的过程就是傅里叶变换(或拉普拉斯变换)。在偏微分方程如波动方程中也有类似结论!这是我在上数理方程课程的时候体会到的。归纳起来,就是说傅里叶变换就是线性空间中的一个特殊的正交变换!他之所以特殊是因为指数函数是微分算子的特征函数!
编辑于2017-03-12