Matlab 为什么在执行离散傅里叶逆变换时,将指数视为连续变量不起作用?
我有一组点来描述复平面上的闭合曲线,称之为Matlab 为什么在执行离散傅里叶逆变换时,将指数视为连续变量不起作用?,matlab,fft,interpolation,Matlab,Fft,Interpolation,我有一组点来描述复平面上的闭合曲线,称之为Z=[Z_1,…,Z_N]。我想插值这条曲线,因为它是周期性的,三角插值似乎是一个自然的选择(特别是因为它提高了精度)。通过执行FFT,我们获得傅里叶系数: F = fft(Z); 此时,我们可以通过公式得到Z(其中1i是虚单位,我们使用(k-1)*(n-1),因为MATLAB索引从1开始) ? 新的点当然会受到一些插值误差的影响,但它们会相当精确,对吗我问这个问题的原因是因为这个方法不适合我。当我尝试这样做时,我会得到一堆毫无意义的乱七八糟的分数。
Z=[Z_1,…,Z_N]
。我想插值这条曲线,因为它是周期性的,三角插值似乎是一个自然的选择(特别是因为它提高了精度)。通过执行FFT,我们获得傅里叶系数:
F = fft(Z);
此时,我们可以通过公式得到Z
(其中1i
是虚单位,我们使用(k-1)*(n-1)
,因为MATLAB索引从1开始)
?
新的点当然会受到一些插值误差的影响,但它们会相当精确,对吗我问这个问题的原因是因为这个方法不适合我。当我尝试这样做时,我会得到一堆毫无意义的乱七八糟的分数。
(顺便说一句,我知道我可以使用
interpft()
命令,但我只想在曲线的某些区域添加点,例如z_a
和z_b
)点是当n
为整数时,有一些正交的主函数,可以作为空间的基础。当,n
不是整数时,公式中的指数函数不是正交的。因此,基于这些非正交基的函数表达式没有您期望的那么有意义
对于正交性情况,您可以看到以下示例(从)。如您所知,您可以找到两个非整数的n_1
和n_2
,以下积分不再为零,并且它们不是正交的
哦,这是一个很好的答案。非常感谢!(我知道后续问题有时很烦人,但是,)你能建议一种方法来添加点吗,就像我在这里尝试的那样,以一种实际可行的方式添加点吗?答案是肯定的,你可以添加点,并基本上以这些离散频率进行插值。如果有可以以该形式写入的节点(即,以某种方式均匀间隔),请查看
czt
函数。否则,您要查找的可能是非均匀FFT。
N
Z(n) = (1/N) sum F(k)*exp( 1i*2*pi*(k-1)*(n-1)/N), 1 <= n <= N.
k=1
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