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

详解 傅里叶变换的物理意义这是一篇辅助理解傅里叶变换的博客,下面如果有不适合或错误的表达,请大家在评论区给我留言,我一定积极修改。一、傅里叶分析关于任意函数的傅里叶变换频域(频率,振幅、相位三维正交)图像,韩同学给出一个形象的解释,这里借用韩同学的图片准确表达一下,一个函数的傅里叶级数展开如下式,二、傅里叶变换在了解了时域与频域的空间特征后,那我们再来看下傅里叶变换,这里可以看潘工的文章,潘工有趣的引入了:简单→分解→正交→内积思想,并提出函数之间内积(投影)的定义,,其中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=01e2π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=1a1cos(nwt)+b1sin(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=T2n=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=T2n=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+eit;复指数 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} Cnein2π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=+Cnei2πt,其中   C 1 = ∫ 0 1 f ( t ) d t   \ C_1 = \int_{0} ^{1} { f(t) dt} \,  C1=01f(t)dt,当对 ∫ 0 1 C n e i n 2 π t d t \int_{0} ^{1} C_ne^{in2\pi t}dt 01Cnein2π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=01Cnein2πtein2π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+Cnsin(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)einwtdt,其中   e − i w t   \ {e^{-iwt}} \,  eiwt表示缠绕着圆顺时针旋转一圈的向量,时间 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=1f(t)einwtdt

在这种内积的定义下是一族正交基,更深刻的数学知识可以证明,在一定条件下,它不仅是正交的,还是完备的,也就是说,只要满足一定的条件,任何函数都可以用   e − i n w t   \ {e^{-inwt}} \,  einwt叠加出来。
原函数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=Cneinwt=T1n=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=T10Tf(t)ejT2πntdt
对连续信号 x ( t ) x(t) x(t)进行周期为 T s T_s Ts抽样 N N N δ ( t − n T s ) \delta(t-nT_s) δ(tnTs)
则一个周期内表达式为 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)0N1δ(tnTs),可得离散周期信号的傅里叶级数为: 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]=T12T2Tx(t)n=0N1δ(tnTs)ejT2π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]=T1n=0N12T2Tx(t)δ(tnTs)ejT2π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=0N1nTs被保留下来,故
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]=NTs1n=0N1x(nTs)ejN2πTsknTs=NTs1n=0N1x[n]ejN2πTskn
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]=N1n=0N1x[n]ejN2πTskn,这就是DFT变换,我们取值在 0 ≤ k < N − 1 0\le k<N-1 0k<N1中, 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πfsNk

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

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 汇川plc编程实例梯形图_plc梯形图100实例详解

    汇川plc编程实例梯形图_plc梯形图100实例详解原文链接:汇川技术小型PLC梯形图编程系列教程(一):小型PLC型号H123U简介&nbsp;&nbsp;&nbsp;&nbsp;本人目前一直玩的都是汇川技术自己的PLC、伺服、变频器等等。所以本系列小型PLC梯形图编程教程,就以汇川技术的小型PLC作为平台,汇川的3种小型PLC-H1U,H2U,H3U。编程指令基本一致,H3U更高级一点,3U程序存储可以达到64k步,1k=1000步…

  • elasticsearch

    elasticsearch

  • Weblogic介绍「建议收藏」

    Weblogic介绍「建议收藏」Weblogic是一个服务器,可以做web服务器也可以做应用服务器WebLogic是美国Oracle公司出品的一个ApplicationServer,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和JavaEnterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

    2022年10月31日
  • 群晖 docker 端口_群晖 l2tp

    群晖 docker 端口_群晖 l2tp最近群晖docker某个容器端口总是被扫描,系统自动封禁了很多IP,遂想更改端口,个人对Linux和docker非常不熟悉,只做记录,如有错误,欢迎指出流程分为以下几个步骤:停止容器修改端口映射重启docker停止容器首先用dockerps命令查看所有的容器名称和id例如容器ID为a1b2c3用dockerstopa1b2c3来停止容器修改端口映射修改端口映射主要在了两个文件hostconfig.json和config.v2.json下面是如何找到这两个文件的路径利用cd/v

    2022年10月18日
  • python pandas fillna_pandas删除行

    python pandas fillna_pandas删除行DataFrame.fillna(self,value=None,method=None,axis=None,inplace=False,limit=None,downcast=None,**kwargs)使用指定的方法填充NA/NaN值。参数:value:scalar(标量),dict,Series,或DataFrame用于填充孔的值(例如0),或者是dict/Seri…

  • Python任务调度模块 – APScheduler

    Python任务调度模块 – APScheduler

发表回复

您的电子邮箱地址不会被公开。

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