我是靠谱客的博主 能干手链,最近开发中收集的这篇文章主要介绍傅里叶级数和傅里叶变换(从线性代数角度),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

主要参考Stanford的公开课。

cos(x),sin(x), e i x e^{ix} eix 的转换

周期是 2 π 2 pi 2π 的情况
f ( x ) = a 0 + ∑ 1 ∞ a k c o s ( k x ) + ∑ 1 ∞ b k s i n ( k x ) f(x)=a_0+sumlimits_{1}^{infty} {a_k}cos(kx)+sumlimits_{1}^{infty}{b_k}sin(kx) f(x)=a0+1akcos(kx)+1bksin(kx)
f ( x ) = ∑ 0 ∞ c k e i k x f(x)=sumlimits_{0}^{infty}{c_k}e^{ikx} f(x)=0ckeikx
c k = a k 2 − i b k 2 ( k > 0 ) c_k=dfrac{a_k}{2}-idfrac{b_k}{2} (k>0) ck=2aki2bk(k>0)
由于 c − k = c k ‾ c_{-k}=overline{c_k} ck=ck,所以第二个式子中虚部最后是被消掉的。
假设
c k = a 2 − i b 2 c_k=frac{a}{2}-ifrac{b}{2} ck=2ai2b
    c k e i k x + c − k e − i k x spacespacespace c_ke^{ikx}+c_{-k}e^{-ikx}    ckeikx+ckeikx
= ( a − i b ) [ cos ⁡ ( k x ) + i sin ⁡ ( k x ) ] + ( a + i b ) [ cos ⁡ ( k x ) − i sin ⁡ ( k x ) ] 2 =dfrac{(a-ib)[cos(kx)+isin(kx)]+(a+ib)[cos(kx)-isin(kx)]}{2} =2(aib)[cos(kx)+isin(kx)]+(a+ib)[cos(kx)isin(kx)]
= a cos ⁡ k x + b sin ⁡ k x =acos{kx}+bsin{kx} =acoskx+bsinkx

把函数和向量类比

首先是复变函数内积的定义,
∫ f ( x ) g ( x ) ‾ d x int f(x)overline{g(x)}dx f(x)g(x)dx
有了内积之后,就可以定义正交了,
∫ f ( x ) g ( x ) ‾ d x = 0 int f(x)overline{g(x)}dx=0 f(x)g(x)dx=0
然后,
c o s ( x ) , c o s ( 2 x ) , c o s ( 3 x ) . . . s i n ( x ) , s i n ( 2 x ) , s i n ( 3 x ) . . . cos(x), cos(2x), cos(3x)... \ sin(x), sin(2x),sin(3x)... cos(x),cos(2x),cos(3x)...sin(x),sin(2x),sin(3x)...
是一组正交向量,但是本科的时候就只理解到这里,其实还可以再向后想一点点的,
. . . , e − 2 i x , e − i x , e 0 i x , e i x , e 2 i x , e 3 i x , . . . ...,e^{-2ix},e^{-ix},e^{0ix},e^{ix},e^{2ix},e^{3ix},... ...,e2ix,eix,e0ix,eix,e2ix,e3ix,...
也是一组正交的向量,但是后者更好,因为后面每个向量的长度是相同的,也就是,
∫ 0 2 π cos ⁡ x cos ⁡ x d x = π int_{0}^{2pi}cos{x}cos{x}dx=pi 02πcosxcosxdx=π
∫ 0 2 π 1 d x = 2 π int_{0}^{2pi}1dx=2pi 02π1dx=2π
∫ 0 2 π e i x e − i x d x = 2 π int_{0}^{2pi}e^{ix}e^{-ix}dx=2pi 02πeixeixdx=2π
还有一个小细节,这两组基的个数是相等的,都是整数的个数。
把一个函数转成一组正交函数的线性组合,相当于把这个函数向这些正交基投影,
c k 2 π = ∫ 0 2 π f ( x ) e i k x ‾ 2 π d x c_ksqrt{2pi}=int_{0}^{2pi} f(x){frac{overline{e^{ikx}}}{sqrt{2pi}}}dx ck2π =02πf(x)2π eikxdx
或者,
c k = 1 2 π ∫ 0 2 π f ( x ) e − i k x d x c_k=frac{1}{2pi}int_{0}^{2pi} f(x){e^{-ikx}}dx ck=2π102πf(x)eikxdx
周期为 T T T 时,
c k = 1 T ∫ 0 T f ( x ) e − i k 2 π T x d x c_k=frac{1}{T}int_{0}^{T} f(x){e^{-ikfrac{2pi}{T}x}}dx ck=T10Tf(x)eikT2πxdx
然后是收敛条件,
lim ⁡ k → ∞ ∫ 0 2 π ( f ( x ) − ∑ 0 k c k e i k x ) 2 d x = 0 limlimits_{krightarrowinfty}int_{0}^{2pi}(f(x)-sumlimits_{0}^{k}c_{k}e^{ikx})^2dx=0 klim02π(f(x)0kckeikx)2dx=0
积分和差的平方和在一起是不是有最小二乘法的感觉,用向量的东西做类比就是f(x)是可以完全被这组有无穷个的正交的基表示。
然后是energy,
∑ 0 ∞ ∣ c k ∣ 2 sumlimits_{0}^{infty}|c_k|^2 0ck2
或者,
∑ 0 ∞ c k c k ‾ sumlimits_{0}^{infty}c_koverline{c_k} 0ckck
也就是在取定基下,向量的长度。

傅里叶变换

从傅里叶级数到傅里叶变换,视频中老师用的办法是使 T → ∞ Trightarrowinfty T
具体是随便一个定义域是闭区间的函数,把这个函数的定义域扩大,扩大的地方函数值为0。由于周期越来越大,想要的傅里叶级数展开的每一项系数会越来越小,最终变为0。为了时傅里叶级数不为零,所以把求傅里叶级数的系数时前面要乘的 1 T frac{1}{T} T1 去掉,于是变为,
c k = ∫ − ∞ + ∞ f ( x ) e − i k x d x c_k=int_{-infty}^{+infty} f(x){e^{-ikx}}dx ck=+f(x)eikxdx
其实,这里我还是没有想明白。
不过也许可以从另一个角度想,
f ( x ) f(x) f(x) 可以看成是一组自然基底 δ ( x − x 0 ) , x 0 ∈ R delta(x-x_0),x_0in R δ(xx0),x0R 的线性组合,由于基是连续的,所以求和只好变为积分,
f ( x ) = ∫ − ∞ + ∞ f ( x 0 ) δ ( x − x 0 ) d x 0 f(x)=int_{-infty}^{+infty}f(x_0)delta(x-x_0)dx_0 f(x)=+f(x0)δ(xx0)dx0
同时, f ( x ) f(x) f(x) 还可以看成是另一组基底 e i 2 π s x , s ∈ R e^{i2{pi} sx},sin R ei2πsx,sR 的线性组合,
f ( x ) = ∫ − ∞ + ∞ c s e i 2 π s x d s f(x)=int_{-infty}^{+infty}c_s e^{i2{pi} sx}ds f(x)=+csei2πsxds
为了比较,把前面式子中的 x 0 x_0 x0 换成s,
f ( x ) = ∫ − ∞ + ∞ f ( s ) δ ( x − s ) d s f(x)=int_{-infty}^{+infty}f(s)delta(x-s)ds f(x)=+f(s)δ(xs)ds
这样就可以很清楚的看到:

  • f ( s ) f(s) f(s) c s c_s cs相对应,都是函数给定后,就确定的常数,只是前者是一眼就能看出的,后者需要傅里叶变换才能求出
  • δ ( x − s ) delta(x-s) δ(xs) e i 2 π s x e^{i2{pi} sx} ei2πsx 相对应 他们都是s 和 x 的函数,在x自由变化时,刚好组成两组正交的基底,并且两组基的个数是相同的,都是x可以取的值的个数,也就是实数的个数。

这里有个重要的等式,
∫ − ∞ + ∞ e i a s d s = δ ( a ) int_{-infty}^{+infty}e^{ias}ds=delta(a) +eiasds=δ(a)
或者,
∫ − ∞ + ∞ e i s x 1 e i s x 2 ‾ d s = ∫ − ∞ + ∞ e i s x 1 e − i s x 2 d s = ∫ − ∞ + ∞ e i s ( x 1 − x 2 ) d s = δ ( x 1 − x 2 ) int_{-infty}^{+infty}e^{isx_1}overline{e^{isx_2}}ds= int_{-infty}^{+infty}e^{isx_1}{e^{-isx_2}}ds=int_{-infty}^{+infty}e^{is(x_1-x_2)}ds=delta(x1-x2) +eisx1eisx2ds=+eisx1eisx2ds=+eis(x1x2)ds=δ(x1x2)

把逆变换公式代入变换

为了方便我们假设变换公式
F ( w ) = ∫ − ∞ + ∞ f ( t ) e − j w t d t F(w)=int_{-infty}^{+infty}f(t)e^{-jwt}dt F(w)=+f(t)ejwtdt
逆变换公式 (其实,对比傅里叶级数,逆变换公式是更容易的理解的)
f ( t ) = ∫ − ∞ + ∞ F ( w ) e j w t d w f(t)=int_{-infty}^{+infty}F(w)e^{jwt}dw f(t)=+F(w)ejwtdw
逆变换代入变换
F ( w 0 ) = ∫ − ∞ + ∞ [ ∫ − ∞ + ∞ F ( w ) e j w t d w ] e − j w 0 t d t F(w_0)=int_{-infty}^{+infty} left[ int_{-infty}^{+infty}F(w)e^{jwt}dw right] e^{-jw_0t}dt F(w0)=+[+F(w)ejwtdw]ejw0tdt
F ( w 0 ) = ∫ − ∞ + ∞ [ ∫ − ∞ + ∞ F ( w ) e j ( w − w 0 ) t d w ] d t F(w_0)=int_{-infty}^{+infty} left[ int_{-infty}^{+infty}F(w)e^{j(w-w_0)t}dw right] dt F(w0)=+[+F(w)ej(ww0)tdw]dt
交换内外积分,
= ∫ − ∞ + ∞ [ ∫ − ∞ + ∞ F ( w ) e j ( w − w 0 ) t d t ] d w =int_{-infty}^{+infty} left[ int_{-infty}^{+infty}F(w)e^{j(w-w_0)t}dt right] dw =+[+F(w)ej(ww0)tdt]dw
= ∫ − ∞ + ∞ F ( w ) [ ∫ − ∞ + ∞ e j ( w − w 0 ) t d t ] d w =int_{-infty}^{+infty}F(w) left[ int_{-infty}^{+infty}e^{j(w-w_0)t}dt right] dw =+F(w)[+ej(ww0)tdt]dw
= ∫ − ∞ + ∞ F ( w ) δ ( w − w 0 ) d w =int_{-infty}^{+infty}F(w) delta(w-w_0) dw =+F(w)δ(ww0)dw
= F ( w 0 ) =F(w_0) =F(w0)

最后

以上就是能干手链为你收集整理的傅里叶级数和傅里叶变换(从线性代数角度)的全部内容,希望文章能够帮你解决傅里叶级数和傅里叶变换(从线性代数角度)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部