我有一组描述复平面中闭合曲线的点,称之为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
和z_b
之间添加点,例如)
哦,这是一个很好的答案。非常感谢! (我知道后续问题有时很烦人,但是,)你能否建议一种方法来添加点,就像我试图以实际工作的方式在这里做的那样? – Alex
答案是肯定的,你可以添加点,并在这些离散频率上插入。如果您有可以用这种形式写入的节点(即,以某种方式均匀间隔),请查看'czt'函数。否则,你正在寻找的可能是一个非统一的FFT。 – CKT