一篇彻底搞懂傅里叶变换及其背后原理

您所在的位置:网站首页 sinc函数的傅里叶变换推导 一篇彻底搞懂傅里叶变换及其背后原理

一篇彻底搞懂傅里叶变换及其背后原理

2023-05-02 00:25| 来源: 网络整理| 查看: 265

开学前,在公司实习计算机视觉,学习opencv的时候遇到了傅里叶变换的概念,现在将自己的学习过程记录一下

声明:这篇文章大家只要从头看到最后肯定会彻底明白傅里叶变换,并且不只是知道她是什么,背后原理也会清楚,而且不会很难

我整个学习历程是:理解傅里叶的作用,理解傅里叶变换背后的原理意义

https://zhuanlan.zhihu.com/p/19759362

最开始是看到上面那篇文章了解了傅里叶变换的概念,理解了时域和频域的相互转换,知道所有的图形都可以看作是一个函数,所有的函数都是由不同频率的许多正弦波组成的,时域到频域就是将一个随时间变化的动态函数分解成各个静态的不同频率的波形,频域到时域的转换就是将原先这些正弦波叠加在一起的效果,用一下上面参考文章的图,可以很形象的说明这个问题

我们平时看到的函数图像是沿着时间方向的,所有的正弦波叠加的结果,即上图的时域图像所示,傅里叶变换之后得到的结果是沿着频率方向的所看到的结果,将一个随时间变化的波形分解成各个不同频率的正弦波图像,这些正弦波有不同的幅度和相位,幅度对应的图像是上图所示的频域图像,相位对应的是从下面往上看的时候每一个不同频率的波形的第一个波峰点的相对位置,上图没有表示出来, 结果将是一个类似上图频域图像的图像。

到现在我明白了傅里叶变换是做什么的,但是我不明白傅里叶公式的意义,为什么可以把不同的频率提取出来,然后我找到了下面的视频,很好的解决了这个问题。

【官方双语】形象展示傅里叶变换_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

(建议先看视频如果有不懂的再对照下面的文字)对于一个时域函数,我们令他绕原点做圆周运动时,会发现一个神奇的现象,当这个函数以某一些特定的频率旋转时,这条曲线旋转图形的质心x轴坐标会突然增大,以其他的频率旋转时质心的x轴坐标则会在0附近上下浮动变化,基本接近0,更神奇的是这些特定的频率就是构成这个时域函数的不同正弦波的频率(即随时域函数傅里叶变换之后的频域图像)。所以可以从这点切入来分离出构成一个时域函数的所有具有不同频率的正弦波,从时域函数上取样,记录时域函数以某一特定频率旋转时所有样点的x坐标并相加,取均值得到质心x坐标,对所有的频率都采用这个操作并且把质心的x轴坐标记录下来就得到了傅里叶变换的幅度图,当取的样本点无限多时就相当于对时域函数进行积分再除以时间跨度,但是这和傅里叶变换的公式还有一些小小的不同,傅里叶函数没有除以时间跨度,表示某一个频率的正弦波存在的时间越久在幅度图中对应的值越大,这对最终结果没有影响,因为时间跨度越久非组成正弦波成分旋转后在圆上分布的越均匀,x轴坐标正负就相互抵消了,但是组成正弦波成分会因为一直比较稳定的倾斜,导致累加结果更大,所以从这点来看我认为积分时间跨度越长得到傅里叶变换结果越准确。

现在还有一个问题没有解释,对时域函数的旋转操作是如何与公式 F(\omega) = \int_{}^{}f(t)*e^{-i2\Pi ft}dt 联系在一起的,为什么令时域函数 f(t)e^{-i2\Pi ft} 表示将原函数按照不同的频率旋转,这个可以在下面的视频中找到答案(非数学专业也可以看,很好理解的,讲的非常好)

【官方双语】欧拉公式与初等群论_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

群的概念就是对于群内的任意一个行为导致的结果都可以看作是群内其他两个行为导致结果的叠加,直观理解就是对一个其施加一个作用不会产生变化,比如对直线滑动拉伸操作之后,直线还是直线,我们无法区分到底发生了什么。对数字的加法乘法就是两个典型的群,加法相当于左右滑动行为,乘法相当于伸缩行为,比如 x+5=x+2+3 ,将x向右边滑动5个单位与先将x向右滑动2的单位再向右滑动3个单位的结果是相同的, x * 6 = x * 2 * 3x * 6 表示将x拉伸到6倍的地方,结果与先将x拉伸到2倍的地方再将到当前结果拉伸到当前结果的3倍的地方效果相同,对于线条来说滑动拉伸都不会使其发生变化,对于一个圆来说,它是一个旋转群,因为无论怎么旋转这个圆他始终保持不变,并且无法知道之前对圆进行了怎样的旋转操作,所以我们知道除了有滑动群和拉伸群还有旋转群,怎么将旋转群引入到数中,就引入了复数i,对一个数x,乘一个实数表示拉伸,乘一个i表示旋转90度,乘两个i表示旋转180度,所以 i^{2}=-1 ,上面都是输入与输出对应着同一种变换,输入是加法输出对应是加法,输入是乘法,输出对应也是乘法,但是对于幂指数输入是加法,但是输出对应的则是乘法 a^{x+y}=a^{x}*a^{y} ,相当于与在实数轴的滑动对应实数轴的伸缩,此时对幂指数引入复数,则对复数轴的滑动对应着旋转,而恰好 e^{i} 表示旋转一个弧度,因此 e^{i\Pi} = -1 ,因为 e^{i\Pi} 表示旋转 \Pi 个弧度,相当于 *i*i 操作,所以前面的 f(t)*e^{-i2\Pi ft} 就相当于在一定的时间跨度内旋转 2\Pi ft 个弧度,从这里又可以再次印证之前那句话,即时间越长傅里叶变换的效果就越好,因为旋转的弧度越大则点分布越均匀,则质心越具有说服力,再次说明了这个模型的正确性,同理,如果时间不够长,则对高频的傅里叶变换分离效果更好。

至于公式 e^{i}=cos\theta+isin\theta ,因为将复数以极坐标形式表示为 r(cos\theta+isin\theta)r(cos\theta+isin\theta)*r(cos\theta+isin\theta)

=r^2(cos^2\theta-sin^2\theta +i2sin\theta con\theta)

r^2(cos2\theta + isin2\theta)

当两个相同的复数相乘时极径变为原先的平方,角度变为原先的2倍,因此当有n个相同的复数相乘时结果为 r^n(cos(n\theta)+isin(n\theta)) ,这个函数在当 r\rightarrow1\theta\rightarrow0 时是连乘行为相当于是在做圆周运动,与 e^{i} 定义的行为是一样的。

以上均为直观表示和理解,如果有严密的公式推导请大家指点,我会空闲时间再学习,之后更新严密的公式推导。

推荐一本opencv入门特别好的书



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3