浅入理解傅里叶变换

文章首发于个人站点:隐舍 | 理解傅里叶变换

傅里叶变换

傅立叶变换是将时域的函数转换成频域上的函数,是对于同一个函数的不同视角。数学定义如下:
F ( w ) = F ( f ( t ) ) = ∫ f ( t ) e − i w t d t F(w)=F(f(t))=\int{f(t)e^{-iwt}}dt F(w)=F(f(t))=f(t)eiwtdt

笛卡尔坐标系中的变换

对着数学公式来理解傅里叶变换确实有点难度,下面先从笛卡尔坐标系了解什么是变换。

上图为一个简单的二维笛卡尔坐标系,从图中我们可以看出A点坐标为(-3,1),B点坐标为(2,3),那么为什么可以这样表示呢?

这是由于笛卡尔坐标系中定义了一组标准正交基 e x = ( 1 , 0 ) e_x=(1, 0) ex=(1,0) e y = ( 0 , 1 ) e_y=(0,1) ey=(0,1),(PS:基是向量,正交基指不同基的内积为0,标准基指基的模为1)

以点D为中心那么点A的位置可以表示为 − 3 e x + e y -3e_x+e_y 3ex+ey,点B的位置可以表示为 2 e x + 3 e y 2e_x+3e_y 2ex+3ey,从式中可以看出点的坐标是由基前面的系数表示的。

上面笛卡从尔坐标系中点的坐标表示也是一种变换,将图中顶点变换到坐标系中表示。傅里叶变换只是相对更加复杂的变换而已!

傅里叶级数

傅里叶变换包括傅里叶级数和连续傅里叶变换,下面先讨论傅里叶级数。

傅立叶级数适用于周期性函数,可以将任何周期性函数分解成简单震荡函数的集合(正弦函数和余弦函数),如下图所示:

在这里插入图片描述

上图左侧是一个周期函数,右侧是将周期函数分解成多个简单震荡函数,这个周期函数用数学公式可以表达为:
f ( t ) ≈ 2.5 + 10 π ( sin ⁡ π t 4 + 1 3 sin ⁡ 3 π t 4 + 1 5 sin ⁡ 5 π t 4 + 1 7 sin ⁡ 7 π t 4 ) f(t) \approx 2.5+\frac{10}{\pi}\left(\sin \frac{\pi t}{4}+\frac{1}{3} \sin \frac{3 \pi t}{4}+\frac{1}{5} \sin \frac{5 \pi t}{4}+\frac{1}{7} \sin \frac{7 \pi t}{4}\right) f(t)2.5+π10(sin4πt+31sin43πt+51sin45πt+71sin47πt)
图中左侧的信号是随着时间而变化的,称为时域(time domain)

根据右侧分解的多个简单震荡函数可知,不同的震荡函数有不同的振幅和频率。以第一个波形为例,振幅 A = 1 A=1 A=1,频率 f = w / 2 π = 1 / 8 f=w/2\pi=1/8 f=w/2π=1/8。如何以频率为横坐标,振幅为纵坐标那么可以表示为下图:

图中所示信号随频率而变化的,称为频域(frequency domain)

上述两图中以时域和频域所表示的信号是等价的,只是从不同角度来看。用一张动态图来看一下不同角度下的效果:

先来看一下傅里叶级数的公式:
f ( t ) = a 0 2 + a 1 cos ⁡ ( ω t ) + b 1 sin ⁡ ( ω t ) + a 2 cos ⁡ ( 2 ω t ) + b 2 sin ⁡ ( 2 ω t ) + … = a 0 2 + ∑ n = 1 ∞ [ a n cos ⁡ ( n ω t ) + b n sin ⁡ ( n ω t ) ] \begin{aligned} f(t) &=\frac{a_{0}}{2}+a_{1} \cos (\omega t)+b_{1} \sin (\omega t) \\ &+a_{2} \cos (2 \omega t)+b_{2} \sin (2 \omega t) \\ &+\ldots \\ &=\frac{a_{0}}{2}+\sum_{n=1}^{\infty}\left[a_{n} \cos (n \omega t)+b_{n} \sin (n \omega t)\right] \end{aligned} f(t)=2a0+a1cos(ωt)+b1sin(ωt)+a2cos(2ωt)+b2sin(2ωt)+=2a0+n=1[ancos(nωt)+bnsin(nωt)]
其中,
a n = 2 T ∫ t 0 t 0 + T f ( t ) cos ⁡ ( n ω t ) d t b n = 2 T ∫ t 0 t 0 + T f ( t ) sin ⁡ ( n ω t ) d t \begin{aligned} a_{n} &=\frac{2}{T} \int_{t_{0}}^{t_{0}+T} f(t) \cos (n \omega t) d t \\ b_{n} &=\frac{2}{T} \int_{t_{0}}^{t_{0}+T} f(t) \sin (n \omega t) d t \end{aligned} anbn=T2t0t0+Tf(t)cos(nωt)dt=T2t0t0+Tf(t)sin(nωt)dt
详细傅里叶级数推到过程参考:傅里叶级数的推导

从时域信号 f ( t ) f(t) f(t)公式中可以看出,标准正交基为 { 1 , sin ⁡ ( n ω t ) , cos ⁡ ( n ω t ) ∣ n = 1 , … , ∞ } \{1, \sin (n \omega t), \cos (n \omega t) | n=1, \dots, \infty\} {1,sin(nωt),cos(nωt)n=1,,}, 对应的系数 { a 0 2 , a n , b n ∣ n = 1 , … , ∞ } \left\{\frac{a_{0}}{2}, a_{n}, b_{n} | n=1, \dots, \infty\right\} {2a0,an,bnn=1,,}为傅里叶级数在这组标准正交基上的向量。(PS:可自行证明该组基为正交基。)

这就是傅里叶变换,将时域信号变换到频域当中。

傅里叶变换

傅里叶级数是针对周期性函数的,但是现实中大多数函数都是非周期性的。那么如何处理非周期性的函数呢?

傅立叶变换,是傅立叶级数的推广。

首先需要先了解下欧拉公式,详细推导过程参考:怎么向小学生解释欧拉公式 e^(πi)+1=0

考虑横轴为1,纵轴为虚数 i i i, 那么空间中的点可以表示为 cos ⁡ θ + i sin ⁡ θ \cos \theta+i \sin \theta cosθ+isinθ

根据欧拉公式上式可以推导为:
cos ⁡ θ + i sin ⁡ θ = e i θ \cos \theta+i \sin \theta=e^{i \theta} cosθ+isinθ=eiθ
那么坐标系中的点有两种表示形式:

考虑到角大小 θ = ω t \theta=\omega t θ=ωt θ \theta θ会随着 t t t 的增大而逆时针旋转,因此 e i ω t e^{i\omega t} eiωt可以表示点A随着 t t t的变化而逆时针旋转。如果 ω \omega ω 取不同大小的值,对应的虚轴的运动轨迹则不同,如下图所示:

左侧图是旋转频率,称为频域;右侧图是随时间变化的幅度,称为时域;那么上图就展示了频域转化到时域的过程。

以上简单阐述了欧拉公式及其表示,接着解释傅里叶变换如何处理非周期函数。

将非周期函数考虑为周期无穷大的函数,考虑频域中的横坐标: f = 1 T f=\frac{1}{T} f=T1,当周期 T T T 趋于无穷大时,频域图就从离散点变为连续的曲线,如下图:

在这里插入图片描述

  • (a). 周期函数,可以通过傅立叶级数画出频域图
  • (b). 增长周期,频域图变得越来越密集
  • ©. T → ∞ T\rightarrow \infty T得到傅立叶变换,频域图变为连续的曲线

如何从非周期函数中分解出各种信号呢?两种解释:

  • 利用正交基相乘为0

    比如说,假设这函数中有一个 c o s ( n ω x ) cos(n\omega x) cos(nωx) 的信号,可以用 c o s ( n ω x ) cos(n\omega x) cos(nωx)把它乘出来,而其他分量如 { 1 , sin ⁡ ( m ω x ) , cos ⁡ ( k ω x ) ∣ m , k = [ 1 … ∞ ) , k ≠ n } \{1, \sin (m \omega x), \cos (k \omega x) | m, k=[1 \ldots \infty), k \neq n\} {1,sin(mωx),cos(kωx)m,k=[1),k=n} 都是正交基相乘为0得到频域信号。

    对时域函数做一个内积:
    F T ( ω ) = ∫ − ∞ + ∞ f ( t ) e − i ω t d t \mathcal{F}_{T}(\omega)=\int_{-\infty}^{+\infty} f(t) e^{-i \omega t} d t FT(ω)=+f(t)eiωtdt

    式中, e − i ω t e^{-i \omega t} eiωt是一组正交基的组合,复数 i i i含义:实数部分表示振幅,虚数部分表示相位。我们用正交基去与函数求内积,如果原函数中包含频率为 ω \omega ω 的三角函数,则 F T ( ω ) \mathcal{F}_{T}(\omega) FT(ω) 不为0,反之为 0,这样可以分离出相应的信号,其图示如上图 © 中右部分所示。

  • 利用欧拉公式变换傅里叶级数:

    详细推导内容参考:从傅立叶级数到傅立叶变换

上述内容简单解释了傅里叶变换,傅里叶逆变换为:
f ( t ) = 1 2 π ∫ − ∞ + ∞ F T e i ω t d ω f(t)=\frac{1}{2 \pi} \int_{-\infty}^{+\infty} \mathcal{F}_{T} e^{i \omega t} d \omega f(t)=2π1+FTeiωtdω

下面两者称为傅立叶变换对,可以相互转换(时域信号和频域信号相互转换):
f ( x ) ⟺ F ( ω ) f(x) \Longleftrightarrow F(\omega) f(x)F(ω)
同一个数学对象的两种形式,一个是函数,一个是向量。

关注作者

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值