# 离散时间傅里叶(DTFT)
傅里叶变化是现实世界中时域与频域之间的转换,连续信号的傅里叶变化公式为:
X(f)=∫−∞+∞x(t)e−i2πftdt(1)
在实际操作中,我们无法完整地提取出连续信号,而是通过采样和测量将其转化为离散信号,此时连续的傅里叶变化就变为离散时间的傅里叶变化(DTFT),具体手续如下:
首先,我们对现实中的信号 x(t) 进行采集和测量,测量的时间间隔为 Δt。那么我们采得的信号函数 xd(t) 为:
xd(t)=x(t)n=−∞∑+∞δ(t−nΔt)(2)
其中
δ(t−nΔt)={1,t=nΔt0,t=nΔt(3)
将 (2) 式代入 (1) 式进行傅里叶变化,可得:
X(f)=∫−∞+∞xd(t)e−i2πftdt=n=−∞∑+∞∫−∞+∞x(t)δ(t−nΔt)e−i2πftdt≈n=−∞∑+∞x(nΔt)e−i2πfnΔtΔt(4)
采样,或者说采集数据,本身就是对某种自然规律在时间轴上的离散化映射。对时间进行离散后,肯定会损失一部分信息。香农采样定理告诉我们,在频域上看,对于周期信号,只有频率小于或等于采样频率两倍的信号才不会丢失频率信息。
# 离散傅里叶(DFT)
我们测量一个信号,不可能无限时间地去测量。假设我们只测量了 N 个点,这就相当于我们对信号函数乘上了一个矩形窗函数的截断,即:
x(nΔt)={x(nΔt),n=0,1,⋯N−10,n=else(5)
这样 (4) 式就变为:
X(f)=Δtn=0∑N−1x(nΔt)e−i2πfnΔt(6)
但在计算机计算中,我们不能且不需要计算一个连续的频域函数,我们要对频域也进行离散计算。我们往往将频域离散为:
f=Ndftkfs(7)
其中 fs=1/Δt 为采样频率;如果 Ndft 是偶数,则 k=[−2Ndft,⋯,−1,0,1,⋯,2Ndft−1],如果 Ndft 是奇数,则 k=[−2Ndft−1,⋯,−1,0,1,⋯,2Ndft−1−1];为了不损失信息,需要 Ndft≥N,即 Ndft 要大于或等于采用数,大多时候我们取 Ndft=N。
将 (7) 代入 (6) 即可得:
X(k)=Δtn=0∑N−1x(nΔt)e−i2πNdftnk(11)
上式就是离散傅里叶变换(DFT),即对时间截断并离散,又对频率离散的傅里叶。个人理解:为何频率要以这种方式离散?这是一种约定成熟,或者是这种离散在计算机中有快速计算的方法(FFT 算法)。