这是我们正在进行的时间序列频谱分析系列教程的第二篇。在本篇中,我们将继续讨论 Excel 中的离散傅里叶变换、其解释以及在时域中的应用。
DFT 基本上是一种数学变换,可能有点枯燥,但我们希望本教程能让您通过使用 NumXL 函数和向导加深理解和直观感受。
背景介绍
自从我们发布第一个关于 DFT 的条目以来,已经收到了一些询问,特别是关于使用 DFT 组件将输入数据集表示为三角正余弦函数之和的问题。这些询问的动机是使用这种表示法来内插中间值,并可能外推(又称预测)输入数据集之外的值。
原则上,DFT 将一组离散的观测值转换成一系列连续的三角函数(即正弦和余弦)。因此,原始信号可以表示为
$$x(t)=\frac{1}{N}\left ( A_o+\sum_{i=1}^N A_i\times cos(\omega\times i \times t + \phi_i)\right )$$
地点:
- $x(t)$ 是观测值在时间 $t$.
- $t$ 是进行观测的离散时间。
- $t \in \left \{ 0,1,2 \cdots N-1 \right \}$.
- $N$ 是输入数据集中的观测数据个数。
- $\omega = \frac{2\pi}{N}$ 是基频或主频。
- $A_i\angle \phi_i$ 是第i个离散傅里叶分量的振幅和相位。
分析
通过观察有限级数的傅立叶变换分量(即振幅和相位),我们可以发现以下几点:
- 振幅序列在$N/2$分量处对称。
- $k$ 分量的相位是 $N-k$ 分量的负值。
实质上,我们只需要 DFT 分量的前半部分就能恢复原始输入数据集。原始时间由以下分量表示:
$$x(t)=\frac{1}{N}\left( A_o+2\times\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i)\right)$$
证明
$$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) +\sum_{i=N/2+1}^N A_i\times cos(\omega\times i \times t + \phi_i) \right)$$ $$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) +\sum_{i=N/2+1}^N A_{N-i}\times cos(\omega\times i \times t - \phi_{N-i}) \right)$$ $$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) +\sum_{i=1}^{N/2} A_i\times cos(\omega\times (N-i) \times t - \phi_i) \right)$$ $$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) + A_i\times cos(\omega\times (N-i) \times t - \phi_i) \right)$$ $$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) + A_i\times cos(2\pi\times t -(\omega\times i \times t + \phi_i)) \right)$$ $$x(t)=\frac{1}{N}\left( A_o + 2\times \sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i)\right)$$
重要提示:对于大小相同的输入数据集,最后一个DFT分量无需乘以2。因此,输入数据的余弦表示形式如下:
$$x(t)=\frac{1}{N}\left( A_o + 2\times \sum_{i=1}^{N/2-1} A_i\times cos(\omega\times i \times t + \phi_i)+ A_{N/2}\times cos(\omega\times \frac{N}{2} \times t + \phi_{N/2})\right)$$ $$x(t)=\frac{1}{N}\left( A_o + 2\times \sum_{i=1}^{N/2-1} A_i\times cos(\omega\times i \times t + \phi_i)+ A_{N/2}\times cos(\pi \times t + \phi_{N/2})\right)$$ $$x(t)=\frac{1}{N}\left( A_o + 2\times \sum_{i=1}^{N/2-1} A_i\times cos(\omega\times i \times t + \phi_i)+ A_{N/2}\times cos(\phi_{N/2})cos(\pi \times t)\right)$$
结论
利用离散傅里叶变换,我们将离散输入数据集表示为确定的连续三角函数之和。
原始数据定义在离散的时间实例上,而傅立叶表示法与之不同,它是连续的,因此定义在所有时间值上。利用这种连续表示法,我们可以对这一范围内的任何值进行插值(但不能用于外推/预测)。
评论
文章评论已关闭。