为什么在执行逆离散傅立叶变换时将索引视为连续变量不起作用?

Why does treating the index as a continuous variable not work when performing an inverse discrete Fourier transform?

我有一组点描述复平面中的一条闭合曲线,称之为Z = [z_1, ..., z_N]。我想对这条曲线进行插值,因为它是周期性的,三角插值似乎是一个自然的选择(特别是因为它提高了精度)。通过执行FFT,我们得到傅立叶系数:

F = fft(Z);

此时,我们可以通过公式得到Z(其中1i是虚数单位,我们使用(k-1)*(n-1),因为MATLAB索引从1开始)

                 N
   Z(n) = (1/N) sum  F(k)*exp( 1i*2*pi*(k-1)*(n-1)/N), 1 <= n <= N.
                k=1

我的问题

为什么 n 必须是整数?据推测,如果我们将 n 视为 1 和 N 之间的任何实数,我们只会在插值曲线上得到更多的点。 是这样吗?比如我们想把点数翻倍,可以不设置

                 N
   Z_new(n) =  (1/N) sum  F(k)*exp( 1i*2*pi*(k-1)*(n-1)/N), with n = 1, 1.5, 2, 2.5, ..., N-1, N-0.5, N
                k=1

?

新点当然会出现一些插值误差,但它们会相当准确,对吧? 我问这个问题的原因是这个方法对我不起作用。当我尝试这样做时,我得到了一堆乱七八糟的点,毫无意义。


(顺便说一句,我知道我可以使用 interpft() 命令,但我只想在曲线的某些区域添加点,例如 z_az_b)

重点是当 n 是整数时,您有一些正交的主要函数,可以作为 space 的基础。当 n 不是整数时, 式中的指数函数不正交。因此,基于这些非正交基的函数表达式并没有您预期的那么有意义。

对于正交情况,您可以看到以下示例(来自 here)。可以查,有两个n_1n_2不是整数,后面的积分不再为零,不正交。