2017-08-07 41 views
2

我有一组描述复平面中闭合曲线的点,称之为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之间添加点,例如)

回答

3

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

对于正交情况,您可以看到以下示例(从here)。正如你可以检查,你可以找到两个不是整数的n_1n_2,下面的积分不再是零,它们也不是正交的。

enter image description here

+0

哦,这是一个很好的答案。非常感谢! (我知道后续问题有时很烦人,但是,)你能否建议一种方法来添加点,就像我试图以实际工作的方式在这里做的那样? – Alex

+0

答案是肯定的,你可以添加点,并在这些离散频率上插入。如果您有可以用这种形式写入的节点(即,以某种方式均匀间隔),请查看'czt'函数。否则,你正在寻找的可能是一个非统一的FFT。 – CKT