我有一组描述复杂平面中闭合曲线的点,称之为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_a
和{{1之间}})
答案 0 :(得分:3)
关键是当n
为整数时,您有一些正交的主要函数,可以作为空间的基础。当n
不是整数时,公式中的指数函数不是正交的。因此,基于这些非正交基的函数的表达与您预期的一样没有意义。
对于正交性情况,您可以看到以下示例(来自here)。您可以检查,您可以找到两个不是整数的n_1
和n_2
,以下积分不再为零,并且它们不是正交的。