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

傅里叶级数与傅里叶变换公式推导「建议收藏」首先,傅里叶分析是指把一个周期或非周期函数展开成一个个三角函数的叠加,如果是对其还没有基本概念的,可以看看傅里叶分析之掐死教程,这篇文章不依赖数学公式却又十分透彻地讲述了傅里叶分析的基本概念,十分值得一读。但如果先深入探讨其中的数学由来,接下来会讲述详细的数学推导。傅里叶级数三角函数系的正交性三角函数系:{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=0n=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=0n=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 x2x1f(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(nm)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=0ancosnx+n=0bnsinnx=21a0+n=1(ancosnx+bnsinnx)
对两边取积分,由于三角函数的正交性
∫ − π π 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ππa0dx=π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ππancosnxcosmxdx=ππancos2nxdx=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=πLx,可得:
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(ancosLnπt+bnsinLnπt)

a 0 = 1 L ∫ − L L f ( t ) d t a_0 = \frac 1 {L}\int_{-L}^L f(t)dt a0=L1LLf(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=L1LLf(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=L1LLf(x)sinnxdx

在工程中t总是从0开始,周期T=2L,ω = π L = 2 π T \frac \pi L = \frac 2\pi T Lπ=π2T,此时:
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(ancosωt+bnsinωt)

a 0 = 2 T ∫ 0 T f ( t ) d t a_0 = \frac 2 {T}\int_{0}^T f(t)dt a0=T20Tf(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=T20Tf(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=T20Tf(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θ+eiθ)

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

把这两条式子代入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=12anibneinωt+n=12an+ibneinωt=n=002a0einωt+n=12anibneinωt+n=12an+ibneinωt=Cneinω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=T10Tf(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=2anibn=21(T20Tf(t)cosnωtiT20Tf(t)sinnωt)=T10Tf(t)(cosnωtisinnωt)dt=T10Tf(t)einω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=2an+ibn=T10Tf(t)(cosnωtisinnωt)dt=T10Tf(t)einω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)=Cneinω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=T10Tf(t)einω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)=Cneinω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=T10Tf(t)einω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=T12T2TfT(t)einω0tdteinω0t

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πΔω2T2TfT(t)einω0tdteinω0t

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π1f(t)eiω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)eiω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π1F(ω)eiωtdω
傅里叶变换的所有内容讲解完毕了,傅里叶变换其实是一种特殊的拉普拉斯变换(s=iω),遵循拉普拉斯变换的所有性质。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • lea 指令_lea指令的功能

    lea 指令_lea指令的功能leaw#2个字节leal#4个字节leaq#8个字节leabase_address(offset_address,index,size),%rax根据括号里的源操作数来计算地址,然后把地址加载到目标寄存器中。计算地址base_address+offset_address+index*size,然后把最终地址载到寄存器rax中。lea不引用源操作数里的寄存器,只是单…

    2022年10月29日
  • Python实现翻译小工具「建议收藏」

    Python实现翻译小工具「建议收藏」一、背景利用Requests模块获取有道词典web页面的post信息,BeautifulSoup来获取需要的内容,通过tkinter模块生成gui界面。二、代码git源码地址fanyi.py代

  • SqlSessionTemplate探究

    SqlSessionTemplate探究问题就是:无论是多个dao使用一个SqlSessionTemplate,还是一个dao使用一个SqlSessionTemplate,SqlSessionTemplate都是对应一个sqlSession,当多个web线程调用同一个dao时,它们使用的是同一个SqlSessionTemplate,也就是同一个SqlSession,如何保证线程安全,关键就在于代理:(1)首先,通过如下代码创建代理类

  • 鼠标双击测试器_鼠标测试软件怎么用

    鼠标双击测试器_鼠标测试软件怎么用鼠标双击测试

  • vue双向绑定经典案例「建议收藏」

    vue双向绑定经典案例「建议收藏」1、无需废话,直接上代码复制到新建的记事本文件,保存问demo.html即可。<scriptsrc=”https://cdn.staticfile.org/vue/2.2.2/vue.min.js”></script><!DOCTYPEhtml><html><head><metacharset=”utf-8″><title>欢迎系统</title></head>

  • microsoft visual studio最新版本_visual studio 2019下载安装教程

    microsoft visual studio最新版本_visual studio 2019下载安装教程微软已经向MSDN订阅用户提供了VisualStudio2013正式版镜像下载,不过非MSDN用户可以在微软的VisualStudio2013官方网站上下载到正式版镜像(通过下载专业版本,已验证与MSDN版本一致)。下面为大家整理一下个版本下载地址。MicrosoftVisualStudioUltimate2013(简体中文旗舰版)文件名: cn_visual_st

发表回复

您的电子邮箱地址不会被公开。

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