循环矩阵是一个方矩阵,其中每一行都是前一行的旋转。这篇文章将说明循环矩阵和FFT(快速傅立叶变换)之间的联系。
循环矩阵
根据需要为第一行上色。然后将最后一个元素移到前面,形成下一行。重复此过程,直到矩阵已满。
NumPy(Python里的数值计算库)函数来进行旋转。它的第一个参数是要旋转的行,第二个参数是需要旋转的次数。因此,下面的Python代码生成一个大小为N的随机循环矩阵。
这是矩阵M,其中的条目被截断到小数点后3位,以便于阅读。
快速傅立叶变换
快速傅立叶变换是一种线性变换,因此它可以用矩阵表示。这是N乘N矩阵,其(j,k)项为ωjk,其中ω=exp(-2πi/N),j和k从0到N–1。
FFT矩阵的每个元素都对应于一个旋转,因此您可以使用每个条目中的时钟或通过颜色循环来可视化矩阵。现在使用钟面和颜色创建了一个可视化的变换: