- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP课程设计基于MATLAB的FFT算法实现09通信本2班
目 录 1 引言 1 2 基于MATLAB的FFT算法实现 2 2.1系统总体流程图 2 2.2 FFT运算规律及编程思想 3 2.2.1语音信号的采集 3 2.2.2 DIT-FFT算法的基本原理 3 2.2.3 DIT-FFT算法的运算规律及编程思想 5 3 Matlab程序实现 10 4 系统人机对话界面 13 4.1 GUI简介 13 4.2 界面设计 13 4.3 运行调试 14 5 心得体会 16 参考文献 17 附录Ⅰ 18 附录Ⅱ 21 MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。MATLAB重要应用的领域之一。 对于有限长序列x(n),若要求其N点的需要经过次复数乘法运算和N*(N-1)次复数加法运算。随着N的增加,运算量将急剧增加,而在实际问题中,N往往是较大的,如当N=1024时,完成复数乘法和复数加法的次数分别为百万以上,无论是用通用计算机还是用DSP芯片,都需要消耗大量的时间,不能满足实时的要求。因此,DFT的这种运算只能进行理论上的计算,不适合对实时处理要求高的场合。因此,研究作为DSP的快速算法的FFT是相当必要的,而且目前仍在改进和提高,它是根据离散变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。2.1系统总体流程图 2.2 FFT运算规律及编程思想 2.2.1语音信号的采集 利用PC机自带的录音机,录制一段语音信号,保存格式为wave的文件,并将其保存在电脑中。 在MATLAB中,fn=input( Enter WAV filename:,s); [x,fs,nb]=wavread(fn,[n1 n2]); 用于读取语音,采样值放在向量中,fs表示采样频率(Hz),表示采样位数。[1 n2]表示读取从1点到2点的值(若只有一个的点则表示读取前点的采样值)。sound(x,fs,); 用于对声音的回放。向量则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。 采集到语音信号之后,需要对语音信号进行分析,如语音信号的时域分析、频谱分析、谱图分析。 22.2 DIT-FFT算法的基本原理 快速傅里叶变换(FFT)是为提高DFT运算速度而采用的一种算法。 对一个有限长度序列x(n)的N点的DFT为: 所以,要求N点的DFT,需要N2次的复数乘法运算,N*(N-1)次复数乘法运算算。随着N的增加,运算量将急剧增加,而在实际问题中,N往往是较大的,如当N=1024时,完成复数乘法和复数加法的次数分别为百万以上,无论是用通用计算机还是用DSP芯片,都需要消耗大量的时间,不能满足实时的要求)1)周期性 (2)共轭对称性 (3)可约性 本次课设要求用用基2的按时间抽取的FFT算法(DIT-FFT)实现FFT功能,设序列x(n)的长度为N,且N满足N=2M,M为正整数。若N不能满足上述关系,可以将序列x(n)补零实现。按时间抽取基2-FFT算法的基本思路是将N点序列按时间下标的奇偶分为两个N/2点序列,计算这两个N/2点序列的N/2点DFT,计算量可减小约一半;每一个N/2点序列按照同样的划分原则,可以划分为两个N/4点序列,最后,将原序列划分为多个2点序列,将计算量大大降低。 按时间下标的奇偶将N点x(n)分别抽取组成两个N/2点序列,分别记为x1(n)和x2(n),将x(n)的DFT转化为x1(n)和x2(n)的DFT的计算。 利用旋转因子的可约性,即: 用蝶形运算可表示为如图2所示: 以此类推,还可以把x1(n)和x2(n)按n值得奇偶分为两个序列,这样就达到了降N得目的,从而减少了运算量。FFT对DFT的数学运算量改进: 直接采用DFT进行计算,运算量为N次复数乘法和N*(N-1)次复数乘法。 当采用M次FFT时,由N=2M求得M=logN,运算流图有M级蝶形,每一级都由N/2个蝶形运算构成,这样每一级蝶形运算都需要N/2次复数乘法和N次复数加法。M级运算共需要复数乘法次数为C=N/2*M,复数加法次数为C=N*M。 当N值较大时,FFT减少运算量的特点表现的越明显。 22.3 DIT-FFT算法的运算规律及编程思想 为了编写DIT-FFT算法的运算程序,首先要分析其运算规律,总结编程思想并绘出程序框
文档评论(0)