FFT 快速傅里叶变换

最近算法课上老师分配我们负责讲解快速傅里叶变换,以下是个人学习后的理解:

快速傅里叶变换(FFT)(《算法导论》第30章 P527~P539

        快速傅里叶变换(Fast Fourier Transform)是离散傅里叶变换(Discrete Fourier Transform,DFT)的快速算法,它更多的应用于数字信号处理,本人专业cs所以本文更多描述其在算法上应用(大数乘法,多项式乘法),同时主要从为why,what,how来描述。

1. 为什么引入FFT(why)

        计算多项式乘法、或者大数乘法时,我们很容易就可以想到一个时间复杂度o(n^{2})(逐项相乘)的算法,其次如果利用分治的思想对这个算法进行优化,我们可以将时间复杂度优化到o(n^{lg3})(ps:本文若无特殊说明所有lg默认以2为底),若想继续对时间复杂读进行优化,我们引入信号中的fft对算法进行优化。

2. 什么是FFT(what)

        在了解FFT之前,我们需要先了解几个补充知识:

2.1 预备知识

2.1.1 n次单位复根

       n次单位复根从名称上来看它显然是一个方程的复数根,它是满足x^{n}=1的方程的根,解这个方程可以得到n个复数(对方程开n次方)根据方程的几何意义,我们可以在坐标轴上画一个以原点为圆心的半径为1的单位圆,n个点根都对称分布在圆周上。例如图一(8次)

图一​​

 

2.1.2 消去引理

2.1.2 求和引理

2.1.3 折半引理

2.2 离散傅里叶(DFT) 

        从这个定义式来看, 我们计算出一个多项式 A(x) 的离散傅里叶变换依然需要 O(n^{2}) 的时间复杂度,因此我们需要想办法降低时间复杂度。

2.3 快速傅里叶变换(FFT)

       FFT使用的是分治策略。根据系数下标的奇偶来拆分子问题, 将这些系数分配到两个次数界为 n/2 的多项式(便于分治这里多项式最高次n采用2的整数幂,非2整数幂的n次多项式算法最简单办法:对序列补零处理使之成为2的次幂) 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值