使用Vandermonde矩阵进行快速傅里叶变换 - 系数评估?

时间:2009-04-24 12:45:32

标签: math matrix fft

说我正在尝试评估多项式:

x^2 + 1

使用快速傅里叶变换方法评估系数。现在我可以使用co-effcient作为快速傅立叶变换的输入将其更改为矩阵/向量形式:

这样:

x^2 + 1 = <1, 0, 1, 0>

这是通过使用系数值来完成的,例如1 = 1,0x ^ 1 = 0,X ^ 2 = 1等等

现在我们到了完全困惑的位置。我打算使用vandermonde矩阵:Vandermonde matrix ~ Wiki使用矩阵将这些值计算成FFT表格:

1 1 1 1  
1 i-1-i
1-1 1-i
1-i 1 i

的输出
fft(1,0,1,0)

(2,0,2,0)

现在这个步骤我不太明白,我们是如何使用该矩阵得到的(2,0,2,0)?

2 个答案:

答案 0 :(得分:3)

首先,您的Vandermonde矩阵不正确。 (4,3)条目应该是-1而不是1,因为第四行应该是(-i) 0 ,( - i) 1 ,( - i ) 2 ,( - i) 3 。特别注意

( - i)*( - i)=( - 1) 2 * i 2 = i 2 = -1。< / p>

通过此校正,结果得出Vandermonde矩阵乘以列向量(1,0,1,0)。

答案 1 :(得分:2)

也许你可以解释一下你的总体目标是什么。我从未听说过用于评估多项式的​​FFT。它们用于乘以多项式,或者用于卷积信号(等效任务),但除非多项式/信号具有大量项,否则我不会打扰。 x 2 + 1不大。 16个术语并不大,甚至64或256个术语可能更好地通过简单的O(N 2 )技术完成。

Discrete Fourier Transforms使用矩阵M ij ij 其中ω是第N个复数根1,列/行编号从0到N 1。

快速傅立叶变换从不直接使用此矩阵,它们经过大量优化,使用分而治之技术(Cooley-Tukey algorithm)通过串联和并联的2x2 DFT阶段计算最终结果。

如果你把你的矢量写成[0,1,0,1]而不是[1,0,1,0],我想你会看到如果你把它乘以你给出的矩阵,你会得到[0,2,0,2]。 (虽然你有错误,但它是

1 1 1 1  
1 i-1-i
1-1 1-1
1-i-1 i

)您正在使用的程序中必须有一些约定,它会反转向量系数的顺序。