是否可以使用 FFT 信息来获取 DTFT?
你的问题有点难以理解。鉴于序列的 DFT,您似乎正在请求 DTFT 的封闭形式解决方案。这当然是可能的。如果没有时域和频域混叠,那么我们可以简单地将 IDFT 公式应用于样本(或等效地执行 IFFT)。在此之后,我们可以将 DTFT 公式应用于时域样本。这可能不是您想要的简化形式的答案,但它是 DTFT 的封闭形式表达式,可以在任何时候进行评估。此外,一个非常好的计算机代数系统(例如,Maple、Mathematica 等)可能能够将其简化为您所要求的形式(满足您不需要手动计算的要求)。
DFT 是 DTFT 的频域采样版本。FFT 计算 DFT。因此,您可以简单地应用香农-奈奎斯特采样定理并使用 sinc 函数对 DFT 的点进行插值,
在哪里. 该表达式等于您的简化表达式(即,它在每个点的计算结果都相同)。该表达式假定一个单位长度的采样间隔(即,)。这至少提出了一种从 DFT 样本中插值 DTFT 的方法。
寻找一个精确的简化表达式是困难的,因为不同的思想流派会以不同的方式简化它。谁能说涉及三角函数的表达式比涉及复指数的表达式更好?例如,是不是表达式
取决于您对“几乎所有情况”的要求有多严格。如果您可以对 DTFT 公式的形式做出一些简化假设,那么您可以使用 matlab 中的 lsqnonlin() 或类似的曲线拟合算法,将函数拟合到数据中。例如,如果您有 N 点 FFT,并且您知道 DTFT 必须采用以下形式,如果 N >> M,那么 lsqnonlin() 可能会解决未知数和. 在所示示例中,您有 64 个已知数据点(32 点复 FFT),并且将求解 8 个未知数(2 个项,每个项具有复振幅和复相位),因此它可能会起作用。如果 N 可以与 M 处于同一阶,或者如果 DTFT 的形式完全是任意的,那么可能不会。