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

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

ID:59829952

大小:187.00 KB

页数:10页

时间:2020-11-25

快速傅里叶变换fft的Matlab实现-实验报告.doc_第1页
快速傅里叶变换fft的Matlab实现-实验报告.doc_第2页
快速傅里叶变换fft的Matlab实现-实验报告.doc_第3页
快速傅里叶变换fft的Matlab实现-实验报告.doc_第4页
快速傅里叶变换fft的Matlab实现-实验报告.doc_第5页
资源描述:

《快速傅里叶变换fft的Matlab实现-实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、实验目的1在理论学习的基础上,通过本实验加深对快速傅立叶变换的理解;2熟悉并掌握按时间抽取FFT算法的程序;3了解应用FFT进行信号频谱分析过程中可能出现的问题,例如混淆、泄漏、栅栏效应等,以便在实际中正确应用FFT。二、实验内容1仔细分析教材第六章‘时间抽取法FFT’的算法结构,编制出相应的用FFT进行信号分析的C语言(或MATLAB语言)程序;用MATLAB语言编写的FFT源程序如下:%%输入数据f、N、T及是否补零clc;clear;f=input('输入信号频率f:');N=input('输入采样点数N:');T=i

2、nput('输入采样间隔T:');C=input('信号是否补零(补零输入1,不补零输入0):');%补零则输入1,不补则输入0if(C==0)t=0:T:(N-1)*T;x=sin(2*pi*f*t);b=0;elseb=input('输入补零的个数:');while(log2(N+b)~=fix(log2(N+b)))b=input('输入错误,请重新输入补零的个数:');endt=0:T:(N+b-1)*T;x=sin(2*pi*f*t).*(t<=(N-1)*T);end%%fft算法的实现A=bitrevorder(x

3、);%将序列按二进制倒序N=N+b;M=log2(N);%M为蝶形算法的层数W=exp(-j*2*pi/N);forL=1:1:M%第L层蝶形算法B=2^L/2;%B为每层蝶形算法进行加减运算的两个数的间隔K=N/(2^L);%K为每层蝶形算法中独立模块的个数fork=0:1:K-1forJ=0:1:B-1p=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

4、+1);endendend%%画模特性的频谱图z=abs(A);%取模z=z./max(z);%归一化holdonsubplot(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)%画图1用FFT程序计算有限长度正弦信号分别在以下情况下所得的DFT结果并进行分析和讨论:a)信号频率f=50Hz,采样点数N=32,采样间隔T=0

5、.sa)信号频率f=50Hz,采样点数N=32,采样间隔T=0.005sb)信号频率f=50Hz,采样点数N=32,采样间隔T=0.sa)信号频率f=50Hz,采样点数N=32,采样间隔T=0.004sa)信号频率f=50Hz,采样点数N=64,采样间隔T=0.sf)信号频率f=250Hz,采样点数N=32,采样间隔T=0.005sf)将c)信号后补32个0,做64点FFT三、实验分析DFT是对有限序列做傅里叶变换后在频域上进行采样,而相对应的时域以频谱上的采样频率的倒数进行周期拓展。而在此题中,题中给出时域上的连续信号,对该连

6、续信号进行加窗采样后得到有限序列,要求对该有限序列求DFT。所以整个步骤为:对时域加窗,则相对应的频域与窗函数的傅里叶变换即sinc函数相卷积;再对时域采样,则对应的频域以时域采样频率的倒数进行周期性拓展;再将时域以窗长为周期进行周期性拓展,对应的频域以该周期的倒数进行采样,即得所求DFT。a)信号频率f=50Hz,采样点数N=32,采样间隔T=0.s。Sin函数信号对应的频谱图为在窗长,对应的sinc函数主瓣宽,其余波节与波节间距,两信号在频域上相卷,即将sinc函数平移;在时域以进行采样,即频域以进行周期性拓展。在频域上采3

7、2个点,则对应每个点之间的间距为,(对应时域以0.02s进行周期性拓展,不予考虑)。此时我们可以发现除了在f=50Hz(对应为第1个点)上采到的点幅值为sinc函数的最大值外,其他频率上采到的点刚好对应sinc函数的波节处,即此时采到的值为0。又因为DFT满足共轭对称,所以可得图如上。b)信号频率f=50Hz,采样点数N=32,采样间隔T=0.005s。与a相比,采样间隔T不同,所以窗长,为a中窗长的8倍,所以窗长在频域上对应的sinc函数主瓣宽及波节与波节间距都为a中的即,两信号相卷,将sinc函数平移到;在时域以进行采样,即

8、频域以进行周期性拓展。在频域上采32个点,则对应每个点之间的间距为。此时我们可以发现除了在f=50Hz上采到的点幅值为sinc函数的最大值外,其他频率上采到的点刚好对应sinc函数的波节处,即采到的值为0,而f=50Hz=8*6.25Hz,则第8个点为1;又因为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。