详解 傅里叶变换的物理意义

详解 傅里叶变换的物理意义这是一篇辅助理解傅里叶变换的博客,下面如果有不适合或错误的表达,请大家在评论区给我留言,我一定积极修改。一、傅里叶分析关于任意函数的傅里叶变换频域(频率,振幅、相位三维正交)图像,韩同学给出一个形象的解释,这里借用韩同学的图片准确表达一下,一个函数的傅里叶级数展开如下式,二、傅里叶变换在了解了时域与频域的空间特征后,那我们再来看下傅里叶变换,这里可以看潘工的文章,潘工有趣的引入了:简单→分解→正交→内积思想,并提出函数之间内积(投影)的定义,,其中g表示共轭。e^ix本质上是一个单位圆,则原

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

这是一篇辅助理解傅里叶变换的博客,下文中如果有不适合或错误的表达,请大家在评论区给我留言,我一定积极修改。

一、傅里叶级数

下图所示的方波的组成在傅里叶级数介绍中随处可见,那么我们就先看一下方波的形成,每一个向量以固定的整数频率旋转,当计算从投到尾向量和时就能画出方波图形,通过调整初始向量的大小与角度,我们就可以画出任意图形。
方波形成
其中含有初始大小与角度的复傅里叶级数通式表示为:   C n = ∫ 0 1 e − 2 π i n t f ( t ) d t   \ C_n = \int_{0} ^{1} {e^{-2\pi int} f(t) dt} \,  Cn​=∫01​e−2πintf(t)dt。

那傅里叶级数是如何引出的呢?我们都知道傅里叶级数是傅里叶在求热传导和弦振动时得到,他把任何初始状态的热分布看作是一系列三角函数线性的叠加
  f ( t ) = a 0 + ∑ n = 1 ∞ a 1 c o s ( n w t ) + b 1 s i n ( n w t )   \ f(t) = a_0+ \sum_{n=1}^\infty {a_1cos(nwt)+b_1sin(nwt)} \,  f(t)=a0​+n=1∑∞​a1​cos(nwt)+b1​sin(nwt)
其中的傅里叶级数   a n = 2 T ∫ n = 1 + ∞ f ( t ) c o s ( n w t ) d t   \ a_n = \frac{2}{T} \int_{n=1 }^{ + \infty } {f(t)cos(nwt)dt} \,  an​=T2​∫n=1+∞​f(t)cos(nwt)dt ,   b n = 2 T ∫ n = 1 + ∞ f ( t ) c o s ( n w t ) d t   \ b_n = \frac{2}{T}\int_{n=1 }^{ + \infty } {f(t)cos(nwt)dt} \,  bn​=T2​∫n=1+∞​f(t)cos(nwt)dt。
那傅里叶级数与复傅里叶级数关系   C n = a n 2 + i b n 2   \ C_n = \frac{a_n}{2} + i\frac{b_n}{2} \,  Cn​=2an​​+i2bn​​。

复平面是为了引入旋转所定义的平面,复指数(傅里叶级数的精髓) e i t e^{it} eit 则表示每秒一个单位的绕单位圆旋转,正弦函数通过与朝向相反的旋转向量(复指数)建立关系   s i n ( t ) = e i t + e − i t 2 i   \ sin(t) = \frac {e^{it} + e^{-it}}{2i} \,  sin(t)=2ieit+e−it​;复指数 e i 2 π t e^{i2\pi t} ei2πt则表示一秒钟所经过一次圆路程的向量, e i n 2 π t e^{in2\pi t} ein2πt表示所经过了n次圆路程的向量, C n e i n 2 π t C_ne^{in2\pi t} Cn​ein2πt表示每个复数的长度与方向。
经上,原函数本身可表示为:   f ( t ) = ∑ n = − ∞ + ∞ C n e i 2 π t   \ f(t) = \sum_{ n= -\infty}^{ + \infty } {C_n e^{i2\pi t}} \,  f(t)=∑n=−∞+∞​Cn​ei2πt,其中   C 1 = ∫ 0 1 f ( t ) d t   \ C_1 = \int_{0} ^{1} { f(t) dt} \,  C1​=∫01​f(t)dt,当对 ∫ 0 1 C n e i n 2 π t d t \int_{0} ^{1} C_ne^{in2\pi t}dt ∫01​Cn​ein2πtdt进行计算时,n次圆路程的向量和为0,故只剩下没有旋转的常数 C n C_n Cn​;那计算其他的复傅里叶级数加上若干个圆旋转向量 C n = ∫ 0 1 C n e i n 2 π t e − i n 2 π t d t   C_n = \int_{0} ^{1} { C_ne^{in2\pi t} e^{-in2\pi t}dt} \, Cn​=∫01​Cn​ein2πte−in2πtdt,使 C n C_n Cn​没有旋转求得;
在这里插入图片描述
上述三角函数还可以这样表达   f ( t ) = C 0 + ∑ n = 1 + ∞ C n s i n ( n w t + ψ n )   \ f(t) = C_0 + \sum_{ n=1 }^{ + \infty } {C_nsin(nwt+\psi_n)} \,  f(t)=C0​+∑n=1+∞​Cn​sin(nwt+ψn​),那么影响函数样式的参数都列在上式中: C n C_n Cn​表示振幅、 w w w表示角频率、 ψ n \psi_n ψn​表示当前角频率的初始相位。这里韩同学给出一个形象的表达(频率,振幅、相位三维正交),你是否理解更加深刻了呢!
方波的傅里叶级次在频率,振幅、相位上的内积(投影)

二、傅里叶变换

我们从傅里叶级数(周期函数)入手,一个信号能够分开成离散的无限多的正弦波;那傅里叶变换(不必周期)是乘以一个频率从负无穷到正无穷连续的复指数,转换为一个在频域的连续信号。
我们在回过头来看一下傅里叶变换的公式   F ( w ) = ∫ − ∞ + ∞ f ( t ) e − i n w t d t   \ F(w) =\int_{ – \infty }^{ + \infty } {f(t)e^{-inwt}dt} \,  F(w)=∫−∞+∞​f(t)e−inwtdt,其中   e − i w t   \ {e^{-iwt}} \,  e−iwt表示缠绕着圆顺时针旋转一圈的向量,时间 t 表示旋转的时间,频率   n w   \ {nw} \,  nw表示旋转的快慢,求和取平均表示着旋转过程中所有向量的和的平均;当旋转的快慢依次给予时,原函数围绕圆旋转的样子也不一样,当原函数中含有此时旋转的频率时,缠绕的波形就会呈现峰与谷分离的现象,是比较容易求得,这也是三角函数正交特性(乘上一个函数中存在频率的共轭复指数,使得旋转为0),此时图形质心(所有向量的和的平均)就是这个频率的振幅。B站大神up关于FT变换的解释。

正交定义:   < f , g > = ∫ − ∞ + ∞ f × g ^   \ <f,g> =\int_{ – \infty }^{ + \infty } {f} \times {\hat g} \,  <f,g>=∫−∞+∞​f×g^​,
  F ( n ) = < f ( t ) , e i n w t > = ∫ n = 1 ∞ f ( t ) e − i n w t d t   \ F(n) = <f(t),e^{inwt}>= \int_{n=1}^\infty {f(t)e^{-inwt}}dt \,  F(n)=<f(t),einwt>=∫n=1∞​f(t)e−inwtdt

在这种内积的定义下是一族正交基,更深刻的数学知识可以证明,在一定条件下,它不仅是正交的,还是完备的,也就是说,只要满足一定的条件,任何函数都可以用   e − i n w t   \ {e^{-inwt}} \,  e−inwt叠加出来。
原函数f(t)可由F(w)与基 e i w t e^{iwt} eiwt叠加而成(表述为傅里叶逆变换)
  f ( t ) = ∑ n = − ∞ ∞ C n e i n w t = 1 T ∫ n = − ∞ ∞ F ( w ) e i n w t d n w \ f(t) = \sum_{n=-\infty}^\infty {C_ne^{inwt}}= \frac{1}{T}\int_{n=-\infty}^\infty {F(w)e^{inwt}}dnw  f(t)=∑n=−∞∞​Cn​einwt=T1​∫n=−∞∞​F(w)einwtdnw。

三、离散化傅里叶变换DFT

傅里叶级数与傅里叶变换是处理连续的系统,但是我们的数字化设备中只能用离散化的数字信号来表示连续的模拟信号,这就要求采样连续的信号变成离散的信号(DTFT离散时间傅里叶变换)才能进行处理,但是频域的频率也是连续的,如何使得变换后的频率也能用离散表示呢。这里就要提到离散傅里叶变换DFT,使用周期性离散信号的傅里叶级数(将无限长的离散信号截断成N个采样点,然后将这N个采样点进行周期延拓)。

连续周期信号的傅里叶级数: C n = 1 T ∫ 0 T f ( t ) e − j 2 π T n t d t C_n = \frac1{T}\int_0^T f(t)e^{ -j\frac{2\pi}{T}nt}dt Cn​=T1​∫0T​f(t)e−jT2π​ntdt。
对连续信号 x ( t ) x(t) x(t)进行周期为 T s T_s Ts​抽样 N N N次 δ ( t − n T s ) \delta(t-nT_s) δ(t−nTs​),
则一个周期内表达式为 x s ( t ) = x ( t ) ∑ 0 N − 1 δ ( t − n T s ) x_s(t)=x(t)\sum_0^{N-1}\delta(t-nT_s) xs​(t)=x(t)∑0N−1​δ(t−nTs​),可得离散周期信号的傅里叶级数为: C [ j k w ] = 1 T ∫ − T 2 T 2 x ( t ) ∑ n = 0 N − 1 δ ( t − n T s ) e − j 2 π T k t d t C[jkw]=\frac1T{\int_{-\frac T2}^{\frac T2}x(t)\sum_{n=0}^{N-1}\delta(t-nT_s)e^{-j{\frac{2\pi}T}kt}}dt C[jkw]=T1​∫−2T​2T​​x(t)n=0∑N−1​δ(t−nTs​)e−jT2π​ktdt
调整一下顺序: C [ j k w ] = 1 T ∑ n = 0 N − 1 ∫ − T 2 T 2 x ( t ) δ ( t − n T s ) e − j 2 π T k t d t C[jkw]=\frac1T\sum_{n=0}^{N-1}{\int_{-\frac T2}^{\frac T2}x(t)\delta(t-nT_s)e^{-j{\frac{2\pi}T}kt}}dt C[jkw]=T1​∑n=0N−1​∫−2T​2T​​x(t)δ(t−nTs​)e−jT2π​ktdt。
由于冲击函数的筛选性质,上式很容易离散化,显然, T = N T s T=NT_s T=NTs​,即 t = n T S t=nT_S t=nTS​,积分号内只有采样点 ∑ n = 0 N − 1 n T s \sum_{n=0}^{N-1}nT_s ∑n=0N−1​nTs​被保留下来,故
C [ j k w ] = 1 N T s ∑ n = 0 N − 1 x ( n T s ) e − j 2 π N T s k n T s = 1 N T s ∑ n = 0 N − 1 x [ n ] e − j 2 π N T s k n C[jkw]=\frac1{NT_s}\sum_{n=0}^{N-1}{x(nT_s)e^{-j{\frac{2\pi}NT_s}knT_s}}=\frac1{NT_s}\sum_{n=0}^{N-1}{x[n]e^{-j{\frac{2\pi}NT_s}kn}} C[jkw]=NTs​1​n=0∑N−1​x(nTs​)e−jN2π​Ts​knTs​=NTs​1​n=0∑N−1​x[n]e−jN2π​Ts​kn。
令 C [ j k w ] ∙ T s = C [ k ] C[jkw]\bullet Ts=C[k] C[jkw]∙Ts=C[k], C [ k ] = 1 N ∑ n = 0 N − 1 x [ n ] e − j 2 π N T s k n C[k]=\frac1N\sum_{n=0}^{N-1}{x[n]e^{-j{\frac{2\pi}NT_s}kn}} C[k]=N1​∑n=0N−1​x[n]e−jN2π​Ts​kn,这就是DFT变换,我们取值在 0 ≤ k < N − 1 0\le k<N-1 0≤k<N−1中, k w = k 2 π T = k 2 π N T s = 2 π f s k N kw = k\frac{2\pi}T =k\frac{2\pi}{NTs}=2\pi f_s\frac kN kw=kT2π​=kNTs2π​=2πfs​Nk​,

其中离散傅里叶变换后的第 k k k个频率是 f k = k N f s f_k=\frac kN f_s fk​=Nk​fs​。常用的fft本质就是DFT,只不过使用了一种简化算法。

最后提一下潘工的专栏,读之受益匪浅。

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea2021最新激活码(注册激活)

    (idea2021最新激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL5S9V8F-eyJsaWNlb…

    2022年3月27日
  • Jenkins(2)docker容器中安装python3「建议收藏」

    Jenkins(2)docker容器中安装python3「建议收藏」前言使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境。进jenki

    2022年7月28日
  • 内存映射文件「建议收藏」

    内存映射文件「建议收藏」在做科研,实现一些大数据的算法的时候,经常要调用一些文件的I/O函数,在数据量很大的时候,除了设计的算法和数据结构的耗时以外,其实主要的耗时还是文件的I/O。因为一般常规的方法就是先读出磁盘文件的内容到内存中,然后修改,最后写回到磁盘上。读磁盘文件是要经过一次系统调用,先将文件的内容从磁盘拷贝到内核空间的一个缓冲区,然后再将这些数据拷贝到用户空间,实际上是两次数据拷贝。写回同样也需要经过两次数据拷

    2022年6月17日
  • 电脑键盘快捷键和组合键功能使用大全[通俗易懂]

    电脑键盘快捷键和组合键功能使用大全键盘快捷键使用大全所谓快捷键就是使用键盘上某一个或某几个键的组合完成一条功能命令,从而达到提高操作速度的目的。下面为大家介绍一些常用快捷键的使用和功能。希望这些电脑快捷键大全可以给用户带来便捷的上网体验。善用快捷键,可以更快捷的使用电脑。(图为标准键盘示意图)下面来看看各种电脑快捷键大全和组合键的功能大全。一、最常用的电脑快捷键大全二、电脑快捷键大全…

    2022年4月14日
  • 数据挖掘十大算法详解

    数据挖掘十大算法详解转自:https://wizardforcel.gitbooks.io/dm-algo-top10/content/index.html

    2022年5月29日
  • verilog 移位寄存器与流水灯「建议收藏」

    verilog 移位寄存器与流水灯「建议收藏」用Verilog写一个简单的多功能移位寄存器,并在移位寄存器的基础上进行修改,利用移位功能形成流水灯的效果基本的功能如下:寄存器示意图见下方虚拟面板图有两种改进方式:第一种是把最后一个功能改成循环右移,即此功能模式下,按一下时钟按键(代表时钟信号到来),高三位往右移一位,最低位移动到最高位。按一次移位一次,形成流水灯效果第二种在第一种的基础上把按键时钟改成接入内部时钟,每隔一段时间时钟…

    2022年7月16日

发表回复

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

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