我有一组点描述复平面中的闭合曲线,称之为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
)
最佳答案
关键是当n
是整数时,你有一些正交的主要函数,可以作为空间的基础。当n
不是整数时,公式中的指数函数不正交。因此,基于这些非正交基础的函数表达式并不像您期望的那样有意义。
对于正交情况,您可以查看以下示例(来自 here )。正如您所检查的,您可以找到两个非整数的 n_1
和 n_2
,下面的积分不再为零,并且它们不正交。
关于matlab - 为什么在执行离散傅里叶逆变换时将指数视为连续变量不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45548601/