傅里叶变换

  本文根据自己的理解以及借鉴前人的总结写下,有参考到的在文中下方给出链接。傅里叶本身具有较强的专业背景,其提出是为了解决热传导方程,不过由于其卓越的效果在众多领域有重要应用。本文仅从代数角度对其进行一些分析。

1. 三角函数的正交性

1.1 向量正交

  正交是一个非常好的特性,两个向量正交,它们的内积就为0。在线性代数中,(R^n)里由一组含n个正交向量构成的一组基底是一个正交基,(R^n)中所有向量都可由这组正交基表示。其数学定义为

({ v_1, v_2,cdots, v_n }) 为内积空间(V)中的非零向量,且当(i eq j) 时,(v_i^Tcdot v_j = 0),则称$ v_1, v_2,cdots, v_n (为向量空间)V$的一组正交基。

  实际上(R^n)中任意一组线性无关的({ v_1,v_2,cdots,v_n })都能表示该空间的所有向量,但是正交基相对于普通的无关组有两个巨大的优势

  • 一是能够方便的求出向量在该基底下的坐标
  • 二是在向量相乘(内积)时只需要对应坐标相乘即可$ (v_i^Tcdot v_j=0 ;; if;; i eq j)$,大大简化了计算。

详细地说,(R^n)空间中任意一个向量都可以被(R^n)中一组线性无关的({ v_1,v_2,cdots,v_n })向量表示:

[v = c_1v_1+c_2v_2+cdots +c_nv_n ]

  若以({ v_1,v_2,cdots,v_n })为该空间的基底,那么((c_1,c_2,cdots,c_n))就是该空间的坐标,求解该坐标时需要经过以下运算,以(c_1)为例,首先两边同乘(v_1)

[v^Tcdot v_1 = c_1||v_1||+c_2v_2^Tv_1+cdots +c_nv_n^Tv_1 ]

再移项

[c_1 = frac {v^Tcdot v_1-(c_2v_2^Tv_1+cdots +c_nv_n^Tv_1)} {||v_1||} ]

此时若({ v_1,v_2,cdots,v_n })是一组正交基,这个式子就能变得较为简单

[c_1 = frac {v^Tcdot v_1} {||v_1||} ]

  上述过程可归纳为矩阵运算,假设(v)为列向量

[v^T = (c_1,c_2,cdots,c_n)cdot egin{bmatrix} v_1^T\ v_2^T\ vdots\ v_n^T end{bmatrix} ]

该矩阵的向量已经是正交向量,但不是单位正交向量,所以将其单位化,使得矩阵成为正交矩阵

[v^T = (c_1,c_2,cdots,c_n)cdot egin{bmatrix} frac {v_1^T}{||v_1||}\ frac {v_2^T}{||v_2||}\ vdots\ frac {v_n^T}{||v_n||} end{bmatrix} ]

因为该矩阵是正交矩阵,因此转置矩阵等于逆矩阵

[(c_1,c_2,cdots,c_n) = v^Tcdot left [frac {v_1}{||v_1||},frac {v_2}{||v_2||},cdots,frac {v_n}{||v_n||} ight] ]

1.1 函数正交

  傅里叶变换做的是函数基上的变换,因此它考虑的是函数的正交性。而它与向量的正交性含义是类似的,将函数看作向量。我们都知道向量正交时内积为0,那么可以看看函数之间的内积来理解函数的正交性。函数是一些函数值的组合,写成向量形式:

[f(x) = [f(x_0),f(x_1),cdots,f(x_n)]^T ]

那么两个函数的内积可表示为

[egin{aligned} f(x)cdot g(x) =& [f(x_0),f(x_1),cdots,f(x_n)]cdot [g(x_0),g(x_1),cdots,g(x_n)]^T\ = & sum_{i=0}^n f(x_i)cdot g(x_i) end{aligned} ]

对于连续函数,将求和替换为积分即可。

  于是得到函数内积的定义: (<f,g> = int _a^b fcdot ar g; dx)

  现在来看看三角函数的正交性,为了简化表达,假设函数的周期为(2pi)。以此得到的三角函数系为

[left { 0(sin0x), 1(cos0x),sinx,cosx,sin2x,cos2xcdots,sinnx ,cosnx ight } ]

根据正交的定义,该集中任意两个元素的内积为0,这里的内积是函数内积。

[int _{-pi}^{pi} sinixcdot cosjx; dx = int _{-pi}^pi frac 1 2 [sin(i+j)x+sin(i-j)x];dx=0 ;,; i,jin N \ int _{-pi}^{pi} sinixcdot sinjx; dx = -int _{-pi}^pi frac 1 2 [cos(i+j)x - cos(i-j)x];dx=0 ;,; i,jin N,i eq j\ int _{-pi}^{pi} cosixcdot cosjx; dx = int _{-pi}^pi frac 1 2 [cos(i+j)x + cos(i-j)x];dx=0 ;,; i,jin N,i eq j\ ]

  它们都可以用积化和差公式化为整数倍周期的单个正余弦的积分,而整数倍周期的正余弦函数的周期也是(2pi) ,所以积分为0。双余弦函数也一样,所以该函数系是一个正交的函数系。

2. 傅里叶级数

  怎样分解一个周期函数?并且是线性组合。函数一般的性质有单调性、奇偶性、对称性和周期性。很明显这里单调性和对称性没什么考虑的价值。首先周期函数的线性组合仍是周期函数,因此最好选用一组周期函数来拼凑。奇偶性呢,任意一个函数都能拆分为奇函数和偶函数之和:

[f(x) = frac {f(x)-f(-x)} {2} + frac { f(x)+f(-x)}{2} = f_{odd}+f_{even} ]

因此最好由一组既有奇函数又有偶函数的函数系来组成原函数,什么函数满足这些性质呢?

  傅里叶提出猜测:任意周期函数都可表示为三角函数的组合。三角函数都是周期函数,且函数系既有奇函数又有偶函数。更关键的是三角函数系是有一个正交集,这为线性组合的系数计算,以及后面的傅里叶变换提供了极大便利。假设周期为(T),因为正交三角系的周期是(2pi),因此以(w_n = frac {2pi n}{T})表示正交函数系的周期频率,叫做角频率,它与频率之间只是多了个(2pi)的关系。

根据分析,可写出周期函数分解的大致表达式

[f(x) = sum_{n=0}^{infty}a_ncos(w_n x) + sum_{n=0}^infty b_n sin(w_n x) ]

(n=0)时的(a_n)单独提出来

[f(x) = C + sum_{n=1}^infty a_ncos(w_n x) + sum_{n=1}^{infty} b_nsin(w_n x) ]

这就是我们常见的傅里叶级数形式。

  不过这并不完整,这只是给出了周期函数拆解的形式,这里面的系数还未确定。对于它系数的确定可以类比向量坐标的计算,因为三角函数系也是一个正交集,因此可通过计算内积的方式来确定其系数。

  为此,我们计算函数与函数系的内积来确定(C,a_n,b_n),对于(C)其函数系是(cos0x=1)

[egin{aligned} int _{-pi}^pi f(x)cdot 1 ;dx =& int _{-pi}^pi Cdx+ int _{-pi}^pi sum_{n=1}^infty a_ncos(w_n x)dx+int _{-pi}^pi sum_{n=1}^{infty} b_nsin(w_n x)dx\ int _{-pi}^pi f(x)dx =& 2pi C+0+0\ C = frac 1 {2pi} int _{-pi}^pi &f(x)dx end{aligned} ]

对于(a_n)(b_n)

[egin{aligned} int_{-pi}^pi f(x)cdot cos(w_n x)dx =& int_{-pi}^pi Ccdot cos(w_n x)dx+ int _{-pi}^pi sum_{n=1}^infty a_ncos^2(w_n x)dx+int _{-pi}^pi sum_{n=1}^{infty} b_nsin(w_n x)cos(w_n x)dx\ int_{-pi}^pi f(x)cdot cos(w_n x)dx =& int _{-pi}^pi sum_{n=1}^infty a_ncos^2(w_n x)dx\ int_{-pi}^pi f(x)cdot cos(w_n x)dx =& pi cdot a_n\ Rightarrow ;;;;;;;;;;a_n =& frac 1 pi int_{-pi}^pi f(x)cdot cos(w_n x)dx end{aligned} ]

同理

[b_n = frac 1 pi int_{-pi}^pi f(x) cdot sin(w_n x)dx ]

可见,(C)可以归纳为(a_0=2C),实际上(C)本就是原(a_n)中分离出来的

[C = frac {a_0} 2 ]

于是得到最终的傅里叶级数

[f(x) = frac {a_0} 2 + sum_{n=1}^infty a_ncos(w_n x) + sum_{n=1}^{infty} b_nsin(w_n x) ]

其中,

[a_n = frac 1 pi int_{-pi}^pi f(x)cdot cos(w_n x)dx,;;n=0,1,cdots,infty\ b_n = frac 1 pi int_{-pi}^pi f(x)cdot sin(w_n x)dx,;;n=1,cdots,infty\ ]

  通过一些代数运算,得到了傅里叶级数的系数。为了方便表达,这里的傅里叶级数是直接假设函数周期为(2pi)的函数。我们将傅里叶级数的分解与向量的分解进行了类比,定义了函数内积。利用三角函数的正交性,计算其函数基的内积求得各函数基前的系数。以向量的角度来看,函数基就是欧式空间中的基向量,而函数基前的系数就是向量的坐标。

3.傅里叶变换

3.1 扩展周期

  经过代数分析可以发现一个周期函数的傅里叶级数可以通过无穷多个不同频率的正余弦函数叠加得到。下面是一个关于傅里叶级数和变换非常经典的一副图像。

  图中是一个矩形波的分解,从时间轴角度看,不同周期和幅值的正余弦波形叠加形成了该矩形波。而从频率轴看,仅仅是不同的频率信号的不同幅值构成了该波形。当然不同频率的基波越多,可模拟的的信号复杂度也就越高,并且能够更好的拟合该波形。 至此,傅里叶级数能够通过使用相同周期的正余弦基函数来叠加生成对应的周期函数。但现实生活中更多的是非周期函数,傅里叶级数能分解它们吗。

  实际上,如果一个函数没有周期,可以将其看作是周期为无穷的周期函数。对于一个周期为(T)的函数,其频率取值间隔(w_n = frac {2pi n} T)随着(T)的增大而减小。

  可见,当周期为无穷大时,其频率会由离散的频率谱变成连续的频率函数(F(w)),也叫幅度谱。而这个关于频率(w)的函数(F(w))就是连续傅里叶变换要求的函数。函数值是频率分量(w)上的幅值大小。这里有个问题,这个幅值是如何计算呢?是否和傅里叶级数中的(a_n,b_n)相同?答案当然是“否”。对于傅里叶级数,同一个频率同时对应有正弦和余弦函数,这种情况它们之间如何分配呢?

3.2 复指数形式

  如果继续在这种离散情况下讨论正余弦函数之间的关系,可能会非常困难,好在欧拉给出了一个“上帝公式”

[e^{ix}=cosx+isinx ]

其中,(i) 是虚数单位,(x) 以弧度为单位。这一公式将三角函数与复指数函数关联起来,使得我们可以在复平面对三角函数进行分析。其证明有多种方法,比如泰勒、求导等。将由欧拉公式推导出来的正余弦函数的复指数表达带入傅里叶级数中

[sinx=frac {e^{ix}-e^{-ix}}{2i}\ cosx=frac {e^{ix}+e^{-ix}} 2 ]

带入

[egin{aligned} f(x) =& frac {a_0}2+sum_{n=1}^infty frac 1 2left {a_n[e^{iw_nx}+e^{-iw_nx}] -ib_n[e^{iw_nx}-e^{-iw_nx}] ight }\ =&frac {a_0}2+sum_{n=1}^infty frac {a_n-ib_n}{2}e^{iw_nx}+sum_{n=1}^infty frac{a_n+ib_n}{2}e^{-iw_nx}\ =&sum_{n=0}^0frac {a_0-ib_0}2 e^{icdot 0cdot x}+sum_{n=1}^infty frac {a_n-ib_n}{2}e^{iw_nx}+sum_{n=-infty}^{-1} frac{a_{-n}+ib_{-n}}{2}e^{iw_nx}\ end{aligned} ]

  经过变换,将(n)的求和范围正好扩充到((-infty,infty)) 。 注意在第三步中,为了使范围衔接,让频率取到了负值。但这只是为了公式推导,并无实际的物理意义。

  再对比上式三项的形式,复指数形式是一样的,其中(nge 0)时可归纳为相同的表达式。其中,(a_n,b_n)都是前面傅里叶系数中已计算过的,将其归纳为(C_n),则

[C_n=egin{cases} frac {a_n-ib_n}2, ;;n=0,1,2,cdots\ frac {a_{-n}+ib_{-n}}2, ;; n=-1,-2,-3,cdots end{cases} ]

(nge 0)时带入原(a_n,b_n)

[egin{aligned} C_n =& frac 1 2 cdot frac 2 Tleft [ int_0^T f(x)cdot cos(w_n x)dx -iint_0^Tf(x)cdot sin(w_nx)dx ight]\ =&frac 1 T int _0^T f(x)cdot [cos(w_nx)-isin(w_nx)]dx\ =&frac 1 T int _0^T f(x) cdot e^{-iw_nx}dx end{aligned} ]

(n<0)时带入原(a_n,b_n)

[egin{aligned} C_n =& frac 1 2 cdot frac 2 Tleft [ int_0^T f(x)cdot cos(-w_n x)dx +iint_0^Tf(x)cdot sin(-w_nx)dx ight]\ =&frac 1 T int _0^T f(x)cdot [cos(w_nx)-isin(w_nx)]dx\ =&frac 1 T int _0^T f(x) cdot e^{-iw_nx}dx end{aligned} ]

居然是一样的!因此,

[C_n = frac 1 T int _0^T f(x) cdot e^{-iw_nx}dx ]

得到傅里叶级数的复指数形式

[f(x) = sum_{-infty}^{infty} C_ncdot e^{iw_nx} ]

就是这么简洁优雅。

3.3 计算傅里叶变换

而前面已经说过,对于无周期函数,将其看作周期无穷大的函数即可,将(C_n)带入,注意积分周期(T),不能偷懒写了

[f(x) = underset {T ightarrow infty}{lim}sum_{n=-infty}^infty frac 1 T int_{-frac T 2}^{frac T 2}f(delta)cdot e^{-iw_ndelta}ddelta cdot e^{iw_nx} ]

注意(w_n=frac {2pi n}T),则

[ riangle w=w_{n+1}-w_n=frac {2pi} T ]

带入得

[f(x) = underset {T ightarrow infty}{lim}sum_{n=-infty}^infty frac { riangle w}{2pi} int_{-frac T 2}^{frac T 2}f(delta)cdot e^{-iw_ndelta}ddelta cdot e^{iw_nx} ]

(x)固定时,(frac {1}{2pi} int_{-frac T 2}^{frac T 2}f(delta)cdot e^{-iw_ndelta}ddelta cdot e^{iw_nx}) 是关于(w)的函数,记为(Phi(w)),则

[f(x) =underset {T ightarrow infty}{lim}sum_{n=-infty}^infty Phi(w) riangle w ]

显然,这是微积分的定义,将其写为积分形式

[f(x) = int_{-infty}^infty frac {1}{2pi} int_{-infty}^{ infty}f(delta)cdot e^{-iw_ndelta}ddelta cdot e^{iw_nx} dw ]

至此,便得到了傅里叶变换的公式,就藏在其中

[F(w) =int_{-infty}^{infty}f(x)cdot e^{-iw_nx}dx ]

[f(x) = frac {1}{2pi} int _{-infty}^infty F(w)cdot e^{iw_nx}dw ]

称为傅里叶变换的逆变换。

Reference:

[1] 复变函数与积分变换-焦红伟

[2] 正交性

[3] 微分方程概论-第四章:但什么是傅立叶级数呢?

[4] 如何理解傅立叶级数公式?

[5] 深入理解傅里叶变换

原文地址:https://www.cnblogs.com/breezezz/p/14338638.html