傅里叶级数与傅里叶变换公式推导「建议收藏」

傅里叶级数与傅里叶变换公式推导「建议收藏」首先,傅里叶分析是指把一个周期或非周期函数展开成一个个三角函数的叠加,如果是对其还没有基本概念的,可以看看傅里叶分析之掐死教程,这篇文章不依赖数学公式却又十分透彻地讲述了傅里叶分析的基本概念,十分值得一读。但如果先深入探讨其中的数学由来,接下来会讲述详细的数学推导。傅里叶级数三角函数系的正交性三角函数系:{1,sinx,cosx,sin2x,cos2x,…,sinnx,cosnx,…},它由无数个sinnx和cosnx组成,其中n=0,1,2,…。正交性:∫−ππsin⁡nxcos⁡mxdx=0,

大家好,又见面了,我是你们的朋友全栈君。

首先,傅里叶分析是指把一个周期或非周期函数展开成一个个三角函数的叠加,如果是对其还没有基本概念的,可以看看傅里叶分析之掐死教程,这篇文章不依赖数学公式却又十分透彻地讲述了傅里叶分析的基本概念,十分值得一读。但如果先深入探讨其中的数学由来,接下来会讲述详细的数学推导。

傅里叶级数

三角函数系的正交性

三角函数系:{1,sinx,cosx,sin2x,cos2x,…,sinnx,cosnx,…},它由无数个sinnx和cosnx组成,其中n=0,1,2,…。

正交性:
∫ − π π sin ⁡ n x cos ⁡ m x d x = 0 \int^\pi_{-\pi}\sin nx \cos mx dx = 0 ∫−ππ​sinnxcosmxdx=0

∫ − π π cos ⁡ n x cos ⁡ m x d x = 0 , n ≠ m \int^\pi_{-\pi}\cos nx \cos mx dx = 0,n\neq m ∫−ππ​cosnxcosmxdx=0,n​=m

∫ − π π sin ⁡ n x sin ⁡ m x d x = 0 , n ≠ m \int^\pi_{-\pi}\sin nx \sin mx dx = 0,n\neq m ∫−ππ​sinnxsinmxdx=0,n​=m

当向量点乘等于0:
a ⃗ ⋅ b ⃗ = 0 \vec a \cdot \vec b = 0 a
⋅
b
=
0

则两个向量正交。

拓展到函数中,两个函数相乘,原本点乘的加和变成取积分,则:
∫ x 2 x 1 f ( x ) g ( x ) d x = 0 \int^{x_1}_{x_2}f(x) g(x) dx = 0 ∫x2​x1​​f(x)g(x)dx=0
称为两个函数正交。

证明其正交性,可以用积化和差公式:
∫ − π π cos ⁡ n x cos ⁡ m x d x = 1 2 ∫ − π π [ c o s ( n − m ) x + c o s ( n + m ) x ] d x = 0 \int^\pi_{-\pi}\cos nx \cos mx dx = \frac{1}{2}\int^\pi_{-\pi}[cos(n-m)x+cos(n+m)x]dx =0 ∫−ππ​cosnxcosmxdx=21​∫−ππ​[cos(n−m)x+cos(n+m)x]dx=0
其他情况同理。

周期为2π的函数展开

因此当一个函数f(x)周期为2π时,可以展开成
f ( x ) = ∑ n = 0 ∞ a n c o s n x + ∑ n = 0 ∞ b n s i n n x = 1 2 a 0 + ∑ n = 1 ∞ ( a n c o s n x + b n s i n n x ) f(x) = \sum^\infty_{n=0}a_ncosnx + \sum^\infty_{n=0}b_nsinnx = \frac 1 2 a_0 + \sum^\infty_{n=1}({a_ncosnx + b_nsinnx}) f(x)=n=0∑∞​an​cosnx+n=0∑∞​bn​sinnx=21​a0​+n=1∑∞​(an​cosnx+bn​sinnx)
对两边取积分,由于三角函数的正交性
∫ − π π f ( x ) d x = 1 2 ∫ − π π a 0 d x = π a 0 \int_{-\pi}^\pi f(x)dx = \frac1 2\int_{-\pi}^\pi a_0dx = \pi a_0 ∫−ππ​f(x)dx=21​∫−ππ​a0​dx=πa0​

a 0 = 1 π ∫ − π π f ( x ) d x a_0 = \frac 1 {\pi}\int_{-\pi}^\pi f(x)dx a0​=π1​∫−ππ​f(x)dx

原式乘以cos mx 再对两边取积分可得:
∫ − π π f ( x ) cos ⁡ m x d x = ∑ n = 1 ∞ ∫ − π π a n c o s n x c o s m x d x = ∫ − π π a n c o s 2 n x d x = a n π \int^\pi_{-\pi}f(x) \cos mx dx = \sum^\infty_{n=1}\int^\pi_{-\pi} a_ncosnx cosmx dx = \int^\pi_{-\pi} a_ncos^2 nx dx = a_n\pi ∫−ππ​f(x)cosmxdx=n=1∑∞​∫−ππ​an​cosnxcosmxdx=∫−ππ​an​cos2nxdx=an​π

a n = 1 π ∫ − π π f ( x ) cos ⁡ n x d x a_n = \frac 1 \pi \int^\pi_{-\pi}f(x) \cos nx dx an​=π1​∫−ππ​f(x)cosnxdx

同理,两边同乘sinmx再取积分可得:
b n = 1 π ∫ − π π f ( x ) sin ⁡ n x d x b_n = \frac 1 \pi \int^\pi_{-\pi}f(x) \sin nx dx bn​=π1​∫−ππ​f(x)sinnxdx

周期为2L的函数展开

利用换元的方法,令: x = π L t x = \frac \pi L t x=Lπ​t ,即 t = L π x t = \frac L \pi x t=πL​x,可得:
f ( t ) = a 0 2 + ∑ n = 1 ∞ ( a n c o s n π L t + b n s i n n π L t ) f(t) = \frac {a_0} 2 + \sum^\infty_{n=1}({a_ncos \frac{n\pi}{L}t + b_nsin\frac{n\pi}{L}t}) f(t)=2a0​​+n=1∑∞​(an​cosLnπ​t+bn​sinLnπ​t)

a 0 = 1 L ∫ − L L f ( t ) d t a_0 = \frac 1 {L}\int_{-L}^L f(t)dt a0​=L1​∫−LL​f(t)dt

a n = 1 L ∫ − L L f ( x ) cos ⁡ n x d x a_n = \frac 1 L \int^L_{-L}f(x) \cos nx dx an​=L1​∫−LL​f(x)cosnxdx

b n = 1 L ∫ − L L f ( x ) sin ⁡ n x d x b_n = \frac 1 L \int^L_{-L}f(x) \sin nx dx bn​=L1​∫−LL​f(x)sinnxdx

在工程中t总是从0开始,周期T=2L,ω = π L = 2 π T \frac \pi L = \frac 2\pi T Lπ​=π2​T,此时:
f ( t ) = a 0 2 + ∑ n = 1 ∞ ( a n c o s ω t + b n s i n ω t ) f(t) = \frac {a_0} 2 + \sum^\infty_{n=1}({a_ncosωt + b_nsinωt}) f(t)=2a0​​+n=1∑∞​(an​cosωt+bn​sinωt)

a 0 = 2 T ∫ 0 T f ( t ) d t a_0 = \frac 2 {T}\int_{0}^T f(t)dt a0​=T2​∫0T​f(t)dt

a n = 2 T ∫ 0 T f ( x ) cos ⁡ n x d x a_n = \frac 2 T \int^T_{0}f(x) \cos nx dx an​=T2​∫0T​f(x)cosnxdx

b n = 2 T ∫ 0 T f ( x ) sin ⁡ n x d x b_n = \frac 2 T \int^T_{0}f(x) \sin nx dx bn​=T2​∫0T​f(x)sinnxdx

傅里叶级数的复数表达形式

欧拉公式:$ e^{iθ} = cosθ + isinθ$

可得:
c o s θ = 1 2 ( e i θ + e − i θ ) cosθ = \frac 1 2 (e^{iθ}+e^{-iθ}) cosθ=21​(eiθ+e−iθ)

s i n θ = 1 2 i ( e i θ − e − i θ ) sinθ = \frac 1 2 i(e^{iθ}-e^{-iθ}) sinθ=21​i(eiθ−e−iθ)

把这两条式子代入f(t)的式子中可得:
f ( t ) = a 0 2 + ∑ n = 1 ∞ a n − i b n 2 e i n ω t + ∑ n = 1 ∞ a n + i b n 2 e − i n ω t = ∑ n = 0 0 a 0 2 e i n ω t + ∑ n = 1 ∞ a n − i b n 2 e i n ω t + ∑ n = − 1 − ∞ a − n + i b − n 2 e i n ω t = ∑ − ∞ ∞ C n e i n ω t f(t) = \frac {a_0} 2 + \sum_{n=1}^\infty \frac {a_n-ib_n} 2 e^{in\omega t}+ \sum_{n=1}^\infty \frac {a_n+ib_n} 2 e^{-in\omega t} = \sum_{n=0}^0 \frac {a_0} 2 e^{in\omega t} + \sum_{n=1}^\infty \frac {a_n-ib_n} 2 e^{in\omega t}+ \sum_{n=-1}^{-\infty} \frac {a_{-n}+ib_{-n}} 2 e^{in\omega t} = \sum_{-\infty}^\infty C_n e^{in\omega t} f(t)=2a0​​+n=1∑∞​2an​−ibn​​einωt+n=1∑∞​2an​+ibn​​e−inωt=n=0∑0​2a0​​einωt+n=1∑∞​2an​−ibn​​einωt+n=−1∑−∞​2a−n​+ib−n​​einωt=−∞∑∞​Cn​einωt
当n = 0时,
C n = a 0 2 = 1 T ∫ 0 T f ( t ) d t C_n = \frac {a_0} 2 = \frac 1 {T}\int_{0}^T f(t)dt Cn​=2a0​​=T1​∫0T​f(t)dt
当n > 0时,
C n = a n − i b n 2 = 1 2 ( 2 T ∫ 0 T f ( t ) c o s n ω t − i 2 T ∫ 0 T f ( t ) s i n n ω t ) = 1 T ∫ 0 T f ( t ) ( c o s n ω t − i s i n n ω t ) d t = 1 T ∫ 0 T f ( t ) e − i n ω t d t C_n = \frac {a_n-ib_n} 2 = \frac 1 2 (\frac 2 T \int_0^T f(t)cos{n\omega t} – i\frac 2 T \int_0^Tf(t)sin{n\omega t}) = \frac 1 T \int_0^T f(t)(cos{n\omega t} – isin{n\omega t}) dt = \frac 1 T \int_0^T f(t) e^{-in\omega t}dt Cn​=2an​−ibn​​=21​(T2​∫0T​f(t)cosnωt−iT2​∫0T​f(t)sinnωt)=T1​∫0T​f(t)(cosnωt−isinnωt)dt=T1​∫0T​f(t)e−inωtdt
当n < 0时,
C n = a − n + i b − n 2 = 1 T ∫ 0 T f ( t ) ( c o s n ω t − i s i n n ω t ) d t = 1 T ∫ 0 T f ( t ) e − i n ω t d t C_n = \frac {a_{-n}+ib_{-n}} 2 = \frac 1 T \int_0^T f(t)(cos{n\omega t} – isin{n\omega t}) dt = \frac 1 T \int_0^T f(t) e^{-in\omega t}dt Cn​=2a−n​+ib−n​​=T1​∫0T​f(t)(cosnωt−isinnωt)dt=T1​∫0T​f(t)e−inωtdt

因此得出结论,一个周期函数f(t)有f(t)=f(t+T)时:
f ( t ) = ∑ − ∞ ∞ C n e i n ω t f(t) = \sum_{-\infty}^\infty C_n e^{in\omega t} f(t)=−∞∑∞​Cn​einωt

C n = 1 T ∫ 0 T f ( t ) e − i n ω t d t C_n = \frac 1 T \int_0^T f(t) e^{-in\omega t}dt Cn​=T1​∫0T​f(t)e−inωtdt

傅里叶变换

对于 C n C_n Cn​来说,它的值是一个复数,而nω是一个离散的值,那么可以在代表nω的轴上一个个特定的点上设一个平面,这个平面是一个复平面,它的长度和方向代表 C n C_n Cn​:
在这里插入图片描述

在工程上,横坐标为时间的波形图称为时域表达,而这幅图显示的是在各种不同频率下的值,称为频域表达,也是波形图的频谱,这就是从不同的角度看时间,每一种波形都对应一种频谱。不过很多时候的频谱都不是这种复平面三维的,我们会把 C n C_n Cn​的幅度即模单独拿出来,就可以表示这个函数在不同频率下的强度了。
在这里插入图片描述

当T增大时,ω数值减小,nω之间就挨得越近。T趋于无穷时会形成一条连续的曲线:

在这里插入图片描述

由:
f ( t ) = ∑ − ∞ ∞ C n e i n ω t f(t) = \sum_{-\infty}^\infty C_n e^{in\omega t} f(t)=−∞∑∞​Cn​einωt

C n = 1 T ∫ 0 T f ( t ) e − i n ω t d t C_n = \frac 1 T \int_0^T f(t) e^{-in\omega t}dt Cn​=T1​∫0T​f(t)e−inωtdt

得到:
f T ( t ) = ∑ n = − ∞ ∞ 1 T ∫ − T 2 T 2 f T ( t ) e − i n ω 0 t d t e i n ω 0 t f_T(t) = \sum_{n=-\infty}^{\infty}\frac 1 T \int_{-\frac T 2}^{\frac T 2} f_T(t) e^{-in\omega_0 t}dt e^{inω_0t} fT​(t)=n=−∞∑∞​T1​∫−2T​2T​​fT​(t)e−inω0​tdteinω0​t

f T ( t ) = ∑ n = − ∞ ∞ Δ ω 2 π ∫ − T 2 T 2 f T ( t ) e − i n ω 0 t d t e i n ω 0 t f_T(t) = \sum_{n=-\infty}^{\infty}\frac {\Deltaω} {2\pi} \int_{-\frac T 2}^{\frac T 2} f_T(t) e^{-in\omega_0 t}dt e^{inω_0t} fT​(t)=n=−∞∑∞​2πΔω​∫−2T​2T​​fT​(t)e−inω0​tdteinω0​t

当 T → ∞ T \rightarrow \infty T→∞:
f ( t ) = 1 2 π ∫ − ∞ ∞ ∫ − ∞ ∞ f ( t ) e − i ω t d t e i n ω t d ω f(t) = \frac {1} {2\pi} \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f(t) e^{-i\omega t}dt e^{inωt}d\omega f(t)=2π1​∫−∞∞​∫−∞∞​f(t)e−iωtdteinωtdω
因此我们把中间的公式称为傅里叶变换(FT):
F ( ω ) = ∫ − ∞ ∞ f ( t ) e − i ω t d t F(ω) = \int_{-\infty}^{\infty} f(t) e^{-i\omega t}dt F(ω)=∫−∞∞​f(t)e−iωtdt
通过这个函数可以表示在任何频率的情况下的三角函数的波形的振幅,这通常是一个复数a+bi,其中实数部分代表cos,虚数部分代表sin。而负频率没有现实意义,其振幅为正频率的共轭,只是为了在数学上的计算便利,实际上用 a 2 + b 2 \sqrt{a^2+b^2} a2+b2
​
表示其振幅。

外面套的公式称为傅里叶变换的逆变换(IFT):
f ( t ) = 1 2 π ∫ − ∞ ∞ F ( ω ) e i ω t d ω f(t) = \frac {1} {2\pi} \int_{-\infty}^{\infty} F(ω) e^{iωt}d\omega f(t)=2π1​∫−∞∞​F(ω)eiωtdω
傅里叶变换的所有内容讲解完毕了,傅里叶变换其实是一种特殊的拉普拉斯变换(s=iω),遵循拉普拉斯变换的所有性质。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160865.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在毕设中学习03

    在毕设中学习035.24文献阅读记录脑电分为诱发性脑电和自发性脑电,诱发性脑电的诱发因素又分为外源性刺激(视觉听觉触觉)和内源性事件相关(计算、思考)keras库keras以TensorFlow/Theano作为后端封装,是一个专门用于深度学习的python模块。包含了全连接层,卷积层,池化层,循环层,嵌入层等等等,常见的深度学习模型。包含用于定义损失函数的Losses用于训练模型的Optimizers评估模型的Metrics定义激活函数的Activations防止过拟合的Regularizers等mn

    2022年8月11日
  • c语言return x_没有return

    c语言return x_没有returnint GetX() const;int 表示函数返回值为复int型;()为空表示该函数不需要参数制;const 表示该函数不修改百任何值;加起来就是:定义一个返回值类型为度 int 参数为void 名为GetX 的常知函数;类的常对象只道能调用这种常成员函数。const修饰知变量的时候,表示该变量是常量,也就是不可以改变的变量。当const放在成员函道数”尾巴”上修饰成员函数时,则…

    2022年8月18日
  • linux下gdb调试方法与技巧整理「建议收藏」

    linux下gdb调试方法与技巧整理「建议收藏」目录一、gdb简介二、gdb使用流程1、启动gdb2、查看源码3、运行程序4、设置断点5、单步执行6、查看变量7、退出gdb三、gdb基本使用命令1、运行命令2、设置断点3、查看源码4、打印表达式5、查看运行信息6、分割窗口7、cgdb强大工具四、总结一、gdb简介GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。对于一名Linux下…

    2022年5月25日
  • 为了1024[通俗易懂]

    为了1024[通俗易懂]为了1024

    2022年6月24日
  • 【敬初学者】Python基础学完了,该怎么知道自己学的怎么样呢?十个经典实战小项目附源码

    【敬初学者】Python基础学完了,该怎么知道自己学的怎么样呢?十个经典实战小项目附源码初学者要想成功,一句话,大量的实操,大量的练,乍一看我的这个答案似乎有点敷衍,但是这确实是我接触Python以来,总结出的最有价值的经验,接下来分享我自己初学时用来练手的经典实战小项目,适合初学者敲的代码。1.街霸游戏1.1KO街霸游戏小剧场特别调查员春丽突然收到了来自中尉查理的一封邮件,邮件里详细地说明了神月家族在美国唐人街举办的街霸挑战赛,挑战的终极boss正是街霸维加。春丽在很小的时候,父亲就被维加残忍地杀害,为报父仇,春丽毅然决然地买好了飞往唐人街的机票。邪恶的维加正通过催眠术,控制着

    2022年5月24日
  • 虚拟机iso镜像文件在哪_虚拟机系统镜像下载

    虚拟机iso镜像文件在哪_虚拟机系统镜像下载虚拟机windowsxpsp3原版原版的镜像:http://www.7xdown.com/Download.asp?ID=3319&amp;URL=http://d5.7xdown.com/soft2/&amp;file=WindowsXP-SP3-VOLMSDN.rar,直接复制进迅雷下载就可以。序列号:MRX3F-47B9T-2487J-KWKMF-RPWBY,激活密钥:MRX3F-4…

    2022年8月16日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号