一篇文章入门傅里叶变换

文章目录

傅里叶变换

在学习傅里叶变换之前,我们先来了解一下欧拉公式。顺便说一下,『欧拉公式』在世界上最伟大的十个公式中排第二名,而『傅里叶变换』在世界上最伟大的十个公式中排第七名。

欧拉公式

在数学中,对于数的集合,在一维数轴上,加法操作可以视为沿着数轴的平移,而乘法操作则可以视为数轴上的伸缩变化。具体来说:

  • 加法:在一维数轴上,给一个数加上另一个数,相当于将该数在数轴上向右(或向左,如果是负数)平移相应的距离
  • 乘法:在一维数轴上,将一个数乘以另一个数,则相当于将该数在数轴上按比例伸缩

在二维平面上,如果我们想将一个点(比如 ( 1 , 0 ) (1,0) (1,0))移动到另一个点,可以先在横轴方向上平移,再在纵轴方向上平移即可实现。

除了平移外,也可以利用伸缩和旋转来达到同样的效果。伸缩操作即为点的倍乘,但旋转该如何表达呢?

  1. 仅使用旋转,就可以将 ( 1 , 0 ) (1,0) (1,0)变换到 ( − 1 , 0 ) (-1,0) (−1,0)
  2. 在复平面中,存在一个定义: − 1 = i × i -1=i\times i −1=i×i → \rightarrow →当单位 i i i表示旋转 90 ° 90° 90°时,进行两次相同的操作即可从 ( 1 , 0 ) (1,0) (1,0)变换到 ( − 1 , 0 ) (-1,0) (−1,0)
  3. 如果一次 i i i操作是逆时针旋转 90 ° 90° 90°,正好会落在二维平面y轴上的 ( 0 , 1 ) (0,1) (0,1),该点距离原点的长度为单位长度
  4. 如果 y y y轴自带虚数单位,如 i , 2 i , 3 i ⋯ i,2i,3i\cdots i,2i,3i⋯,即可通过伸缩和旋转表示二维平面上的所有点

请大家思考一个问题:i i i为什么可以表示旋转?

我们来看一下旋转的定义:旋转是沿着一个圆弧运动的过程

可以通过泰勒展开式得到一个完美的桥梁,用来说明 i i i可以表示旋转的原因
e x = 1 + x + 1 2 ! x 2 + 1 3 ! x 3 + ⋯ s i n ( x ) = x − 1 3 ! x 3 + 1 5 ! x 5 + ⋯ c o s ( x ) = 1 − 1 2 ! x 2 + 1 4 ! x 4 + ⋯ \begin{gathered} e^x=1+x+\frac1{2!}x^2+\frac1{3!}x^3+\cdots \\ sin(x)=x-\frac1{3!}x^3+\frac1{5!}x^5+\cdots \\ cos(x)=1-\frac1{2!}x^2+\frac1{4!}x^4+\cdots \end{gathered} ex=1+x+2!1x2+3!1x3+⋯sin(x)=x−3!1x3+5!1x5+⋯cos(x)=1−2!1x2+4!1x4+⋯ ⇒ \Rightarrow ⇒代入 x = i θ x=i\theta x=iθ得: e i θ = 1 + i θ + 1 2 ! ( i θ ) 2 + 1 3 ! ( i θ ) 3 + 1 4 ! ( i θ ) 4 + 1 5 ! ( i θ ) 5 + ⋯ = ( 1 − θ 2 2 ! + θ 4 4 ! + ⋯   ) + i ( θ − θ 3 3 ! + θ 5 5 ! + ⋯   ) = c o s ( θ ) + i s i n ( θ ) \begin{aligned} e^{i\theta}& =1+i\theta+\frac1{2!}(i\theta)^2+\frac1{3!}(i\theta)^3+\frac1{4!}(i\theta)^4+\frac1{5!}(i\theta)^5+\cdots \\ &=(1-\frac{\theta^2}{2!}+\frac{\theta^4}{4!}+\cdots)+i(\theta-\frac{\theta^3}{3!}+\frac{\theta^5}{5!}+\cdots) \\ &=cos(\theta)+isin(\theta) \end{aligned} eiθ=1+iθ+2!1(iθ)2+3!1(iθ)3+4!1(iθ)4+5!1(iθ)5+⋯=(1−2!θ2+4!θ4+⋯)+i(θ−3!θ3+5!θ5+⋯)=cos(θ)+isin(θ)

e i θ e^{i\theta} eiθ表示一个圆心在原点,半径为1的单位圆 ⇒ \Rightarrow ⇒e i θ e^{i\theta} eiθ等价于一种旋转, θ \theta θ为旋转角的度数

傅里叶变换

傅里叶变换是一个分解声音的过程,其公式为: F ( f ) = ∫ − ∞ ∞ g ( t ) e − 2 π i f t d t F(f)=\int_{-\infty}^{\infty}g(t)e^{-2\pi ift}dt F(f)=∫−∞∞g(t)e−2πiftdt

乍一看这个公式,肯定是看不懂的,我们需要对其进行分解,然后逐步进行理解

既然傅里叶变换是一个分解声音的过程,我们来看一下什么是声音。
声音的气压是一个随时间以正弦函数形态不断震荡的图像

假设,一个标准音A的频率是440Hz,则其每秒钟振动440次;另外一个低音D的频率是240Hz,则其每秒钟振动240次。如果两个音同时发生,产生的气压随时间变化的曲线就是把所有时间点的振幅加起来

而傅里叶变换,就是从一段随时间变化的气压曲线中,找到组成该气压曲线的原始气压曲线

假设我们有一个每秒钟3拍子的声音信号,它的图像如下(Intensity为强度),我们只关注前面的4.5秒

绕圈记录法

绕圈记录法:同一事物的不同角度 → \rightarrow →下面的动图是最关键的一步,是【看到】傅立叶变换的核心部分

  1. 把黄色曲线缠绕到一个圆上,大小是原本信号的振幅
  2. 圆周围的图像由白色的箭头绘制而成,速度可变,上图中的白色箭头移动速度是每秒钟转过半圈
  3. 此时,有两个频率在起作用,一个是信号的频率:3次震荡/秒;另一个是图像缠绕中心圆的频率,为0.5圈/秒。第二个频率可以自由改变,相当于一个变量,下面的动图直观的展现了缠绕速度变化时的可视化表现

从最开始的 0.79圈/秒一直变化到1.55圈/秒,再到最后的恰好是3圈/秒,和原来的信号3次震荡/秒相同,此时会出现一个非常稳定的图像

其实,我们只是把一个水平的轴缠绕到一个单位圆上,并用另一个速度的记录标尺(白色箭头)来画图,从另一个角度(维度)来看我们的信号

质心记录法

质心记录法:新维度的特征提取

我们可以发现,在上面动图中,当白色箭头记录的速度在某些特定的值时,画出来的图形非常稳定、形态清晰

我们在上面提到了一个可以自由改变的转圈速度,我们可以将这个可变化的转圈速度作为傅里叶变换中的自变量

至于输出是什么,我们可以观察下面的动图。当图像很混沌(没有规律,混乱的)时候,图像基本关于原点对称;稳定时,其实是"头重脚轻"的。描述"头重脚轻"最好的方法是使用质心 ,下面的动图直观展现了质心特征对图像特征的描述能力(红色点为质心)

考虑到质心是一个二维坐标,为了简洁和直观,取质心的横坐标来表示质心的特征

现在,我们可以得到傅里叶变换的输入和输出:

  • 输入(横坐标):白色箭头的绕圈速度
  • 输出(纵坐标):质心位置的横坐标

按照上面的说明来记录绘出图像,记录每个缠绕频率(速度)对应的质心位置(在横坐标等于零点处有一个很大的值,只是因为原来的图像没有关于横轴对称,有一个偏移量)

我们可以看到,新图像的横坐标写的是频率(Frequency),即缠绕圆圈的速度

我们已经得到一个可以用来表示信号频率的工具,把它应用到两个声音的组合图像中看看效果:

傅里叶变换公式

我们已经通过这样一个缠绕机器完成了时域到频域的转换

如何使用数学语言表达这个转圈记录机制呢?

第一步:旋转的表示

上述所有动图中的旋转之所以能够表示,是基于复平面上的指数函数原理,结合泰勒展开公式来实现的

更进一步,指数函数中,以 e e e为底的函数有着特殊的性质,如下面动图所示, e 2 π i t e^{2\pi it} e2πit表示的是一秒钟一圈的旋转方程,可以通过频率 f f f控制旋转的速度,图中为 1 10 \frac{1}{10} 101

第二步:缠绕的表示

在傅立叶变换中,我们规定旋转是顺时针的,所以需要先加一个符号。假设原来的函数是 g ( t ) g(t) g(t),将两者的幅值相乘就能得到缠绕图像 g ( t ) e − 2 π i f t g(t)e^{-2\pi ift} g(t)e−2πift

第三步:质心的表示

那如何表示质心这一概念呢?有一种解决问题的途径是演绎推理,先从简单的特例出发,推广到一般,最后证明正确性即可

考虑如何求一个正方形的质心位置,我们只需在边框上取 n n n个等距离分布的点,并且算这几个点的位置的平均值。那么推广到一般情况,也使用类似的采样点的方式解决,如下面动图所示(紫红色的点即采样点),得到 1 N ∑ k = 1 N g ( t k ) e − 2 π i f t k \frac1N\sum_{k=1}^Ng(t_k)e^{-2\pi iftk} N1∑k=1Ng(tk)e−2πiftk

随着采样点的增加,需要使用积分来求解这个问题,如下面动图所示,得到 1 t 2 − t 1 ∫ t 1 t 2 g ( t ) e − 2 π i f t d t \frac1{t_2-t_1}\int_{t_1}^{t_2}g(t)e^{-2\pi ift}dt t2−t11∫t1t2g(t)e−2πiftdt

最终步:整理积分限和系数

看到常数项系数 1 t 2 − t 1 \frac1{t_2-t_1} t2−t11,如果忽略表达倍数关系的系数,对应的含义也会发生变化,不再是质心,而是信号存在的时间越久,位置是质心位置乘以一个倍数,它的值就越大。持续时长为3秒,那么新的位置就是原来质心位置的三倍;持续时长为6秒,就是原来的6倍

一般傅立叶变换公式的上下限是正负无穷,那它的几何直观是什么呢?

参考文献

1、傅里叶变换

2、泰勒公式

3、形象展示傅里叶变换

相关推荐
电子宁采臣4 个月前
傅里叶级数在不连续点会怎么样???
信号处理·傅里叶分析
我是夜阑的狗6 个月前
【数字图像处理笔记】Matlab实现离散傅立叶变换 (二)
笔记·matlab·傅里叶分析
M1CKeEEEEEY8 个月前
全息图算法:加权Gerchberg-Saxton算法(GSW)
算法·matlab·傅里叶分析
燃烧的枫1 年前
002 OpenCV dft 傅里叶变换
c++·opencv·计算机视觉·傅里叶分析
伟大的马师兄1 年前
N点复序列求2个N点实序列的快速傅里叶变换
傅里叶分析·快速傅里叶变换·离散傅里叶变换
小地瓜重新去华容道工作1 年前
【傅里叶级数与傅里叶变换】数学推导——3、[Part4:傅里叶级数的复数形式] + [Part5:从傅里叶级数推导傅里叶变换] + 总结
傅里叶分析