大家好,又见面了,我是你们的朋友全栈君。
在学习高数的时候,就接触了傅里叶变换。也就记得是将一些周期函数表示成一系列三角函数的叠加,不是很理解这个变换的具体意义,就是觉的挺神奇的,可以求一些特殊的积分什么之类的。 到了学习信号与系统的时候,离散序列也可以傅里叶变换,还有一个叫离散傅里叶变换,那时学得很草,考完试之后都混在一起,不知道谁是谁了。
关于什么是傅里叶变化,网上有很多大佬写的很好。这里我也不打算科普(毕竟墨水不多,想吐也吐不出来),主要目的还是方便自己日后复习,省去翻书查看公式。
粗略地介绍下,傅里叶转化具体可以包含3个大类:
这些英文缩写值得记忆的,也能够帮助我们好好理解。
目录
对象:连续的周期信号\(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} \]
对象:非周期的连续信号,同样得满足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} \]
推导: 基本的思路是用一个周期无限长的信号来代替非周期信号,当周期足够长时可以忽略这种近似带来的影响。
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)\);
也就是说,求一个信号\(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} \]
可见,有周期的连续信号在频域上是一系列的冲激函数之和,即在频域上是离散的。
对象:周期的离散序列,无限长的序列必须绝对可和(和收敛) 表达公式:用一系列周期的复指数信号之和表示周期的离散序列
\[\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为\(\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\)的区间内。
推导:
与周期信号的思路一致,用无限周期的离散序列来近似代替有限的非周期离散序列。
周期序列的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可以从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
,即
\[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
是惟一的。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154770.html原文链接:https://javaforall.cn