算法复习笔记:多项式凭什么能FFT?
写在前面
本文仅面向学习FFT算法的CS学生。文中关于傅里叶变换的阐述仅用于帮助快速简要地理解算法背后时域/频域变换的意义,逻辑性不会像「信号与系统」课那么强。本人没系统学过「信号与系统」这门课,能写出这篇文章也要感谢来自FDU、SCUT的两位同学的帮助。欢迎各位大佬对本文内容进行指正!
要系统学习「信号与系统」的内容,可参阅奥本海默著的《信号与系统》一书。
在我学习FFT时,第一个面对的问题背景是「给定两个多项式,如何快速求得二者的乘积?」老师或者博客会先介绍多项式的系数表示和点值表示(在下一节也会再啰嗦一遍),然后引入单位根和分治思想来实现两种表示法间的转换。这篇专栏对算法内容及前置知识的讲解算是非常详尽的了,但它并没有解决一个问题:傅里叶变换的本质是将时域上的卷积转化成频域上的乘法,那么多项式的系数/点值表示为什么能和信号的时域/频域对应?本文将尝试从FFT的应用意义出发来探讨这个算法,并尝试揭示其中的关联。
Read More