700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【通信原理| DFT】 从数学和代码角度理解离散傅里叶变换

【通信原理| DFT】 从数学和代码角度理解离散傅里叶变换

时间:2020-12-20 10:12:54

相关推荐

【通信原理| DFT】 从数学和代码角度理解离散傅里叶变换

首先, 有DFT公式, 通过欧拉公式 e j x = cos ⁡ ( x ) + j sin ⁡ ( x ) e^{jx} = \cos(x)+j\sin(x) ejx=cos(x)+jsin(x):

X ( k ) = ∑ n = 0 N − 1 x ( n ) ⋅ e − i 2 π N k n = ∑ n = 0 N − 1 x ( n ) ⋅ [ cos ⁡ ( 2 π N k n ) + i ⋅ sin ⁡ ( 2 π N k n ) ] \begin{aligned} X(k) &=\sum_{n=0}^{N-1} x(n) \cdot e^{-\frac{i 2 \pi}{N} k n} \\ &=\sum_{n=0}^{N-1} x(n) \cdot\left[\cos \left(\frac{2 \pi}{N} k n\right)+i \cdot \sin \left(\frac{2 \pi}{N} k n\right)\right] \end{aligned} X(k)​=n=0∑N−1​x(n)⋅e−Ni2π​kn=n=0∑N−1​x(n)⋅[cos(N2π​kn)+i⋅sin(N2π​kn)]​

先不考虑虚数项, 考察当 k = 1 k=1 k=1时,即

X ( 1 ) = ∑ n = 0 N − 1 x ( n ) ⋅ cos ⁡ ( 2 π N n ) , X(1) = \sum_{n=0}^{N-1} x(n) \cdot \cos \left(\frac{2 \pi}{N} n\right), X(1)=n=0∑N−1​x(n)⋅cos(N2π​n),

也就是说,DFT的本质是将信号对余弦函数做相关(对应每项相乘后相加)。众所周知, 任何信号波形都可以分解成 各种频率 的余弦波之和, 那么DFT就是用于获取该波形在每种频率上的分量, 也就是相关的结果, 也就是不同 k k k对应的 X ( k ) X(k) X(k)

再看 X ( K ) X(K) X(K)对应的真实频率。 以最简单的波形 x ( t ) = cos ⁡ ( 2 π f t ) x(t) = \cos(2\pi ft) x(t)=cos(2πft)来研究。设采样周期为 1 1 1秒, 采样点数 也就是DFT公式中的 N N N, 对应采样频率为 N h z N\mathrm{hz} Nhz, 我们假设 N ≥ 2 f N \ge2f N≥2f满足奈奎斯特采样定理。 采样到的点序列为 { cos ⁡ ( 0 ) , cos ⁡ ( 1 N 2 π f ) … , cos ⁡ ( N − 1 N 2 π f ) } \{\cos(0 ), \cos(\frac{1}{N}2\pi f) \dots, \cos(\frac{N-1}{N}2\pi f)\} {cos(0),cos(N1​2πf)…,cos(NN−1​2πf)} (假设刚好从相位为0开采, 后面解释为何可以这么假设)。

显然, 当 k = f k=f k=f时, X ( k ) = ∑ n = 0 N − 1 cos ⁡ ( n N 2 π f ) ⋅ cos ⁡ ( 2 π N n f ) X(k)=\sum_{n=0}^{N-1}\cos(\frac{n}{N}2\pi f) \cdot \cos \left(\frac{2 \pi}{N} nf\right) X(k)=∑n=0N−1​cos(Nn​2πf)⋅cos(N2π​nf)最大, 其余 k < N 2 k < \frac{N}{2} k<2N​ 均为0。可以从余弦求和的角度证明, 但从相关性的角度理解, 就是 x ( t ) x(t) x(t)与 cos ⁡ ( 2 π N n f ) \cos \left(\frac{2 \pi}{N} nf\right) cos(N2π​nf)最相关

OK, 这就是DFT的物理意义。

接下来开始填坑:

每个 X ( k ) X(k) X(k)代表的具体频率值是多少?一开始DFT中的虚数项是干什么的? 对于非余弦信号怎么解释?为什么可以认为从0相位开始采样?奈奎斯特准则与此有什么关系? 为什么最后要强调其余 k < N 2 k < \frac{N}{2} k<2N​ 均为0?

开始填坑。

具体频率值

在上面的例子中, 采样频率为 N h z N\mathrm{hz} Nhz, 而 N N N点DFT的 N N N个结果 X ( 0 ) , … , X ( N − 1 ) X(0),\dots, X(N-1) X(0),…,X(N−1) 就刚好对应了频率 0 h z , 1 h z , … . ( N − 1 ) h z 0\mathrm{hz}, 1\mathrm{hz},\dots. (N-1)\mathrm{hz} 0hz,1hz,….(N−1)hz,也就是均分了采样频率。显然, k = f k=f k=f时对应的真实频率也就是 f h z f\mathrm{hz} fhz, 这也 正好是函数 x ( t ) = cos ⁡ ( 2 π f t ) x(t) = \cos(2\pi ft) x(t)=cos(2πft)的准确频率。

显然, 如果在上面的例子中, 如令采样周期为0.5秒, 仍是 N N N个采样点, 那么采样频率就是 2 N 2N 2N. 采样到的点序列为 { cos ⁡ ( 0 ) , cos ⁡ ( 1 2 N 2 π f ) … , cos ⁡ ( N − 1 2 N 2 π f ) } \{\cos(0 ), \cos(\frac{1}{2N}2\pi f) \dots, \cos(\frac{N-1}{2N}2\pi f)\} {cos(0),cos(2N1​2πf)…,cos(2NN−1​2πf)} (因为对应的采样时刻变为了 0 , … , N − 1 2 N 0, \dots, \frac{N-1}{2N} 0,…,2NN−1​). 那么此时, k = f 2 k=\frac{f}{2} k=2f​时, X ( k ) X(k) X(k)最大。而由于采样频率是 2 N h z 2N\mathrm{hz} 2Nhz, 因此 X ( 0 ) , … , X ( N − 1 ) X(0),\dots, X(N-1) X(0),…,X(N−1) 就刚好对应了频率 0 h z , 2 h z , … . ( 2 N − 2 ) h z 0\mathrm{hz}, 2\mathrm{hz},\dots. (2N-2)\mathrm{hz} 0hz,2hz,….(2N−2)hz. k = f 2 k=\frac{f}{2} k=2f​对应的物理频率仍是准确的 f h z f\mathrm{hz} fhz。

总结:

N点DFT相当于是得到了信号在 N N N个频率上的分量。这 N N N个频率是对采样频率的等间隔均分。 在未知采样频率的情况下, 无法得知DFT所对应的准确频率。 当已知采样频率 F F F时, X ( 0 ) , … , X ( N − 1 ) X(0),\dots, X(N-1) X(0),…,X(N−1) 就刚好对应了频率 0 h z , F N h z , … . ( N − 1 ) N F h z 0\mathrm{hz}, \frac{F}{N}\mathrm{hz},\dots. \frac{(N-1)}{N}F\mathrm{hz} 0hz,NF​hz,….N(N−1)​Fhz的分量。

虚数项是干什么的

尽管任何信号都可以被分解为余弦波的和, 但相位不一定是0。 如 cos ⁡ ( 2 π f t + ϕ ) \cos(2\pi ft + \phi) cos(2πft+ϕ)。 通过和差角公式:

cos ⁡ ( 2 π f t + ϕ ) = cos ⁡ ( ϕ ) cos ⁡ ( 2 π f t ) − sin ⁡ ( 2 π f t ) \cos(2\pi ft + \phi) = \cos(\phi)\cos(2\pi ft) - \sin(2\pi ft) cos(2πft+ϕ)=cos(ϕ)cos(2πft)−sin(2πft)

任何相位的余弦波都可以化为同频率的相位为0的正弦波和余弦波的加权和。此时DFT计算得到的 X ( k ) X(k) X(k)为复数, 实部代表 cos ⁡ ( 2 π f t ) \cos(2\pi ft) cos(2πft)的分量, 虚部代表 sin ⁡ ( 2 π f t ) \sin(2\pi ft) sin(2πft)。 由于 cos ⁡ ( ϕ ) 2 + sin ⁡ ( 2 ϕ ) 2 = 1 \cos(\phi)^2 + \sin(2\phi)^2=1 cos(ϕ)2+sin(2ϕ)2=1, 因此从 ∣ X ( k ) ∣ |X(k)| ∣X(k)∣来看, 是一样的。

这也回答了为什么采样的时候,不管从什么相位开始采,从最后的频谱图( ∣ X ( k ) ∣ |X(k)| ∣X(k)∣)来看, 都是能提取准确信息的。

奈奎斯特采样定理

奈奎斯特采样定理的频域解释大家都很清楚了: 当采样频率小于最高频率2倍时,频谱会重叠, 无法恢复。

从DFT的角度理解:

X ( k ) = ∑ n = 0 N − 1 x ( n ) ⋅ e − i 2 π N k n X(k) =\sum_{n=0}^{N-1} x(n) \cdot e^{-\frac{i 2 \pi}{N} k n} X(k)=n=0∑N−1​x(n)⋅e−Ni2π​kn

X ( N − k ) = ∑ n = 0 N − 1 x ( n ) ⋅ e − i 2 π N ( N − k ) n = ∑ n = 0 N − 1 x ( n ) ⋅ e i 2 π N k n X(N - k) =\sum_{n=0}^{N-1} x(n) \cdot e^{-\frac{i 2 \pi}{N} (N-k) n}=\sum_{n=0}^{N-1} x(n) \cdot e^{\frac{i 2 \pi}{N} kn} X(N−k)=n=0∑N−1​x(n)⋅e−Ni2π​(N−k)n=n=0∑N−1​x(n)⋅eNi2π​kn

因此 ∣ X ( N − k ) ∣ = ∣ X ( k ) ∣ |X(N - k) | = |X(k)| ∣X(N−k)∣=∣X(k)∣.

而相位信息是可能相位影响的, 那么仅有的频率信息无法判断到底是 k k k或是 N − k N-k N−k是信号的频率, 因为频谱是对称的。 因此, 必须限制 N > 2 f N > 2f N>2f, 此时 X ( k ) ( k < N 2 ) X(k) (k<\frac{N}{2}) X(k)(k<2N​)对应的是信号频率。

日后再补全吧, 应该是全网独一档的文字和理解了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。