FFT的计算机实现及谱分析.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FFT的计算机实现及谱分析

数字信号处理实验报告 实验室: 实验日期:年 月 日 院(系) 年级、专业、班 姓名 成绩 课程 名称 数字信号处理 实验项目 名 称 FFT的计算机实现及谱分析 指导 教师 一 ,实验目的 (1) 了解DFT的性质及应用,熟悉MATLAB编程的特点。 (2)掌握有限离散傅里叶变换的计算机实现方法,进一步加深DFT算法原理和基本性质的理解。 (3) 熟悉FFT算法原理和FFT子程序的应用。 (4)学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。 二,实验原理 1.FFT的计算原理 设,有限离散信号,则它的有限离散频谱为 令,则上式为 把信号按下标偶数项和奇数项分成两部分,即令 它们的有限离散频谱分 经分析,我们可得如下的时域分解FFT算法 若我们把按偶奇序号分成两部分,则可得如下的频域分解FFT算法 三,使用仪器,材料 微型计算机,MATLAB7.0 四,实验内容与步骤 1、用三种不同的DFT程序计算的傅里叶变换,并比较三种程序计算机运行时间。 (1)用for 语句的M函数文件dft1.m,用循环变量逐点计算X(k); (2)编写时域分解FFT 算法或频域分解FFT 算法的M函数文件dft2.m; (3)调用FFT库函数,直接计算X(k); (4)分别利用上述三种不同方式编写的DFT程序计算序列x(n)的傅立叶变换,并画出相应的幅频和相频特性,再比较各个程序的计算机运行时间。 (5)复习DFT的定义、性质和用DFT作谱分析的有关内容。 (6)复习FFT算法原理与编程思想,并对照DIT—FFT运算流图和程序框图,读懂本实验提供的FFT子程序。 (7)编制信号产生子程序,产生以下典型信号供谱分析用: (8)编写主程序。 五,实验过程原始记录(数据,图表,计算等) dft1.m: function[Am,pha]=dft1(x) N=length(x); w=exp(-j*2*pi/N); for k=1:N sum=0; for n=1:N sum=sum+x(n)*w^((k-1)*(n-1)); end Am(k)=abs(sum); pha(k)=angle(sum); end dft3.m: function[Am,pha]=dft3(x) Xk=fft(x); Am=abs(Xk); pha=angle(Xk); 2(1) dft1.m方法: N=256; x=[ones(1,4),zeros(1,N-4)]; t=cputime; [Am1,pha1]=dft1(x); t1=cputime-t n=[0:(length(x)-1)]; w=(2*pi/length(x))*n; figure(1) subplot(2,1,1), plot(w,Am1,b); grid; title(Magnitude part); xlabel(frequency in radians); ylabel(|X(exp(jw))|); subplot(2,1,2), plot(w,pha1,r); grid; title(Phase Part); xlabel(frequency in radians); ylabel(argX[exp(jw)]/radians); t1 = 0.2031 运行时间:t1=0.2031sDft3.m方法: N=256; x=[ones(1,4),zeros(1,N-4)]; t=cputime; [Am3,pha3]=dft3(x); t3=cputime-t; n=[0:(length(x)-1)]; w=(2*pi/length(x))*n; figure(3) subplot(2,1,1), plot(w,Am3,b); grid; title(Magnitude part); xlabel(frequency in radians); ylabel(|X(exp(jw))|); subplot(2,1,2), plot(w,pha3,r); grid; title(Phase Part); xlabel(frequency in radians); ylabel(argX[exp(jw)]/radians); 运行时间:t1=0s dft1.m方法: N=256; x=[1:4 4:-1:1 zeros(1,N)]; t=cputime; [Am1,pha1]=dft1(x); t1=cputime-t

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档