Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 为什么在执行离散傅里叶逆变换时,将指数视为连续变量不起作用?_Matlab_Fft_Interpolation - Fatal编程技术网

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