- 1
- 0
- 约1.15万字
- 约 13页
- 2021-01-10 发布于天津
- 举报
目录
TOC \o 1-5 \h \z \o Current Document FFT 实现高精度乘法 2
\o Current Document 绪论 2
\o Current Document DFT (离散傅里叶变换) 4
\o Current Document Cooley-Tukey 算法实现 FFT (快速傅里叶变换) 4
\o Current Document 位元反转( Bit reversal ) 7
\o Current Document C++ 算法实现 8
\o Current Document 参考资料: 12
FFT实现高精度乘法
绪论
对于这个课题,我们先从多项式开始一步一步进行分析。一个度数为 n的多项式A(x)可以表示为:
H — 1
一个多项式可以有不同的表示方式,一种是我们常见的系数表示,另一种是点值表示。例如上面的多项式 就是以系数表示形式定义的。它展开之后可以写成下面这样:
“4()= dn_{Xn + …+ 呦远* +
这种方式的优点是很直观,也是我们最常用的表示多项式的方法,但是采用这种方式表示的多项式在进行 大数值的乘法运算的时候, 如果采用直接乘法方式, 假设两个多项式的度数都为 n,那么乘法计算的时间复杂度
为 0(n2).
如果采用另一种不那么直观的点值表示法,对于多项式的度数比较大的情况,采用点值表示法进行乘法运 算可以获得较大的性能提升。对于上面提到的多项式 A(x),它的点值表示法大概像下面这样子:
VoJJXi.yj) (斗「1
其中Xo~Xn-1是A(x)上面取的不同的点,而且
n = /g
可以看出,多项式从系数表示形式直接转化为点值表示形式需要选取 n (多项式的度数)个不同的值, 进行
n次的带入求值运算。那么转化为点值表示形式有什么好处呢?好处在于两个满足一定要求的点值表达式进行 乘法运算的时间复杂度为 0(n).相对于系数表示法直接进行乘法运算,点值表达式在计算乘法的性能是很理想
的。
现在我们来看看点值表达式是如何快速地进行多项式乘法的。假设有两个多项式 A(x), B(x),它们的乘积为
一个新的多项式 C(x)。在计算乘法的时候,多项式的项数可能会增加,因此乘法运算得到的新的多项式 C(x)的
度数是degree(C) = degree(A) + degree(B).因为这个原因,在计算乘法的时候, 需要对A(x)和B(x)进行点值表达 式的扩张。也就是说多项式 A(x), B(x)的点值表示形式要分别扩张为:
{(Vo, Jo), (xr (%茁一】,y助7)}
和
{(心 (x j),St J爲 _ J}
还有一点要注意的是上面两个式子中的 X。?X2n-1是要一一对应的,否则不能直接进行乘法运算。这样 C(x)
就可以转化为A(x), B(x)的点值表达式的对应项相乘的结果:
{%,(xuyiX) (x2n-l,y2n-iy^l)}
这样,我们就能以 0(n)的时间复杂度(不考虑点值表达式的扩张运算,只需要计算 2n次乘法)进行多项式
A(x)和B(x)之间的乘法运算。
那么接下来,我们要讨论的是如何进行多项式的点值表示形式和系数表示形式之间的转换,这里涉及到一 个问题,就是多项式的插值转换的唯一性。也就是说你要确定从点值形式转化为系数形式是唯一的,这个问题 已经被数学证明,插值转换是唯一的,这个是利用线性代数的范德蒙德矩阵(下图左方的矩阵)的可逆性来证 明的,具体的证明就不贴上来了。而系数形式转化为点值形式可以有很多种不同的方案,因此不存在唯一性。
对于系数表达式转化为点值表达式, [1]称它为求值(evaluate),我们可以利用秦九韶算法对给定的 n个点进
行代入多项式A(x)运算,这种方法的时间复杂度为 0(n2).对于点值表达式转化为系数表达式, [1]称它为插值
(interpolate),我们可以直接利用上图给出的线性代数方程,求出范德蒙德矩阵的逆矩阵,然后与向量上图右方 的y向量相乘,计算出系数向量 a,用这种方法计算的时间复杂度从上图就能看出来,为 0(n3).也可以利用拉
格朗日公式进行插值运算。
rt-1
=龙 yk
按拉格朗日公式计算系数表达式的时间复杂度为 O( n2).
采用以上提到的方法进行系数表示形式和点值表示形式之间的转化的效率并不理想,因此我们要考虑如何 快速进行两者之间的转化,这就是 FFT需要解决的问题。
以下这张图就是解决这个问题的总体概览,我们不妨一窥全豹:
Ibint-viilue re pre sen tai iu nsCiw fit Livni repress ntai in ns
Ibint-viilue re pre sen
您可能关注的文档
- ERP轻松搞定应付账款流程.docx
- ERP软件的相关编写语言.docx
- EVA高低压再生颗类.docx
- Excel2013下拉菜单的制作.docx
- Excel表格的复制内容和格式都不变的方法.docx
- EXCEL做固定资产台帐.docx
- Fanta汽水芬达橙爽美味更给力.docx
- FDA2016版质量量度指南中文翻译.docx
- FDA制剂生产厂检查指南.docx
- FE100数字接警机操作说明.docx
- 2026《“程序设计基础”微课程的设计》6700字.docx
- 2026《某秸秆切碎机设计》7000字.docx
- 2026年职业生涯规划书计划模板 .pdf
- 2026《锂离子动力电池组的建模分析案例》3600字.docx
- 2026《我国与蒙古国的矿产品贸易概况分析案例》11000字.docx
- 2026《静电力触觉增强机理分析》6600字.docx
- 2026《反馈教学法在高中思想政治课堂教学中的运用课例》5900字.docx
- 2026《天然气携砂除砂问题研究综述》6600字.docx
- 2026《基于三菱PLC的电梯控制系统设计与实现》15000字.doc
- 2026《某涡轮电机的尺寸计算以及结构确定案例》3200字.docx
原创力文档

文档评论(0)