从另一个角度理解FFT(在多项式乘法中应用).docxVIP

从另一个角度理解FFT(在多项式乘法中应用).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从另一个角度理解FFT(在多项式乘法中应用)

从另一个角度理解FFT(在多项式乘法中的应用)negiizhao——我一个信号处理算法,怎么用来算多项式乘法了呢?  很多同学学习FFT时,看到那“一堆符号”“一堆算式”就决定“Ctrl+W并去背板”。这篇文章或许能帮助那些同学从另一个角度理解FFT的过程。  不要被下文中的某些矩阵吓到,有些只是为了表达原理方便,在实际中我们并不需要实现这些矩阵,而是实现它的功能(如左乘这个矩阵表示什么意思),这时应更多关注它在算法中是用来干什么的。  2016.03.28更新后就用黑体小写字母a表示向量了。虽说?看起来可能要更清楚,但那毕竟还是更多地用于手写。1. 关于多项式乘法  我们使用系数表示一个n次多项式,即使用序列?表示多项式。我们通常称之为多项式的系数表示。  我们也可以选取n个不同的数代入多项式得到n个值?,用n个有序数对表示这个多项式,其函数图像经过了这n个有序数对所表示的点。可以证明这样所表示的多项式是唯一的。我们通常称之为多项式的点值表示。  从系数表示得到点值表示的过程称为求值,从点值表示得到系数表示的过程称为插值。  已知多项式和的系数表示,我们可以得到这两个多项式的乘积的系数表示。为了得到中项的系数,考虑当j+k=i时,。所以只需对所有满足?j+k=i的j和k,求出并求和。即。  我们称向量c为a和b的离散卷积,记作c=a*b。多项式乘法实质上就是在计算离散卷积。直接根据定义计算离散卷积所需时间为。当n较大时,计算过程将会十分缓慢费时。  如果已知两个多项式在相同的n个数上的点值表示,求这两个多项式乘积的点值表示是容易的,因为。即我们可以用时间完成这一过程。  然而我们通常使用系数表示法表示多项式,如何快速地完成求值和插值就显得很重要。  现在我们考虑如何选取??。2. 单位根和DFT  以下的讨论均默认在复数域内、i表示虚数单位、使用弧度,读者至少应对复数、三角函数、弧度和矩阵有最基本的了解。  在引入单位根的概念之前,我们先考虑一下复数乘法的几何意义。  复数在复平面上表示的点P到原点O的距离r称为复数的模,x轴到OP的夹角θ称为辐角。我们可以把复数z表示为。对于复数,我们可以得出,,证明如下。?  现在我们引入单位根的概念。n次单位根是指满足方程的数,因为n次方程有n个解,所以n次单位根共有n个。根据复数乘法的几何意义,不难想到n次单位根的模为1,辐角的n倍为0。那么n次单位根可以表示为?根据欧拉公式,n次单位根也可以表示为?  为了方便,我们通常会把上式的放在分子上写成,这就是那“一堆符号”的来历。为了避免“一堆符号”,我们记,那么n次单位根可以表示为。(至于这里为什么出现了负号,后面会提到,其实只是信号处理中的习惯罢了。)下图是5次单位根。对于单位根,显然有两个性质和?ω2k2n=ωkn?。如果不理解可以看下面的证明  现在我们引入DFT的概念。我们可以用矩阵乘法表示对求值的过程。?  那么若,则系数向量a,b,c满足(表示对应元素相乘)。  不难想到插值过程可以表示为。  令,则矩阵现在为?为了进行插值,我们需要矩阵的逆元其中?称为傅里叶矩阵。  为什么要用这个矩阵?因为它有一些特别的性质,下一小节将会详细叙述。  现在,我们得到了系数向量a和点值向量y之间的关系,?。  我们把a称为y的离散傅里叶变换(discrete Fourier transform, DFT),y称为a的离散傅里叶逆变换(inverse discrete Fourier transform, IDFT)。在信号处理中这两个变换有很重要的意义。而在多项式乘法应用中,我们可以通过计算得到c。直接计算矩阵乘法的时间复杂度仍是。接下来我们考虑如何快速地完成这一矩阵乘法。——–下面是一些题外话,如果接受不能可以忽略前面直接看结论——–  或许有人也发现了,我似乎把DFT和IDFT搞反了?事实上并不是。DFT最早的应用——信号处理,就是对时域信号进行n次采样,用DFT转换成频域信号以方便过滤噪声。那么是不是其他资料写错了?也不是。看完这一段就会知道为什么了。我们也可以不用矩阵表示DFT和IDFT,但可能理解起来有点困难,特别是后面关于如何加速这一计算过程。(当然如果您比较强就当我没说。。不过dalao对我这辣鸡blog也没什么兴趣吧?)?  可以发现,两个变换过程的区别在于系数(这里分别是1和)和指数(或弧度)的符号。事实上,这仅仅是个习惯约定,实际应用中并不都是这样处理,而是考虑如何表达比较方便。DFT和IDFT本质上是没有区别的,对两者的要求只是系数的积为,符号不同。  而在多项式乘法应用中,为了保证求值的结果是多项式的一个点值表示,求值过程中不能乘,于是插值过程必须乘。过程对于指数的符号是没有要求的,所以说,即使把符号对调,你的多项式

您可能关注的文档

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档