傅里叶变换相关公式

傅里叶变换相关公式傅里叶变换公式

大家好,又见面了,我是你们的朋友全栈君。

在学习高数的时候,就接触了傅里叶变换。也就记得是将一些周期函数表示成一系列三角函数的叠加,不是很理解这个变换的具体意义,就是觉的挺神奇的,可以求一些特殊的积分什么之类的。
到了学习信号与系统的时候,离散序列也可以傅里叶变换,还有一个叫离散傅里叶变换,那时学得很草,考完试之后都混在一起,不知道谁是谁了。

关于什么是傅里叶变化,网上有很多大佬写的很好。这里我也不打算科普(毕竟墨水不多,想吐也吐不出来),主要目的还是方便自己日后复习,省去翻书查看公式。

粗略地介绍下,傅里叶转化具体可以包含3个大类:

  1. CTFS和CTFT 连续(C)时间(T)傅里叶(F)系数(S)/ 变换(T)
  2. DTFS和DTFT 离散(D)时间(T)傅里叶(F)系数(S)/ 变换(T)
  3. DFS和DFT 离散(D)傅里叶(F)系数(S)/ 变换(T)

这些英文缩写值得记忆的,也能够帮助我们好好理解。

连续时间傅里叶系数/变换

周期的连续信号的CTFS

对象:连续的周期信号\(f(t)\),同时得满足Dirichlet条件[1]
表达公式

  • 三角形式(高数学的)
\[\begin{aligned} f(t) &= a_0 + \sum_{k=1}^{\infty}(a_n \cos{k\Omega t}+b_n\sin{k\Omega t})\\ a_0 &= \frac{1}{T} \int_{-T/2}^{T/2}f(t)dt\\ a_k &= 2\cdot\frac{1}{T}\int_{-T/2}^{T/2}f(t)\cos{n\Omega t}dt\\ b_k &= 2\cdot\frac{1}{T}\int_{-T/2}^{T/2}{f(t)\sin{n\Omega t}}dt\\ \end{aligned} \]

  • 复指数形式(更加通用形式)

    \[\begin{aligned} f(t) &= \sum_{n=-\infty}^{\infty}F_n e^{jn\Omega t}\\ F_n &= \frac{1}{T}\int_{-T/2}^{T/2}f(t)e^{-jn\Omega t}dt\\ \end{aligned} \]

    两种形式可以相互转化,当\(n > 0\)的时候,\(F_n = \frac{1}{2}(a_n – jb_n)\);当\(-n < 0\)时,\(F_{-n} = \frac{1}{2}(a_n + jb_n)\)。此式当\(n=0\)\(F_0 = a_0\)

非周期的连续信号的CTFT

对象:非周期的连续信号,同样得满足Dirichlet条件
表达公式
设对一个非周期的连续信号\(f(t)\)DTFT记为\(\mathscr F[f(t)]\),则有

\[\begin{aligned} F(w)=\mathscr{F}[f(t)] &= \int_{-\infty}^{\infty} f(t) e^{-jwt} dt\\ \mathscr{F}^{-1}[F(w)] &= \frac{1}{2\pi}\int_{-\infty}^{\infty} F(w)e^{jwt}dw \end{aligned} \]

推导
基本的思路是用一个周期无限长的信号来代替非周期信号,当周期足够长时可以忽略这种近似带来的影响。

  1. 假设\(f(t)\)是一个有限的连续非周期信号,对它进行一个周期延拓得到一个周期函数\({f_T(t)}\)

  2. \({f_T(t)}\)进行DTFS,有\(\displaystyle f_T(t) = \sum_{n=-\infty}^{\infty}F_n e^{jn\Omega t}\),而\(\displaystyle F_n = \frac{1}{T}\int_{-T/2}^{T/2}f(t)e^{-jn\Omega t}dt=\frac{1}{T}F(n\Omega)\)

  3. \(T\to +\infty\)时,这种用”无限的周期信号“近似代替”有限的非周期信号“的影响就会越小,此时\(\Omega=\frac{2 \pi}{T}\to 0\),可记为一个微分\(\Delta w\),同时\(n\Delta w\)可以看出一个连续量\(w\),累加运算转化为积分运算,于是有

    \[\begin{aligned} f(t) &= \lim_{T\to +\infty} f_T(t)\\ &= \lim_{T\to +\infty} \sum_{n=-\infty}^{\infty}F_n e^{jn\Omega t}\\ &= \lim_{T\to +\infty} \sum_{n=-\infty}^{\infty} \frac{\Delta w}{2\pi}F(n\Delta w) e^{j\Delta w t}\\ &= \frac{1}{2\pi}\int_{-\infty}^{\infty} F(w)e^{jwt}dw\\ F(w) &= \lim_{T\to +\infty} \int_{-T/2}^{T/2}f(t)e^{-jn\Omega t}dt\\ &= \lim_{T\to +\infty} \int_{-T/2}^{T/2} f(t) e^{-jwt} dt\\ &= \int_{-\infty}^{\infty} f(t) e^{-jwt} dt\\ \end{aligned} \]

也就是说,求一个信号\(f(t)\)的频谱\(F(w)\),实际上与频率/旋转因子\(e^{-jwt}\)做一个积分,积分对象是时域上的\(t\);反变换同样也是一个积分,积分对象是频域上的\(w\)

周期信号的DTFT
周期信号的DTFT的推导需要用到一个傅里叶变换对\(\mathscr F(e^{jw_0t})=2\pi \delta(w-w_0)\),则有

\[\begin{aligned} \mathscr{F}[f_T(t)] &= \mathscr{F}\Big( \sum_{n=-\infty}^{\infty}F_n e^{jn\Omega t}\Big)\\ &= \sum_{n=-\infty}^{\infty}F_n \mathscr{F}(e^{jn\Omega t})\\ &= 2\pi \sum_{n=-\infty}^{\infty}F_n \delta(w-n\frac{2\pi}{T}) \end{aligned} \]

可见,有周期的连续信号在频域上是一系列的冲激函数之和,即在频域上是离散的。

离散时间傅里叶系数/变换

周期序列的DTFS

对象:周期的离散序列,无限长的序列必须绝对可和(和收敛)
表达公式:用一系列周期的复指数信号之和表示周期的离散序列

\[\begin{aligned} x_N(n) &= \sum_{k=<N>} a_k e^{jk\frac{2\pi}{N}n}\\ a_k &= \frac{1}{N}\sum_{n=<N>} x_N(n) e^{-jk\frac{2\pi}{N}n} \end{aligned} \]

其中\(a_k\)即为离散时间傅里叶系数(DTFS),注意符号\(\displaystyle\sum_{n=<N>}\)表示的是序列长度为\(N\),但是起点可以任意起,通常我们取\(n=0,1, \cdots ,N-1\)。值得注意的是,\(a_k\)也是周期的,也是离散的

复指数函数一定是周期函数,但是复指数序列\(e^{j\Omega n}\)不一定是周期序列,易证当\(\Omega\)\(2\pi\)的有理数倍的时候才为周期序列。

非周期序列的DTFT

对象:有限长的非周期序列
表达公式
设一有限的离散非周期序列的DTFT为\(\mathscr{F}[x(n)]\),则有

\[\begin{aligned} \mathscr{F}[x(n)] &= \sum_{n=-\infty}^{\infty} x(n)e^{-jwn}\\ \mathscr{F}^{-1}[X(w)] &= \frac{1}{2\pi}\int_{2\pi} X(w)e^{jwn}dw\\ \end{aligned} \]

因为\(x(n)\)是有限长度的,因此它的DTFT是复指数函数之和,也是一个连续的周期函数。与CTFT不同的是,DTFT是累加运算,但IDTFT仍是积分,但限制在\(2\pi\)的区间内。
推导
与周期信号的思路一致,用无限周期的离散序列来近似代替有限的非周期离散序列。

  1. 设一个有限的非周期序列\(x(n)\),进行周期延扩得到\(x_N(n)\)

  2. \(x_N(n)\)进行DTFS,有\(\displaystyle x_N(n) = \sum_{k=-N/2}^{N/2-1} a_k e^{jk\frac{2\pi}{N}n}\),其中\(\displaystyle a_k = \frac{1}{N}\sum_{n=-N/2}^{N/2-1} x_N(n) e^{-jk\frac{2\pi}{N}n}=\frac{1}{N}X(\Omega k)\)

  3. \(N\to +\infty\)\(\Omega = \frac{2\pi}{N}\to 0\)可记为微分\(\Delta w\),离散量\(\Delta w k\)变为连续量\(w\),累加变为积分,即

    \[\begin{aligned} x(n) &= \lim_{N\to+\infty}x_N(n)\\ &= \lim_{N\to+\infty}\sum_{k=-N/2}^{N/2-1} a_k e^{jk\Omega n}\\ &= \lim_{N\to+\infty}\sum_{k=-N/2}^{N/2-1} \frac{\Delta w}{2\pi}X(\Delta w k) e^{jk\Omega n}\\ &= \frac{1}{2\pi}\int_{2\pi} X(w)e^{jwn}dw\\ X(w) &= \lim_{N\to+\infty}\sum_{n=-N/2}^{N/2-1} x_N(n) e^{-jk\Omega n}\\ &= \sum_{n=-\infty}^{\infty} x(n)e^{-jwn} \end{aligned} \]

周期序列的DTFT
根据变换对\(\mathscr{F}(e^{j\Omega_0 n})=\delta(w – \Omega_0)\),则对于周期序列\(x_N(n)\),有

\[\begin{aligned} \mathscr{F}(x_N(n)) &= \mathscr{F}(\sum_{k=<N>} a_k e^{jk\Omega n})\\ &= \sum_{k=<N>} a_k\mathscr{F}(e^{jk\Omega n})\\ &= \sum_{k=<N>} a_k\delta(w-k\Omega) \end{aligned} \]

可见,周期离散序列的DTFT在频域上是一系列的冲激函数,冲激强度由DFTS的值确定,同时具有周期性。

离散傅里叶系数/变换

实际中我们处理得更多的是离散的、有限长的信号,对离散序列进行DTFT得到的频谱却是连续的,计算机是不能直接进行处理的。在上信号与系统老师一直强调,时域上的离散性对应频域上的周期性,时域上的周期性对应频域上的离散性。因此,有一个很自然的想法,就是对时域上的有限序列进行周期延拓,这样频域上的数据不也是离散的吗?这就是DFT的基本思想,问题的关键是:这种方法好不好呢?准不准呢?

周期序列的DFS

对象:周期序列
说明:DFS可以从DTFS中推导出来,或者说DFS其实是DTFS的另一种形式(多乘了个周期)
表达式

\[X_N(k) = \rm{DFS}(x_N(n))=Na_k = \sum_{n=<N>} x_N(n) e^{-jk\frac{2\pi}{N}n}\\ x_N(n) = \frac{1}{N} \sum_{k=<N>} X_N(k) e^{jk\frac{2\pi}{N}n} \]

非周期序列的DFT

DFT的基本原理

  1. \(x(n)\)进行周期延扩得到\(x_N(n)\),这样时域的周期反映到频域上的离散;

  2. \(x_N(n)\)进行DFS得到\(X_N(k)\),这样时域上的离散反映到频域上的周期;

  3. \(X_N(k)\)一个周期的值,得到的就是DFT,即

    \[X(k)=\rm{DFT}[x(n)] = \sum_{n=0}^{N-1}x(n)e^{-jk\frac{2\pi}{N}n},0 \le k \le N-1\\ x(n) =IDFT[X(k)]= \frac{1}{N} \sum_{n=0}^{N-1} X(k) e^{jk\frac{2\pi}{N}n}, 0 \le n \le N-1\\ \]

    DFT可以看成是一个连续函数在时域上和频域上都被采样,由采样定理可知,当对DFT和离散序列乘以相应的采样函数即可得到原函数,也就是说DFT可以看出CTFT的一个近似。同时,对于一个确定的\(x(n)\)可以唯一延拓成唯一的\(x_N(n)\),因此DFT是惟一的。

总结

傅里叶变换公式


  1. 是指满足绝对可积、有限的极值点和间断点的函数 ↩︎

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

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

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

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

(0)


相关推荐

  • 我的程序里

    我的程序里我的程序里没有一点点防备也没有一丝顾虑突然错误出现在我的日志里带给我惊喜身不自已可是你偏又这样在我不知不觉中悄悄的消失从我的堆栈里没有音讯剩下了报警短信你存在我某一个模块里我的梦里,我的心里,我的

  • Java8 ConcurrentHashMap详解

    Java8 ConcurrentHashMap详解Java8ConcurrentHashMapJava7中实现的ConcurrentHashMap说实话还是比较复杂的,Java8对ConcurrentHashMap进行了比较大的改动。建议读者可以参考Java8中HashMap相对于Java7HashMap的改动,对于ConcurrentHashMap,Java8也引入了红黑树。说实话,Java8Concurrent

  • linux下如何判断文件的状态

    linux下如何判断文件的状态

  • 连接共享打印机显示0x000bcb_0x00004005打印机连接

    连接共享打印机显示0x000bcb_0x00004005打印机连接以win7为例,在局域网中,安装共享打印机时,会出现安装失败,打开详细信息显示为0x000000bcb,重新安装也不行,具体操作如下:连接共享打印机出现0x000000bcb问题的解决方法1打开控制面板,点击卸载程序,如下:2点击”查看已安装的更新“如下:3点击右上角“搜索已安装更新”,输入:”KB4022722“,点击搜索,会在下面的找到”KB4022722“的更新,点击卸载就…

  • CentOS5下的confluence的安装与配置

    CentOS5下的confluence的安装与配置

  • electron preload 提前_electron vue3

    electron preload 提前_electron vue3背景最近手头的electron项目需要做一个报告导出的功能,导出时要弹出个页面,可让用户自行补全相应的字段。由于公司已有现成的笔录工具,现直接将其集成进来,用webview直接展示其笔录页面,将已有的值传给笔录。webview简介electron的webview标签时基于Chromiumwebview,由于Chromium的架构变化巨大,会影响electronwebview的稳定性,包括呈现、导航和事件路由。所以electron团队不建议使用webview标

    2022年10月26日

发表回复

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

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