您所在位置: 网站首页 / 文档列表 / 数据结构与算法 / 文档详情
实验1 FFT算法分析实验.doc 立即下载
上传人:yy****24 上传时间:2024-09-05 格式:DOC 页数:13 大小:171KB 金币:18 举报 版权申诉
预览加载中,请您耐心等待几秒...

实验1 FFT算法分析实验.doc

实验1FFT算法分析实验.doc

预览

免费试读已结束,剩余 3 页请下载文档后查看

18 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验1FFT算法分析实验2010271052一、实验目的1加深对FFT的理解,自己动手编写一个基2的DIF--FFT函数ditfft。2进一步掌握卷积定理,用ditfft实现卷积。二、实验原理对于有限长离散数字信号{x[n]},0nN-1,其离散谱{x[k]}可以由离离散傅氏变换(DFT)求得。可以方便的把它改写为如下形式:WN是周期性的,且周期为N,常用表达式WN取代W以便明确其周期是N。由DFT的定义可以看出,在x[n]为复数序列的情况下,完全直接运算N点DFT需要(N-1)2次复数乘法和N(N-1)次加法。因此,对于一些相当大的N值(如1024)来说,直接计算它的DFT所作的计算量是很大的。FFT的基本思想在于,将原有的N点序列序列分成两个较短的序列,这些序列的DFT可以很简单的组合起来得到原序列的DFT。例如,若N为偶数,将原有的N点序列分成两个(N/2)点序列,那么计算N点DFT将只需要约[(N/2)2•2]=N2/2次复数乘法。即比直接计算少作一半乘法。因子(N/2)2表示直接计算(N/2)点DFT所需要的乘法次数,而乘数2代表必须完成两个DFT。上述处理方法可以反复使用,即(N/2)点的DFT计算也可以化成两个(N/4)点的DFT(假定N/2为偶数),从而又少作一半的乘法。这样一级一级的划分下去一直到最后就划分成两点的FFT运算的情况。比如,一个N=8点的FFT运算按照这种方法来计算FFT可以用下面的流程图来表示:三、实验步骤1、在在Matlab中运行下面的仿真程序,程序中定义两个正弦信号,F1为100Hz/1v,F2为6kHz/1v,将两个信号叠加后作FFT:plot(S);title('原始信号');figure;Y=fft(S,N);%做FFT变换Ayy=(abs(Y));%取模plot(Ayy(1:N));%显示原始的FFT模值结果title('FFT模值');figure;Ayy=Ayy/(N/2);%换算成实际的幅度Ayy(1)=Ayy(1)/2;%直流分量的幅值单独处理F=([1:N]-1)*Fs/N;%换算成实际的频率值plot(F(1:N/2),Ayy(1:N/2));%显示换算后的FFT模值结果title('幅度-频率曲线图');2、在实验箱中通过编程实现FFT:(1)实验箱上电,启动CCS,此时仿真器上的“绿色灯”应点亮;(2)点击菜单Project中的Open菜单项,选中E:\FFT\ExpFFT01下的ExpFFT01.pjt,打开源程序;(3)单击“+”号,展开源程序,双击打开文件ExpFFT01.c;(4)main中0x3000是A/D转换数据存放的起始地址,0x3080是FFT变换结果的写入地址;externvoidInitC5402(void);externvoidOpenMcBSP(void);externvoidCloseMcBSP(void);externvoidREADAD50(void);externvoidWRITEAD50(void);/***********************************************************************MainFunctionProgram***********************************************************************/#include"stdio.h"#include"math.h"voidkfft(pr,pi,n,k,fr,fi,l,il)intn,k,l,il;doublepr[],pi[],fr[],fi[];{intit,m,is,i,j,nv,l0;doublep,q,s,vr,vi,poddr,poddi;for(it=0;it<=n-1;it++){m=it;is=0;for(i=0;i<=k-1;i++){j=m/2;is=2*is+(m-2*j);m=j;}fr[it]=pr[is];fi[it]=pi[is];}pr[0]=1.0;pi[0]=0.0;p=6.283185306/(1.0*n);pr[1]=cos(p);pi[1]=-sin(p);if(l!=0)pi[1]=-pi[1];for(i=2;i<=n-1;i++){p=pr[i-1]*pr[1];q=pi[i-1]*pi[1];s=(pr[i-1]+pi[i-1])*(pr[1]+pi[1]);pr[i]=p-q;pi[i]=s-p-q;}for(it=0;it<=n-2;it=it+2){vr=fr
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

实验1 FFT算法分析实验

文档大小:171KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用