- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字信号处理实验
第八章FFT)
一、实验内容
针对典型序列,用C语言编程实现基2-FFT,并与MATLAB自带的FFT函数的计算结果进行比较。
二、实验工具
1.VC++6.0
2.matlab2018
三、实验涉及知识
图1
按时间抽选的基2—FFT算法
根据蝶形运算图,如图1,可以看出,一个点基2-FFT运算由n级蝶形运算构成,每一个蝶形结构完成下属基本迭代运算:
式中m表示第m列迭代,k,j为数据所在行数。上式的蝶形运算如图2所示。
图2
四、实验设计思路
首先,根据基2-FFT的算法特点,可以整理出程序设计的大致思路。基2-FFT主要运用的就是蝶形运算来降低进行DFT运算时的运算量。因为是基2,所以进行DFT计算的点数N必须的。程序设计中主要解决3个问题,变址运算,复数运算,节点距离运算,及旋转因子的计算。下面对这三个模块进行说明。
变址运算
由蝶形图我们可以看出,FFT的输出X(k是按正常顺序排列在存储单元中,即按X(0,X(1,…,X(7的顺序排列,但是这时输入x(n却不是按自然顺序存储的,而是按x(0,x(4,…,x(7的顺序存入存储单元,所以我们要对输入的按正常顺序排列的数据进行变址存储,最后才能得到输出的有序的X(K。通过观察,可以发现,如果说输出数据是按原位序排列的话,那么输入数据是按倒位序排列的。即如果输入序列的序列号用二进制数,则到位序就为。我们需将输入的数据变为输出的倒位序存储,这里用雷德算法来实现。下面给出雷德算法。
假如使用A[I]存的是顺序位序,而B[J]存的是倒位序。
例如 ? N = 8 的时候,倒位序顺序 ? ? ? ? ?二进制表示 ? ? ?倒位序顺序
0 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 000 ? ? ? ??000
4 1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100 ? ? ? ? 001
2 2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 010 ? ? ? ? 010 ? ? ? ? ??
6 3 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 110 ? ? ? ? 011
1 4 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 001 ? ? ? ? 100
5 5 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 101 ? ? ? ? 101
3 6 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 011 ? ? ? ? 110
7 7 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 111 ? ? ? ? 111
由上面的表可以看出,按自然顺序排列的二进制数,其下面一个数总是比其上面一个数大1,即下面一个数是上面一个数在最低位加1并向高位进位而得到的。而倒位序二进制数的下面一个数是上面一个数在最高位加1并由高位向低位进位而得到。I、J都是从0开始,若已知某个倒位序J,要求下一个倒位序数,则应先判断J的最高位是否为0,这可与k=N/2相比较,因为N/2总是等于100..的。如果kJ,则J的最高位为0,只要把该位变为1J与k=N/2相加即可),就得到下一个倒位序数;如果K=J,则J的最高位为1,可将最高位变为0J与k=N/2相减即可)。然后还需判断次高位,这可与k=N\4相比较,若次高位为0,则需将它变为1加N\4即可)其他位不变,既得到下一个倒位序数;若次高位是1,则需将它也变为0。然后再判断下一位
。
复数运算
因为每一个蝶形结构完成的迭代运算为
算式中涉及到了复数的运算,而计算机是不能自己实现复数运算的,所以需要我们自己设计进行复数运算的程序。
迭代运算式中,= cos2πr/N)- jsin2πr/N)我们设 = R(j + jI(j, = R(K + jI(K ,
而我们最后希望得到的DFT结果是复数的模,根据它的模来绘制频谱,所以这里我们定义
X(k=
相关程序我们编译为:
c.real=a.real*b.real-a.imag*b.imag。
c.imag=a.real*b.imag+a.imag*b.real。
根据迭代运算的式子,我们可以将其分解为:R(K+jI(K=R(K+jI(K+[ R(j + jI(j]*[ cos2πr/N)-jsin2πr/N)]。继续分解得到下列两式: R(K= R(K+ R(j cos2πr/N)+ I(j sin (2πr/N I(K=I(K-R(j sin2πr/N)+I(jcos (2πr/N
同理
R(j= R(K- R(j cos2πr/
您可能关注的文档
最近下载
- 农业合作社全套报表(已设公式)--资产负债表-盈余及盈余分配表-成员权益变动表-现金流量表.xls VIP
- C语言程序设计PPT电子课件教案-04_循环语句嵌套及应用.ppt VIP
- 财务新纪元:现状与展望-探索财务工作的挑战与未来.pptx
- GB50496-2018 大体积混凝土施工标准.pdf VIP
- ZW8100喷水织机使用说明书2.pdf
- 冬季极端天气安全知识培训课件.pptx
- 整理bpmfdtnl单韵母拼读.doc VIP
- 南京市总工会2025年公开招聘笔试题(含答案)(DOC).doc VIP
- 中国国家标准 GB/T 42588-2023系统与软件工程 功能规模测量 NESMA方法.pdf
- 人教版初中必背古诗文.doc VIP
原创力文档


文档评论(0)