- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字信号处理基于8点的dif-fft变换课件
数字信号处理设计目的及意义(1)、掌握实现基2-DIF-FFT算法的方法(2)、掌握Maltlab的基本使用方法,初步具有使用Maltlab编程的能力设计原理2.1 FFT简介离散傅里叶变换(DFT)正变换:n=0,1,2…,N-1逆变换:n=0,1,2…,N-12.2 按频率抽选的FFT算法FFT算法主要有两种,按时间抽选的FFT的算法(DIT-FFT)和按频率抽选的FFT算法(DIF-FFT)。这里主要介绍DIF-FFT。DIF-FFT算法是将输入序列x(k)分成前后两个部分。k为偶数k为奇数由于,则所以K为偶数k为奇数把k按奇数和偶数分,r=0,1,…N/2-1将X(k)分为两部分:令,,可得,r=0,1,2,…,N/2-1由此可得频率抽选法蝶形运算单元,如图2.1所示图2.1频率抽选法蝶形运算单元这样可以把一个N点DFT分解为两个N/2点DFT的组合,两个N/2点DFT还可以继续分解,设N=2M,则经过M-1次分解,最后可以分解成为N/2个两点DFT,可以由一个蝶形运算来求解。例如8点DIF-FFT蝶形运算图如图2.2图2.2 8点DIF-FFT运算流图。输出序列的排列规律不是从小到大按顺序的,而是按照倒叙规则排序的,即先将0-7转换为二进制数,然后将二进制数左右倒序,再转为十进制就可以得到新的数列,即:0,4,2,6,1,5,3,7。2.3程序流程图图2.3程序流程图程序及结果3.1直接调用FFT函数源程序以下是直接调用Matlab自带的FFT函数计算的源程序,其输入序列为x=[0 2 4 6 0 2 4 6],求出FFT结果y=X(k)后对其幅值和原序列进行绘图。N=8;%FFT点数为8点n=0:N-1;%横坐标序列x=[0 2 4 6 0 2 4 6 ];%设定输入x(n)序列y=fft(x,N)%调用FFT函数求X(k)序列,y=X(k)mag=abs(y);%求幅值subplot(2,1,1);stem(n,x);%绘制原序列title(输入序列x(n));subplot(2,1,2);stem(n,mag);%绘制X(k)序列title(8点调用FFT函数计算结果)3.2 FFT计算源程序以下是本次课程设计编写的FFT计算程序,输入序列和5.1的程序一样,都是x=[0 2 4 6 0 2 4 6],y等于FFT输出序列X(k),最后对y的幅值和原序列进行绘图。N=8;%设定FFT点数为8点n=0:N-1;%横坐标序列x=[0 2 4 6 0 2 4 6 ];%设定输入序列x(n)x1=x;%暂存x序列到x1m=log2(N);%求蝶形运算级数mfor mm=1:m%循环mm=1到3级蝶形运算Nm=2^(m-mm+1);%求该级旋转因子下标Nm,Nm=8,4,2 for p=0:Nm:N-1 %循环该级1到2mm-1组蝶形运算 for k=1:Nm/2 %循环该组1到23-mm个蝶形运算kp=k+Nm/2+p;%确定蝶形运算对应单元下标 a=x(kp);%暂存x(xp) x(kp)=(x(k+p)-a)*exp(-j*2*pi*(k-1)/Nm); x(k+p)=x(k+p)+a;%进行蝶形运算 end endendd=bin2dec(fliplr(dec2bin([0:N-1],m)))+1;%把0-7倒序排列y=x(d)%y=x序列的倒序,即y=X(k)mag=abs(y);%求y幅值x=x1;%x恢复成原序列subplot(2,1,1);stem(n,x);%绘制原序列title(输入序列x(n));subplot(2,1,2);stem(n,mag);%绘制X(k)序列title(8点FFT计算结果)首先运行程序1,即直接调用Matlab自带的FFT函数计算。运行结果如图3.2所示。y序列即X(k)序列为y ={240-8+8i0-80-8-8i0}。图3.2调用FFT函数运行结果1然后是用自己编写的FFT计算函数,运行得到如图3.3所示结果。y序列即X(k)序列为y ={240-8+8i0-80-8-8i0}。图3.3运行结果2当调用matlab自带的FFT程序进行相同的8点的FFT计算时结果如下:?xn=[1?2?3?4?5?6?7?8];fft[xn]?Ans=???Columns?1?through?6?37.0?-4.0000+9.6569i??-4.0000+4.0000i??-4.0000-1.6569i???Columns?7?through?8?-4.0000-4.0000i???-4.0000-9.6569i?当使用编写的程序进行8点的DIF-FFT计算时结果如下:xn=[1?2?3?4?5?6?7?
文档评论(0)