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

傅里叶级数与傅里叶变换公式推导「建议收藏」首先,傅里叶分析是指把一个周期或非周期函数展开成一个个三角函数的叠加,如果是对其还没有基本概念的,可以看看傅里叶分析之掐死教程,这篇文章不依赖数学公式却又十分透彻地讲述了傅里叶分析的基本概念,十分值得一读。但如果先深入探讨其中的数学由来,接下来会讲述详细的数学推导。傅里叶级数三角函数系的正交性三角函数系:{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ω),遵循拉普拉斯变换的所有性质。

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

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

(0)
上一篇 2022年7月17日 上午8:16
下一篇 2022年7月17日 上午8:36


相关推荐

  • Double值保留两位小数的四种方法

    Double值保留两位小数的四种方法publicclassD 保留两位小数第三位如果大于 4 会进一位 四舍五入 doublef 6 23556 使用精确小数 BigDecimal publicvoidfu BigDecimalbg newBigDecima f

    2026年3月18日
    2
  • 老电脑 升级 cpu性能排行 高性价比的cpu主板选择

    老电脑 升级 cpu性能排行 高性价比的cpu主板选择老电脑升级cpu性能排行高性价比的cpu主板选择4核ddr2ddr3

    2026年1月30日
    4
  • 安卓log日志查看工具_手机怎么查看错误日志

    安卓log日志查看工具_手机怎么查看错误日志一个完整的程序日志记录功能是必不可少的,通过日志我们可以了解程序运行详情、错误信息等,以便更好的发现及解决问题。日志可以记录到数据库、日志服务器、文件等地方,本文主要介绍文件日志。 文

    2022年8月1日
    9
  • NodeRed安装与反向代理配置

    NodeRed安装与反向代理配置Node RED 是一个基于浏览器的可视化编程工具 通过简单的托拉拽 就能够简单快速地将硬件设备 API 和在线服务通过 MQTT TCP Websocket HTTP 等组件连接在一起 一览为快 1 安装项目地址 https github com node red node red 安装 sudonpminsta gunsafe permnode red 启动 node

    2026年3月19日
    2
  • vue-cli设置proxy代理

    vue-cli设置proxy代理Proxy 是什么 proxy 是 ES6 中就存在的 用于修改某些操作的默认行为 可以理解成在目标对象前设一个拦截层 因此也叫 代理器 如果你的前端应用和后端 API 服务器没有运行在同一个主机上 你需要在开发环境下将 API 请求代理到 API 服务器 这个问题可以通过 vue config js 中的 devServer proxy 选项来配置 Proxy 的语法 ES6 原生提供的 Proxy 语法很简单 用法如下 letproxy newProxy target handler 如

    2026年3月16日
    2
  • C++ 实现 发送HTTP Get/Post请求

    C++ 实现 发送HTTP Get/Post请求1 简述最近简单看了一下关于 HTTP 请求方面的知识 之前一直用 Qt 来实现 有专门 HTTP 请求的 QNetworkAcce 类来处理 实现也比较简单 这里主要讲解一下用 C 代码来实现 HTTP 的 Get Post 请求 一个 HTTP 请求报文由请求行 requestline 请求头 header 和请求数据 3 个部分组成 注意请求头部分和请求数据中间需要加上 r n 下图给

    2026年3月20日
    2

发表回复

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

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