实验二 用FF作谱分析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二 用FFT作谱分析 实验目的 进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一 种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。 2、熟悉FFT算法原理和FFT子程序的应用。 3、学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出 现的分析误差及其原因,以便在实际中正确应用FFT。 实验步骤 复习DFT的定义、性质和用DFT作谱分析的有关内容。 复习FFT算法原理与编程思想,并对照DIT—FFT运算流图和程序框图, 读懂本实验提供的FFT子程序。 编制信号产生子程序,产生以下典型信号供谱分析: , , , 其它n , , , 其它n 应当注意,如果给出的是连续信号,则首先要根据其最高频率确定采样速率以及由频率分辨率选择采样点数N,然后对其进行软件采样(即计算,),产生对应序列。对信号,频率分辨率的选择要以能分辨开其中的三个频率对应的谱线为准则。对周期序列,最好截取周期的整数倍进行谱分析,否则有可能产生较大的分析误差。 编写主程序 下图给出了主程序框图,供参考。本实验提供FFT子程序和通用绘图子程序。 开始 开始 读入长度N 读入长度N 调用信号产生子程序产生实验信号 调用信号产生子程序产生实验信号 调用绘图子程序(函数)绘制时间序列波形图 调用绘图子程序(函数)绘制时间序列波形图 调用FFT子程序(函数)计算信号的DFT 调用FFT子程序(函数)计算信号的DFT 调用绘图子程序(函数)绘制 调用绘图子程序(函数)绘制曲线 结束 结束 主程序框图 三、实验结果 1.直接运行程序,按照实验内容及程序提示键入1~8,分别对~及、进行谱分析。输出的波形及其8点DFT和16点DFT,的16点、32点和64点采样序列及其DFT。 1、及其8点和16点DFT 2、及其8点和16点DFT 3、及其8点和16点DFT 4、的8点和16点波形及其DFT 5、的8点和16点波形及其DFT 6、的16点、32点和64点采样序列波形及其DFT 选7时, = 1 \* GB3 ①计算并图示和及其DFT。 = 2 \* GB3 ②程序自动计算并绘图验证DFT的共轭对称性。当N=16时,,。即为的共轭对称分量,而是的共轭反对称分量。根据DFT的共轭对称性,应有以下结果: 的8点和16点波形及其DFT 绘出和的模。它们正是图中16点的和。 选8时, = 1 \* GB3 ①计算并图示和及其DFT。 = 2 \* GB3 ②程序自动计算并绘图验证DFT的共轭对称性的第二种形式:如果,,则,。其中,。 的8点和16点DFT 程序计算结果如下: 及,正好与图中的16点及相同。 及,正好与图中16点的及相同。 四、 实验代码 主程序: s = -1; while(s0) clc; s=input(请选择验骤(默认1):\n[1]:x1(n)\n[2]:x2(n)\n[3]:x3(n)\n[4]:x4(n)\n[5]:x5(n)\n[6]:x6(n)\n[7]:x7=x4+x5\n[8]:x8=x4+jx5\n[0]:退出\n选择:,s); switch(s) case{1,2,3,4,5,6,7,8,0} s = str2num(s); case {} s = 1; otherwise s = -1; end end close all; fs=64; while(s) if(s==6) N=input(请输入FFT变区间长度N=,s); N = str2num(N); n=0:N-1; x=cos(8*pi*n/fs)+cos(16*pi*n/fs)+cos(20*pi*n/fs); f=fft(x,N);figure; printf(x,abs(f),N,s); s=input(请选择验骤:\n[1]:x1(n)\n[2]:x2(n)\n[3]

文档评论(0)

139****3928 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档