网站大量收购独家精品文档,联系QQ:2885784924

快速傅里叶变换ff的Matlab实现 实验报告.doc

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

一、实验目的 在理论学习的基础上,通过本实验加深对快速傅立叶变换的理解; 熟悉并掌握按时间抽取FFT算法的程序; 了解应用FFT进行信号频谱分析过程中可能出现的问题,例如混淆、泄漏、栅栏效应等,以便在实际中正确应用FFT。 二、实验内容 仔细分析教材第六章‘时间抽取法FFT ’的算法结构,编制出相应的用FFT进行信号分析的C语言(或MATLAB 语言)程序; 用MATLAB语言编写的FFT源程序如下: %% 输入数据f、N、T及是否补零 clc; clear; f=input(输入信号频率f:); N=input(输入采样点数N:); T=input(输入采样间隔T:); C=input(信号是否补零(补零输入1,不补零输入0):); %补零则输入1,不补则输入0 if(C==0) t=0:T:(N-1)*T; x=sin(2*pi*f*t); b=0; else b=input(输入补零的个数:); while(log2(N+b)~=fix(log2(N+b))) b=input(输入错误,请重新输入补零的个数:); end t=0:T:(N+b-1)*T; x=sin(2*pi*f*t).*(t=(N-1)*T); end %% fft算法的实现 A=bitrevorder(x); % 将序列按二进制倒序 N=N+b; M=log2(N); % M为蝶形算法的层数 W=exp(-j*2*pi/N); for L=1:1:M % 第L层蝶形算法 B=2^L/2; % B为每层蝶形算法进行加减运算的两个数的间隔 K=N/(2^L); % K为每层蝶形算法中独立模块的个数 for k=0:1:K-1 for J=0:1:B-1 p=J*2^(M-L); % p是W的指数 q=A(k*2^L+J+1); % 用q来代替运算前面那个数 A(k*2^L+J+1)=q+W^p*A(k*2^L+J+B+1); A(k*2^L+J+B+1)=q-W^p*A(k*2^L+J+B+1); end end end %% 画模特性的频谱图 z=abs(A); % 取模 z=z./max(z); %归一化 hold on subplot(2,1,1); stem(0:1:N-1,x,DisplayName,z); title(时域信号); subplot(2,1,2); stem(0:1:N-1,z,DisplayName,z); title(频谱图); figure(gcf) %画图 用FFT程序计算有限长度正弦信号 分别在以下情况下所得的DFT结果并进行分析和讨论: 信号频率f=50Hz,采样点数N=32,采样间隔T=0.000625s 信号频率f=50Hz,采样点数N=32,采样间隔T=0.005s 信号频率f=50Hz,采样点数N=32,采样间隔T=0.0046875s 信号频率f=50Hz,采样点数N=32,采样间隔T=0.004s 信号频率f=50Hz,采样点数N=64,采样间隔T=0.000625s 信号频率f=250Hz,采样点数N=32,采样间隔T=0.005s 将c)信号后补32个0,做64点FFT 三、实验分析 DFT是对有限序列做傅里叶变换后在频域上进行采样,而相对应的时域以频谱上的采样频率的倒数进行周期拓展。而在此题中,题中给出时域上的连续信号,对该连续信号进行加窗采样后得到有限序列,要求对该有限序列求DFT。 所以整个步骤为:对时域加窗,则相对应的频域与窗函数的傅里叶变换即sinc函数相卷积;再对时域采样,则对应的频域以时域采样频率的倒数进行周期性拓展;再将时域以窗长为周期进行周期性拓展,对应的频域以该周期的倒数进行采样,即得所求DFT。 信号频率f=50Hz,采样点数N=32,采样间隔T=0.000625s。 Sin函数信号对应的频谱图为在窗长,对应的sinc函数主瓣宽,其余波节与波节间距,两信号在频域上相卷,即将sinc函数平移;在时域以进行采样,即频域以进行周期性拓展。在频域上采32个点,则对应每个点之间的间距为,(对应时域以0.02s进行周期性拓展,不予考虑)。此时我们可以发现除了在f=50Hz(对应为第1个点)上采到的点幅值为sinc函数的最大值外,其他频率上采到

文档评论(0)

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

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

1亿VIP精品文档

相关文档