Matlab 不需要知道特定的采样频率即可实现 DFT/FFT。这来自离散时间信号 (DT)的前向 DFT 定义,具有个条目(即有限长度),x[n]N
Xk=∑n=0N−1x[n]e−j2πknN.
该定义没有使用“采样频率”的概念。虽然通常通过对连续时间 (CT) 信号进行采样来生成 DT 信号,但许多离散信号并不具有这样的来源。具体来说,DFT 的“频率”是指根据 DT 信号长度在样本内的周期性。看一下 DFT 中使用的复正弦曲线:
其中取决于您正在求解的频率系数 ( )。因此,我们看到 DFT 计算了一个离散的
e−j2πkNn=cos(2πkNn)−jsin(2πkNn)=cos(ωkn)−jsin(ωkn)
ωk=2πkNXkN频率系数的数量,其中可以计算的频率系数的最大数量取决于我们原始的有限长度信号 ( ) 中的条目数,即频率x[n]
0,2πN,4πN,6πN,...,2π(N−1)N.
换言之,使用 DFT/FFT 计算的频率必须与信号长度的某些比率下的规律性有关。因此,每一个样本、两个样本、三个样本等都有规律性。
此外,请记住 DFT/FFT 产生的系数是周期性的,因此当您查看 DFT/FFT 系数时,就像在 Matlab 中一样,您只观察到真实频谱的单个周期(或“副本”)。有关这方面的更多信息,我建议阅读或询问 DFT 与离散时间傅里叶变换 (DTFT) 之间的关系,它为一组离散时间条目生成频率的连续函数。