数字信号处理教案第4章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数字信号处理教案第4章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 教案 课件
- 资源描述:
-
1、1第四章第四章 快速傅立叶变换快速傅立叶变换(FFT)Fast Fourier Transform 数字信号处理2 4.1 引言引言 DFT 是数字信号处理的基础,是数字信号处理的基础,是是 一种重要变换。一种重要变换。快速算法的引出,使数字信号处快速算法的引出,使数字信号处 理技术得到广泛应用。理技术得到广泛应用。各种快速算法不断被采用各种快速算法不断被采用3T)(txa)(txaDA/)(nx)(nxDFT)()(fXkXa数字计算机N足够大.1.1 DFT提供了计算机处理的可能性 模拟信号的频谱分析 4.1.2 DFT的运算量 10)()()(NnnkNWnxnxDFTkXk=0,1,2
2、,N1计算机运算时:0k0)1(0100)1()1()0()0(NNNNWNxWxWxX1k 0111(1)1(1)(0)(1)(1)NNNNXxWxWx NW 2k 0212(1)2(2)(0)(1)(1)NNNNXxWxWx NW 1Nk0111(1)1(1)(0)(1)(1)NNNNNNNX NxWx Wx NW N项 N个 计算一个 N点DFT,共需次复乘。2N以做一次复乘1s计,若N=4096,所需时间为由于计算量大,且要求相当大的内存,难以实现实时处理,限制了DFT的应用。s16777216)4096(2s175 长期以来,人们一直在寻求一种能提高DFT运算速度的方法。FFT便是C
3、ooley&Tukey 在1965 年提出的的快速算法,它可以使运算速度提高几百倍,从而使数字信号处理学科成为一个新兴的应用学科。4.1.3 FFT算法的设计思想 1利用nkNW的特点NjNeW2具有 1)周期性 kNnNnkNWW)()(NknNW2)共轭性 knNNnkNWW)()(3)对称性 kNNkNWW)2(4)恒等性122NNNNWW5)可约性nNnNWW22ReImj8N0NW1NW2NW3NW4NW5NW6NW7NW)(kNnNW2把N 点DFT化为几组点数较少的DFT运算 N点DFT运算的复乘次数为2N次,若将N点DFT化为2 组,则复乘次数约为22222NN次。74.2 基
4、基 2 抽取抽取FFT 算法算法(the Decimation-In-Time Radix-2 FFT Algorithm)FFT分为两大类:分为两大类:时域抽取时域抽取FFT(Decimation-In-Time FFT,简称,简称DIT-FFT)频域抽取频域抽取FFT(Decimation-In-Frequency FFT,简称简称DIF-FFT)8 4.2.1 直接计算直接计算DFT的问题及改进的途径的问题及改进的途径 k=0,1,N-110)()(NnknNWnxkX10)(1)(NkknNWkXNnxn=0,1,N-1DFT及及IDFT的定义的定义9可见,可见,DFT 与与 IDFT
5、 的计算成本基本相同。的计算成本基本相同。直接计算直接计算N点点DFT 时:时:对应一个对应一个k需要需要N次复数乘和(次复数乘和(N-1)次)次复数加;复数加;对所有对所有N个个k值,则需要值,则需要 N复数乘和复数乘和N(N-1)次复数加次复数加。其中其中:一次复数乘需要一次复数乘需要4次实数乘和次实数乘和2次实数加方能次实数加方能完成。当完成。当N较大时,运算量很大。较大时,运算量很大。10 例如:当例如:当N=8时,时,DFT需要需要64次复数乘;次复数乘;当当N=1024时,时,DFT所需复数乘为所需复数乘为1048576次,即一百多万次复数乘。次,即一百多万次复数乘。为了减少运算次
6、数,为了减少运算次数,改进计算的方法:改进计算的方法:1)利用旋转因子的对称性、周期性和可约性;)利用旋转因子的对称性、周期性和可约性;旋转因子旋转因子(twiddle factor)2)使长序列变短。)使长序列变短。NjNeW/2114.2.2 基基2时域抽取法原理时域抽取法原理 (库利(库利-图基算法)图基算法)设序列设序列x(n)的长度为)的长度为N,且,且M为自然数为自然数N-point DFT,N is evenMN2)(log2NM 1,.,1,0,)()(10NkWnxkXNnknN12将其一分为二,分成偶数和奇数序列项将其一分为二,分成偶数和奇数序列项(the even-ind
7、exed and odd-indexed terms)则则N/2点的序列为:点的序列为:even:x1(r)=x(2r),r=0,1,N/2-1 odd:x2(r)=x(2r+1),r=0,1,N/2-113偶数序列偶数序列 the range:02nN-2 (N is even)0n(N/2)-1奇数序列奇数序列 the range:12n+1N-1 (N is even)02nN-2 0n(N/2)-114 奇数偶数nknNnknNWnxWnxkX)()()(120)12(120)2()12()2(NrrkNNrrkNWrxWrx1202212021)()(NrkrNkNNrkrNWrxW
8、Wrx则则x(n)的)的DFT:15由于由于所以所以krNkrNjkrNjkrNWeeW2/2/2222/2 1/2 112/2/20012()()()()()NNkrkkrNNNrrkNX kx r WWx r WX kW Xkk=0,1,N-116n上式说明,按n的奇偶性将 分解为两个N/2长的序列 和 ,则N点DFT可分解为两个N/2点的DFT来计算.)(nx)(1nx)(2nx17 其中其中 N/2-point DFT:k=0,1,N/2-1 )()()(112/02/11rxDFTWrxkXNrkrN12/022/22)()()(NrkrNrxDFTWrxkXk=0,1,N/2-11
9、8因此,可写出两个因此,可写出两个N/2点的方程点的方程:)()()(21kXWkXkXkN)2()2()2(2)2(1NkXWNkXNkXNkN12,.,1,0Nk19 而而120)2(2)()2(11NrrNkNWrxNkXkNNkNWW222)()()2(1112021kXWrxNkXNrkrN20同理同理而而1222jNNjNNeeW)()2(22kXNkX21所以所以)()()2()()()(2121kXWkXNkXkXWkXkXkNkN12,.1,0Nk22表示上述算法可用蝶形结(表示上述算法可用蝶形结(butterfly)kNW)()(21kXWkXkN)()(21kXWkXkN
10、23 Example:如如N=4 x(n)=x0,x1,x2,x3 even:x0,x2 even:x0 odd:x2 odd:x1,x3 even:x1 odd:x324 bit reversal/shuffling process x x0 0 x x2 2x x1 1x x3 3x x0 0 x x2 2x x1 1x x2 2x x0 0 x x1 1x x2 2x x3 3混序或反混序或反序序码位倒置码位倒置分成四个分成四个1点的序列点的序列 25 the butterfly(蝶形运算)(蝶形运算)04W14W02W02W1点序列的点序列的DFT就是序列本身,即不用计算就是序列本身,
11、即不用计算-1-1-1-126 如如N4,则,则将将 x1(r)再按再按r的奇偶进一步分解成两个的奇偶进一步分解成两个N/4点长的子序列:点长的子序列:)12()()2()(1413lxlxlxlx14,.,1,0Nl2714/0)12(2/114/022/11)12()2()(NllkNNlklNWlxWlxkX12,.,1,0Nk)()(42/3kXWkXkN14/04/42/14/04/3)()(NlklNkNNlklNWlxWWlx28 其中其中)()()(314/04/33lxDFTWlxkXNlklN)()()(414/04/44lxDFTWlxkXNlklN14,.,1,0Nk2
12、9由由X3(k)和)和X4(k)的周期性和)的周期性和 的对称性,得的对称性,得kNNkNWW2/4/2/)()()4()()()(42/3142/31kXWkXNkXkXWkXkXkNkN14,.,1,0Nk30同理,得同理,得)()()4()()()(62/5262/52kXWkXNkXkXWkXkXkNkN14,.,1,0Nk31 其中其中)12()()2()(2625lxlxlxlx)()()(514/04/55lxDFTWlXkXNlklN)()()(614/04/66lxDFTWlXkXNlklN32 8点点DIT-FFT运算流图运算流图x(0)x(0)x(4)x(4)x(2)x(
13、2)x(6)x(6)x(1)x(1)x(5)x(5)x(3)x(3)x(7)x(7)X X3 3(0)(0)X X3 3(1)(1)X X4 4(0)(0)X X4 4(1)(1)X X5 5(0)(0)X X5 5(1)(1)X X6 6(0)(0)X X6 6(1)(1)X X1 1(0)(0)X X1 1(1)(1)X X1 1(2)(2)X X1 1(3)(3)X X2 2(0)(0)X X2 2(1)(1)X X2 2(2)(2)X X2 2(3)(3)X(0)X(0)X(1)X(1)X(2)X(2)X(3)X(3)X(4)X(4)X(5)X(5)X(6)X(6)X(7)X(7)02
14、W02W02W02W04W04W14W14W08W28W18W38W33 4.2.3 IDFT的高效算法的高效算法10)(1)()(NkknNWkXNkXIDFTnx这样这样IFFT可与可与FFT用同一子程序实现。用同一子程序实现。*10*)(1NkknNWkXN*)(1kXDFTN34IDFT的运算规律的运算规律X*(0)X*(0)X*(4)X*(4)X*(2)X*(2)X*(6)X*(6)X*(1)X*(1)X*(5)X*(5)X*(3)X*(3)X*(7)X*(7)x x3 3(0)(0)x x3 3(1)(1)x x4 4(0)(0)x x4 4(1)(1)x x5 5(0)(0)x
15、x5 5(1)(1)x x6 6(0)(0)x x6 6(1)(1)x x1 1(0)(0)x x1 1(1)(1)x x1 1(2)(2)x x1 1(3)(3)x x2 2(0)(0)x x2 2(1)(1)x x2 2(2)(2)x x2 2(3)(3)x(0)*x(0)*x(1)*x(1)*x(2)*x(2)*x(3)*x(3)*x(4)*x(4)*x(5)*x(5)*x(6)*x(6)*x(7)*x(7)*02W02W02W02W04W04W14W14W08W28W18W38W1/N35 求求IFFT,也可用,也可用DIT-FFT的流程来实现。的流程来实现。x(0)x(0)x(4)x
16、(4)x(2)x(2)x(6)x(6)x(1)x(1)x(5)x(5)x(3)x(3)x(7)x(7)X(0)X(0)X(1)X(1)X(2)X(2)X(3)X(3)X(4)X(4)X(5)X(5)X(6)X(6)X(7)X(7)0NW1NW2NW3NW0NW0NW0NW0NW0NW0NW2NW2NW1/N1/N1/N1/N1/N1/N1/N1/N1/N1/N1/N1/N1/N1/N1/N1/N36 Example:Determine the x(n)by IDFT.X=5,-1,1,-1 Solution:n=0,1,2,3*304*)(41)(1)(kknkXWXDFTNnx371)(41
17、)(41)0(3210*3004XXXXXWxkk1)15(41)(41)1(*304jjXWxkkk2)(41)2(30*24kkkXWx38 所以所以 x(n)=1,1,2,1 1)(41)3(*3034kkkXWx39%the program in MATLAB:X=input(Please input X=);N=length(X);x=fft(conj(X),N);x=conj(x/N)40 Example:用用FFT算法计算下面信号的算法计算下面信号的 8点点DFT;x(n)=4 3 2 0 1 2 3 1 然后,再用然后,再用 IFFT恢复原信号。恢复原信号。41 solutio
展开阅读全文