快速傅里叶变换实验报告..
快速傅立叶变换FFT实验报告
![快速傅立叶变换FFT实验报告](https://img.taocdn.com/s3/m/6903599429ea81c758f5f61fb7360b4c2e3f2a98.png)
快速傅立叶变换〔FFT〕算法试验一.试验目的1.加深对DFT 算法原理和根本性质的理解;2.生疏FFT 算法原理和FFT 子程序的应用;3.学习用FFT 对连续信号和时域信号进展谱分析的方法,了解可能消灭的分析误差及其缘由,以便在实际中正确应用FFT。
二.试验设备计算机,CCS 3.1 版软件,E300 试验箱,DSP 仿真器,导线三.根本原理1.离散傅立叶变换DFT 的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。
2.FFT 是DFT 的一种快速算法,将DFT 的N2 步运算削减为〔N/2〕logN 步,极大2的提高了运算的速度。
3.旋转因子的变化规律。
4.蝶形运算规律。
5.基2FFT 算法。
四.试验步骤1.E300 底板的开关SW4 的第1 位置ON,其余置OFF。
其余开关不用具体设置。
2.E300 板子上的SW7 开关的第1 位置OFF,其余位置ON3.阅读本试验所供给的样例子程序;4.运行CCS 软件,对样例程序进展跟踪,分析结果;记录必要的参数。
5.填写试验报告。
6.供给样例程序试验操作说明A.试验前预备用导线连接“Signal expansion Unit”中2 号孔接口“SIN”和“A/D 单元”的2 号孔接口“AD_IN0”。
〔试验承受的是外部的AD模块〕B.试验1.正确完成计算机、DSP 仿真器和试验箱的连接后,系统上电。
2.启动CCS3.1,Project/Open 翻开“algorithm\01_fft”子名目下“fft.pjt”工程文件;双击“fft.pjt”及“Source”可查看各源程序;加载“Debug\fft.out”;3.单击“Debug\Go main”进入到主程序,在主程序“flag=0;”处设置断点;4.单击“Debug \ Run”运行程序,或按F5 运行程序;程序将运行至断点处停顿;5.用View / Graph / Time/Frequency 翻开一个图形观看窗口;设置该观看图形窗口变量及参数;承受双踪观看在启始地址分别为px 和pz,长度为128,数值类型为16 位整型,p x:存放经A/D 转换后的输入信号;p z:对该信号进展FFT 变换的结果。
应用快速傅里叶变换对信号进行频谱分析实验报告
![应用快速傅里叶变换对信号进行频谱分析实验报告](https://img.taocdn.com/s3/m/69cbf54753ea551810a6f524ccbff121dc36c54e.png)
应用快速傅里叶变换对信号进行频谱分析实验报告实验报告:快速傅里叶变换在信号频谱分析中的应用【引言】傅里叶分析是一种重要的信号处理方法,可将时域信号转换为频域信号,并且可以分解信号的频谱成分。
传统的傅里叶变换算法在计算复杂度方面较高,为了降低计算的复杂度,人们提出了快速傅里叶变换(FFT)算法。
本实验旨在通过应用快速傅里叶变换对信号进行频谱分析,研究信号的频谱特性。
【实验目的】1.了解傅里叶变换的基本原理,研究其在信号处理中的应用;2.学习快速傅里叶变换算法的原理和优点;3.通过实验操作,观察信号的频谱特性,分析实验结果。
【实验原理】1. 傅里叶变换(FT):对于一个连续时间域信号x(t),其傅里叶变换可表示为X(ω) = ∫[t=−∞,∞]x(t)e^(-jωt)dt,其中X(ω)表示频域上的信号分量,ω为角频率。
2.快速傅里叶变换(FFT)算法:FFT是一种离散时间域信号的频谱分析方法,具有较低的计算复杂度。
FFT算法使用了分治法的思想,将信号分解为较小的频谱分量,并通过递归计算得到完整的频谱图。
3.FFT算法的步骤:1)若信号长度为N,则将其分为两个长度为N/2的子信号;2)对子信号进行FFT变换;3)将两个子信号拼接起来,得到完整信号的频谱分量。
【实验步骤】1.准备实验材料和装置:计算机、FFT分析软件、信号发生器等;2.设置信号发生器的输出参数,例如频率、幅度等;3.连接信号发生器和计算机,打开FFT分析软件;4.在FFT软件中选择输入信号通道,设置采样参数等;5.开始实验,观察计算机屏幕上的频谱图;6.调整信号发生器的参数,重复第5步,记录实验结果;7.结束实验,关闭设备。
【实验结果与分析】我们选择了一个简单的正弦波信号作为输入信号,信号频率设置为100Hz,幅度设置为1V。
在进行频谱分析之前,我们通过示波器观察到一个明显的正弦波信号。
接下来,我们将信号输入到计算机上的FFT分析软件中,进行频谱分析。
fft频谱分析实验报告
![fft频谱分析实验报告](https://img.taocdn.com/s3/m/22cd9c32a517866fb84ae45c3b3567ec112ddc79.png)
FFT频谱分析实验报告引言频谱分析是一种用于分析信号频率特征的方法,可应用于多个领域,如音频处理、图像处理、通信系统等。
本文将介绍FFT(快速傅里叶变换)频谱分析方法,并通过实验验证其有效性。
实验目的本实验旨在探索FFT频谱分析方法,了解其原理,并通过实验验证其在信号处理中的应用。
实验步骤1.准备实验材料–一台装有MATLAB软件的电脑–需要进行频谱分析的信号数据2.导入信号数据在MATLAB环境中,导入需要进行频谱分析的信号数据。
可以通过以下命令完成数据导入:data = importdata('signal.txt');这里假设信号数据保存在名为signal.txt的文件中。
3.对信号数据进行FFT变换利用MATLAB中的fft函数对信号数据进行FFT变换。
具体命令如下:fft_data = fft(data);这将得到信号数据的FFT变换结果。
4.计算频率谱通过对FFT变换结果的分析,可以计算信号的频率谱。
根据FFT变换的性质,频率谱可以通过计算FFT变换结果的模值得到:spectrum = abs(fft_data);这将得到信号的频率谱。
5.绘制频谱图利用MATLAB的plot函数,可以将频率谱绘制成图形。
命令如下:plot(spectrum);xlabel('频率');ylabel('幅值');title('频谱图');这将绘制出信号的频谱图。
6.分析频谱图通过观察频谱图,可以分析信号的频率特征,如频率成分的强度、主要频率等。
实验结果与讨论在完成以上步骤后,我们得到了信号的频谱图。
通过观察频谱图,我们可以分析信号的频率特征。
例如,我们可以确定信号中主要的频率成分,并通过频率成分的强度判断信号的特性。
在实验中,我们可以尝试使用不同的信号数据进行频谱分析,并观察结果的差异。
通过比较不同信号的频谱图,我们可以进一步了解信号的特性,并探索不同应用场景下的频谱分析方法。
fft实验报告结果
![fft实验报告结果](https://img.taocdn.com/s3/m/d5be962549d7c1c708a1284ac850ad02df80074c.png)
fft实验报告结果
《FFT实验报告结果:探索快速傅里叶变换的神奇魅力》
在现代科技领域,傅里叶变换(Fourier Transform)被广泛应用于信号处理、
图像处理、通信系统等各个领域。
而快速傅里叶变换(Fast Fourier Transform,FFT)作为一种高效的计算傅里叶变换的算法,更是被广泛使用。
本文将介绍一项关于FFT实验的报告结果,探索FFT的神奇魅力。
在实验中,我们选择了一组包含不同频率和幅度的信号进行FFT处理。
通过对
这些信号进行FFT分析,我们得到了它们在频域上的频谱图。
通过观察频谱图,我们可以清晰地看到信号中包含的各种频率成分,从而更好地理解信号的特性。
实验结果显示,FFT算法能够高效地计算出信号的频谱,并且能够准确地捕捉
到信号中的各种频率成分。
通过对频谱图的分析,我们可以得到信号的频率分
布情况,从而更好地了解信号的特性和结构。
除此之外,我们还对不同长度的信号进行了FFT处理,结果显示FFT算法在处
理不同长度的信号时依然能够保持高效性能。
这表明FFT算法具有很好的可扩
展性,能够适应不同长度的信号处理需求。
总的来说,通过这次实验,我们更加深入地了解了FFT算法在信号处理中的重
要性和优越性能。
FFT算法的高效性和准确性使其成为了信号处理领域中不可
或缺的工具,为我们提供了更好的信号分析和处理手段。
希望通过这次实验报告,能够让更多的人了解和认识FFT算法的神奇魅力,进一步推动其在各个领
域的应用和发展。
FFT应用——傅立叶变换实验报告
![FFT应用——傅立叶变换实验报告](https://img.taocdn.com/s3/m/8c24cd9851e79b8968022656.png)
FFT应用——傅立叶变换实验报告1.实验名称:FFT应用——傅立叶变换2.实验目的:1.加深对DFT算法原理和基本性质的理解。
2.熟悉FFT算法原理和FFT子程序的应用。
3.利用FFT算法对序列信号进行变换及逆变换。
3.实验原理:从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。
从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。
4、实验内容及步骤1.读入长度为N的序列信号。
2.调用信号产生子程序产生实验信号。
3.利用函数FFT1D,对其进行快速傅立叶变换, F1=fft1d(f).4.显示变换后的实验数据。
5.对变换后的信号,利用函数IFFT1D,对其进行傅立叶逆变换, F2=fft1d(f).6.显示变换了中心后的数据,比较和原来的输入信号是否相同。
5.程序清单:傅立叶变换函数fft1dvoid fft1d(int flag,int n, double fr[], double fi[],double tblSin[], double tblCos[]){int i,m,iw,j=0,l,lp,lp2,n2,k;double c,s,wr,wi,xa,ya;for(i=0;i<n-1;i++){if (i < j){xa = fr[i];fr[i] = fr[j];fr[j] = xa;ya = fi[i] ;fi[i] = fi[j];fi[j] = ya;}n2 = n / 2;while (j >= n2){j = j - n2 ;n2 = n2 / 2;}j += n2;}m = 0;n2 = n;while(n2!=1){m += 1 ;n2 = n2/2;}for(l=1;l<=m;l++){lp = (int)pow(2.0,l); lp2 = lp /2.0;k = 0;for(j=0;j<lp2;j++){c = tblCos[k];s = tblSin[k];k += n/lp;for(i=j;i<n;i=i+lp) {iw = i + lp2;wr = fr[iw] * c - fi[iw] * s;wi = fr[iw] * s + fi[iw] * c;fr[iw] = fr[i] - wr ;fi[iw] = fi[i] - wi;fr[i] = fr[i] + wr ;fi[i] = fi[i] + wi;}}}if(flag==1){for(i=0;i<n;i++){fr[i] /= n ;fi[i] /= n;}}}计算sin(i),cos(i)的函数void makeTable(int flag,int n, double tblSin[] , double tblCos[]) {int i;double cc, arg ;cc = -2.0 * PI* flag /n;for(i=0;i<n;i++){arg = i * cc;tblSin[i] = sin(arg);tblCos[i] = cos(arg);}}6.程序运行结果:变换前的信号傅立叶变换后的数据傅立叶逆变换后的数据7.实验分析:信号经过傅立叶变换后,输出的数据实部和虚部分别对称,符合傅立叶变换的性质。
FFT算法分析实验实验报告
![FFT算法分析实验实验报告](https://img.taocdn.com/s3/m/147b8f20178884868762caaedd3383c4bb4cb4ed.png)
FFT算法分析实验实验报告一、实验目的快速傅里叶变换(Fast Fourier Transform,FFT)是数字信号处理中一种非常重要的算法。
本次实验的目的在于深入理解 FFT 算法的基本原理、性能特点,并通过实际编程实现和实验数据分析,掌握 FFT 算法在频谱分析中的应用。
二、实验原理FFT 算法是离散傅里叶变换(Discrete Fourier Transform,DFT)的快速计算方法。
DFT 的定义为:对于长度为 N 的序列 x(n),其 DFT 为X(k) =∑n=0 到 N-1 x(n) e^(j 2π k n / N) ,其中 j 为虚数单位。
FFT 算法基于分治法的思想,将 N 点 DFT 分解为多个较小规模的DFT,从而大大减少了计算量。
常见的 FFT 算法有基 2 算法、基 4 算法等。
三、实验环境本次实验使用的编程语言为 Python,主要依赖 numpy 库来实现 FFT 计算和相关的数据处理。
四、实验步骤1、生成测试信号首先,生成一个包含不同频率成分的正弦波叠加信号,例如100Hz、200Hz 和 300Hz 的正弦波。
设定采样频率为 1000Hz,采样时间为 1 秒,以获取足够的采样点进行分析。
2、进行 FFT 计算使用 numpy 库中的 fft 函数对生成的测试信号进行 FFT 变换。
3、频谱分析计算 FFT 结果的幅度谱和相位谱。
通过幅度谱确定信号中各个频率成分的强度。
4、误差分析与理论上的频率成分进行对比,计算误差。
五、实验结果与分析1、幅度谱分析观察到在 100Hz、200Hz 和 300Hz 附近出现明显的峰值,对应于生成信号中的频率成分。
峰值的大小反映了相应频率成分的强度。
2、相位谱分析相位谱显示了各个频率成分的相位信息。
3、误差分析计算得到的频率与理论值相比,存在一定的误差,但在可接受范围内。
误差主要来源于采样过程中的量化误差以及 FFT 算法本身的近似处理。
fft上机实验报告
![fft上机实验报告](https://img.taocdn.com/s3/m/aae3295b2379168884868762caaedd3383c4b52c.png)
fft上机实验报告FFT上机实验报告引言:傅里叶变换(Fourier Transform)是一种重要的数学工具,可以将一个函数在时域中的表示转换为频域中的表示。
在信号处理、图像处理、通信等领域中,傅里叶变换被广泛应用。
本文将介绍在上机实验中所学习到的快速傅里叶变换(Fast Fourier Transform,FFT)算法及其应用。
一、实验目的本次上机实验的主要目的是通过实际操作,深入了解FFT算法的原理和应用。
具体目标包括:掌握FFT算法的基本思想和计算步骤;理解FFT算法的时间复杂度和空间复杂度;学会使用MATLAB等工具进行FFT算法的实现和应用。
二、实验过程1. 理论知识准备在进行FFT算法的实验之前,我们首先需要了解傅里叶变换的基本原理和FFT 算法的推导过程。
傅里叶变换可以将一个连续函数表示为一系列正弦和余弦函数的叠加,从而揭示了信号的频域特性。
而FFT算法则是一种高效计算离散傅里叶变换(Discrete Fourier Transform,DFT)的方法,可以大大减少计算复杂度。
2. 实验准备在实验开始之前,我们需要准备一些实验所需的工具和数据。
首先,我们需要安装MATLAB软件,并确保其正常运行。
其次,我们需要准备一些信号数据,可以是声音、图像等。
本次实验中,我们选择了一段音频作为实验数据。
3. 实验步骤(1)导入数据首先,我们需要将实验数据导入到MATLAB中。
通过使用MATLAB提供的读取音频文件的函数,我们可以将音频数据读取为一个向量。
(2)进行FFT计算接下来,我们可以使用MATLAB提供的fft函数对导入的音频数据进行FFT计算。
FFT函数将返回一个复数数组,表示输入信号在频域中的表示。
(3)频域分析得到频域表示后,我们可以对信号进行频域分析。
通过计算频谱、功率谱等参数,我们可以了解信号的频率分布、能量分布等特性。
此外,还可以进行滤波、降噪等操作,以实现对信号的处理和改变。
fft实验分析实验报告
![fft实验分析实验报告](https://img.taocdn.com/s3/m/2f7795cad1d233d4b14e852458fb770bf68a3b74.png)
fft实验分析实验报告FFT实验分析实验报告一、引言傅里叶变换(Fourier Transform)是一种重要的信号分析工具,它能够将一个信号分解成不同频率的成分。
快速傅里叶变换(Fast Fourier Transform,FFT)是一种高效的计算傅里叶变换的算法。
本实验旨在通过实际操作,探究FFT在信号分析中的应用。
二、实验设备与方法1. 实验设备:本实验使用的设备包括示波器、信号发生器和计算机。
2. 实验方法:(1)将信号发生器的输出接入示波器的输入端。
(2)调节信号发生器的参数,如频率、振幅等,产生不同的信号。
(3)通过示波器观察信号的波形,并记录相关数据。
(4)将示波器与计算机通过USB接口连接,将示波器上的数据传输到计算机上。
(5)使用计算机上的软件进行FFT分析,得到信号的频谱信息。
三、实验结果与分析1. 实验一:正弦波信号的FFT分析(1)设置信号发生器的频率为1000Hz,振幅为5V,产生一段正弦波信号。
(2)通过示波器观察信号的波形,并记录相关数据。
(3)将示波器上的数据传输到计算机上,进行FFT分析。
实验结果显示,正弦波信号的频谱图呈现出单个峰值,且峰值位于1000Hz处。
这说明FFT能够准确地分析出信号的频率成分,并将其可视化展示。
2. 实验二:方波信号的FFT分析(1)设置信号发生器的频率为500Hz,振幅为5V,产生一段方波信号。
(2)通过示波器观察信号的波形,并记录相关数据。
(3)将示波器上的数据传输到计算机上,进行FFT分析。
实验结果显示,方波信号的频谱图呈现出多个峰值,且峰值位于500Hz的倍数处。
这说明方波信号由多个频率成分叠加而成,FFT能够将其分解出来,并显示出各个频率成分的强度。
3. 实验三:复杂信号的FFT分析(1)设置信号发生器的频率为100Hz和200Hz,振幅分别为3V和5V,产生一段复杂信号。
(2)通过示波器观察信号的波形,并记录相关数据。
(3)将示波器上的数据传输到计算机上,进行FFT分析。
数字信号处理_快速傅里叶变换FFT实验报告
![数字信号处理_快速傅里叶变换FFT实验报告](https://img.taocdn.com/s3/m/8395fa1b814d2b160b4e767f5acfa1c7ab008253.png)
数字信号处理_快速傅里叶变换FFT实验报告快速傅里叶变换(FFT)实验报告1. 引言数字信号处理是一门研究如何对数字信号进行处理、分析和提取信息的学科。
傅里叶变换是数字信号处理中常用的一种方法,可以将信号从时域转换到频域。
而快速傅里叶变换(FFT)是一种高效的计算傅里叶变换的算法,广泛应用于信号处理、图象处理、通信等领域。
2. 实验目的本实验旨在通过编写程序实现快速傅里叶变换算法,并对不同信号进行频谱分析。
3. 实验原理快速傅里叶变换是一种基于分治策略的算法,通过将一个N点离散傅里叶变换(DFT)分解为多个较小规模的DFT,从而实现高效的计算。
具体步骤如下: - 如果N=1,直接计算DFT;- 如果N>1,将输入序列分为偶数和奇数两部份,分别计算两部份的DFT;- 将两部份的DFT合并为整体的DFT。
4. 实验步骤此处以C语言为例,给出实验的具体步骤:(1) 定义输入信号数组和输出频谱数组;(2) 实现快速傅里叶变换算法的函数,输入参数为输入信号数组和输出频谱数组;(3) 在主函数中调用快速傅里叶变换函数,得到输出频谱数组;(4) 对输出频谱数组进行可视化处理,如绘制频谱图。
5. 实验结果与分析为了验证快速傅里叶变换算法的正确性和有效性,我们设计了以下实验:(1) 生成一个正弦信号,频率为100Hz,采样频率为1000Hz,时长为1秒;(2) 对生成的正弦信号进行快速傅里叶变换,并绘制频谱图;(3) 生成一个方波信号,频率为200Hz,采样频率为1000Hz,时长为1秒;(4) 对生成的方波信号进行快速傅里叶变换,并绘制频谱图。
实验结果显示,对于正弦信号,频谱图中存在一个峰值,位于100Hz处,且幅度较大;对于方波信号,频谱图中存在多个峰值,分别位于200Hz的奇数倍处,且幅度较小。
这与我们的预期相符,说明快速傅里叶变换算法能够正确地提取信号的频谱信息。
6. 实验总结通过本次实验,我们成功实现了快速傅里叶变换算法,并对不同信号进行了频谱分析。
实验三用FFT对信号作频谱分析_实验报告
![实验三用FFT对信号作频谱分析_实验报告](https://img.taocdn.com/s3/m/0a41e06a905f804d2b160b4e767f5acfa1c78397.png)
实验三用FFT对信号作频谱分析_实验报告一、实验目的1.学习使用FFT(快速傅里叶变换)对信号进行频谱分析;2.掌握频谱分析的基本原理和方法;3.熟悉使用MATLAB进行频谱分析的操作。
二、实验原理FFT是一种基于傅里叶变换的算法,可以将时域信号转换为频域信号,并将信号的频谱特征展示出来。
在频谱分析中,我们通过分析信号的频谱可以获得信号的频率、幅值等信息,从而对信号的性质和特征进行研究。
对于一个连续信号,我们可以通过采样的方式将其转换为离散信号,再利用FFT算法对离散信号进行频谱分析。
FFT算法可以将信号从时域转换到频域,得到离散的频谱,其中包含了信号的频率分量以及对应的幅值。
MATLAB中提供了fft函数,可以方便地对信号进行FFT分析。
通过对信号进行FFT操作,可以得到信号的频谱图,并从中提取出感兴趣的频率信息。
三、实验步骤1.准备工作:(2)建立新的MATLAB脚本文件。
2.生成信号:在脚本中,我们可以通过定义一个信号的频率、幅值和时间长度来生成一个信号的波形。
例如,我们可以生成一个频率为1000Hz,幅值为1的正弦波信号,并设置信号的时间长度为1秒。
3.对信号进行FFT分析:调用MATLAB中的fft函数,对信号进行FFT分析。
通过设置采样频率和FFT长度,可以得到信号的频谱。
其中,采样频率是指在单位时间内连续采样的次数,FFT长度是指离散信号的样本点数。
4.绘制频谱图:调用MATLAB中的plot函数,并设置x轴为频率,y轴为幅值,可以绘制出信号的频谱图。
频谱图上横坐标表示信号的频率,纵坐标表示信号的幅值,通过观察可以得到信号的频率分布情况。
四、实验结果在实验过程中,我们生成了一个频率为1000Hz,幅值为1的正弦波信号,并对其进行FFT分析。
通过绘制频谱图,我们发现信号在1000Hz处有最大幅值,说明信号主要由这一频率成分组成。
五、实验总结本实验通过使用FFT对信号进行频谱分析,我们可以方便地从信号的波形中提取出频率分量的信息,并绘制出频谱图进行观察。
快速傅里叶变换实验报告
![快速傅里叶变换实验报告](https://img.taocdn.com/s3/m/c6fd5845f7ec4afe04a1df46.png)
快速傅里叶变换实验报告班级:姓名:学号:快速傅里叶变换一.实验目的1.在理论学习的基础上,通过本实验加深对快速傅立叶变换的理解;2.熟悉并掌握按时间抽取FFT 算法的程序;3.了解应用FFT 进行信号频谱分析过程中可能出现的问题,例如混淆、泄漏、栅栏效应等,以便在实际中正确应用FFT 。
二.实验内容1.仔细分析教材第六章‘时间抽取法FFT ’的算法结构,编制出相应的用FFT 进行信号分析的C 语言(或MATLAB 语言)程序;2.用FFT 程序分析正弦信号()sin(2)[()(*)],(0)1y t f t u t u t N T t u π=---∞<<+∞=设分别在以下情况进行分析并讨论所得的结果:a ) 信号频率f =50Hz ,采样点数N=32,采样间隔T=0.000625sb ) 信号频率f =50Hz ,采样点数N=32,采样间隔T=0.005sc ) 信号频率f =50Hz ,采样点数N=32,采样间隔T=0.0046875sd ) 信号频率f =50Hz ,采样点数N=32,采样间隔T=0.004se ) 信号频率f =50Hz ,采样点数N=64,采样间隔T=0.000625sf ) 信号频率f =250Hz ,采样点数N=32,采样间隔T=0.005sg ) 将c ) 信号后补32个0,做64点FFT三.实验要求1.记录下实验内容中各种情况下的X (k)值,做出频谱图并深入讨论结果,说明参数的变化对信号频谱产生哪些影响。
频谱只做模特性,模的最大值=1,全部归一化;2.打印出用C 语言(或MATLAB 语言)编写的FFT 源程序,并且在每一小段处加上详细的注释说明;3.用C 语言(或MATLAB 语言)编写FFT 程序时,要求采用人机界面形式:N , T , f 变量均由键盘输入,补零或不补零要求设置一开关来选择。
四.实验分析对于本实验进行快速傅里叶变换,依次需要对信号进行采样,补零(要求补零时),码位倒置,蝶形运算,归一化处理并作图。
fft频谱分析实验报告
![fft频谱分析实验报告](https://img.taocdn.com/s3/m/64863a60bdd126fff705cc1755270722192e591d.png)
fft频谱分析实验报告
《FFT频谱分析实验报告》
摘要:
本实验利用FFT(快速傅里叶变换)技术对信号进行频谱分析,通过实验数据
的采集和处理,得出了频谱分析的结果。
实验结果表明,FFT技术可以有效地
对信号进行频谱分析,为信号处理提供了重要的工具和方法。
引言:
频谱分析是信号处理中的重要内容,通过对信号的频谱进行分析,可以了解信
号的频率成分和能量分布情况,对信号的特性有着重要的指导作用。
FFT作为
一种快速、高效的频谱分析方法,被广泛应用于信号处理领域。
本实验旨在通
过对信号进行FFT频谱分析,探讨FFT技术在频谱分析中的应用效果。
实验内容:
1. 实验仪器:使用数字示波器采集信号数据。
2. 实验步骤:通过数字示波器采集信号数据,并进行FFT频谱分析。
3. 实验数据处理:对采集到的信号数据进行FFT频谱分析,并得出频谱分析结果。
4. 实验结果分析:对频谱分析结果进行分析和讨论。
实验结果:
通过实验数据的采集和处理,得出了信号的频谱分析结果。
分析结果表明,FFT 技术可以有效地对信号进行频谱分析,得到了信号的频率成分和能量分布情况。
通过对实验数据的分析,我们得以了解信号的频谱特性,为信号处理提供了重
要的参考依据。
结论:
本实验通过对信号进行FFT频谱分析,得出了频谱分析的结果。
实验结果表明,FFT技术可以有效地对信号进行频谱分析,为信号处理提供了重要的工具和方法。
通过本实验的实践操作,我们对FFT频谱分析技术有了更深入的了解,为
今后的实际应用提供了重要的参考依据。
应用快速傅里叶变换对信号进行频谱分析实验报告
![应用快速傅里叶变换对信号进行频谱分析实验报告](https://img.taocdn.com/s3/m/c0c6589177eeaeaad1f34693daef5ef7ba0d122c.png)
应用快速傅里叶变换对信号进行频谱分析实验报告实验报告:应用快速傅里叶变换(FFT)对信号进行频谱分析摘要:本实验旨在通过应用快速傅里叶变换(FFT)对信号进行频谱分析,探索信号在频域中的特征及其应用。
实验中我们选择了一个特定的信号,并通过FFT将其转换成频谱图。
通过分析频谱图,我们可以了解到信号中的频域信息,并通过此信息进一步分析和研究信号的特性。
实验结果表明,应用FFT对信号进行频谱分析可以提供有关信号频域特性的重要信息。
一、实验目的:通过实验,我们的目标是:1.了解傅里叶变换的原理和概念;2.掌握快速傅里叶变换(FFT)的原理和实现方法;3.应用FFT对特定信号进行频谱分析,并分析信号在频域中的特点;4.了解频谱分析在信号处理中的应用。
二、实验器材:1.计算机;2.信号发生器;3.音频采集设备。
三、实验步骤:1.选择特定信号,可以是音频信号、振动信号等;2.通过信号发生器产生特定信号;3.通过音频采集设备将信号输入到计算机中,采集信号数据;4.利用计算机上的信号处理软件,应用FFT将信号转换为频谱图;5.分析频谱图,观察信号在频域中的特征。
四、实验结果与分析:我们选择了一个简单的音频信号作为实验对象。
通过实验,我们得到了该音频信号的频谱图。
通过观察该频谱图,我们可以看到信号的主要频率成分以及其强度。
在频谱图中,横轴表示频率,纵轴表示信号的强度。
频谱图显示了信号的频率分布情况。
通过观察频谱图,我们可以得到以下结论:1.该音频信号主要包含在低频和高频范围内,中频较少;2.低频和高频范围内的强度较高,中频范围内的强度较低;3.在低频和高频范围内都存在一些峰值,可能代表着信号的主要频率成分。
通过分析频谱图,我们可以了解到信号在频域中的特征。
在实际应用中,频谱分析可以用于不同领域,例如声音处理、图像处理等。
通过频谱分析,我们可以了解到信号的频域信息,从而更好地理解和处理信号。
五、实验总结:实验结果表明,应用快速傅里叶变换对信号进行频谱分析可以提供有关信号频域特性的重要信息。
快速傅里叶变换实验报告
![快速傅里叶变换实验报告](https://img.taocdn.com/s3/m/c75baeabfad6195f302ba660.png)
快速傅里叶变换实验报告机械34班 攀 2013010558一、 基本信号(函数)的FFT 变换1. 000()sin()sin 2cos36x t t t t πωωω=+++ 1) 采样频率08s f f =,截断长度N=16;取02ωπ=rad/s ,则0f =1Hz ,s f =8Hz ,频率分辨率f ∆=s f f N∆==0.5Hz 。
最高频率c f =30f =3Hz ,s f >2c f ,故满足采样定理,不会发生混叠现象。
截断长度02T T =,整周期截取,不会发生栅栏效应。
理论上有一定的泄漏,但在整周期 截取的情况下,旁瓣上的采样都约为 0,泄漏现象没有体现出来。
频谱图如下:幅值误差0A ∆=,相位误差0ϕ∆=。
2) 采样频率08s f f =,截断长度N=32;取02ωπ=rad/s ,则0f =1Hz ,s f =8Hz ,频率分辨率f ∆=s f f N∆==0.25Hz 。
最高频率c f =30f =3Hz ,s f >2c f ,故满足采样定理,不会发生混叠现象。
截断长度04T T =,整周期截取,不会发生栅栏效应。
理论上有一定的泄漏,但在整周期 截取的情况下,旁瓣上的采样都约为 0,泄漏现象没有体现出来。
频谱图如下:幅值误差0A ∆=,相位误差0ϕ∆=。
2. 00()sin()sin116x t t t πωω=++ 1) 采样频率08s f f =,截断长度N=16;取02ωπ=rad/s ,则0f =1Hz ,s f =8Hz ,频率分辨率f ∆=s f f N∆==0.5Hz 。
最高频率c f =110f =11Hz ,s f <2c f ,故不满足采样定理,会发生混叠现象。
截断长度02T T =,整周期截取,不会发生栅栏效应。
理论上有一定的泄漏,但在整周期 截取的情况下,旁瓣上的采样都约为 0,泄漏现象没有体现出来。
频谱图:由上图可以看出,并未体现出110f 的成分,说明波形出现混叠失真。
数字信号处理实验二快速傅里叶变换(FFT)及其应用报告
![数字信号处理实验二快速傅里叶变换(FFT)及其应用报告](https://img.taocdn.com/s3/m/a54722cd760bf78a6529647d27284b73f24236c8.png)
实验二 快速傅里叶变换(FFT)及其应用一、 实验目的(1) 在理论学习的基础上,通过本实验,加深对FFT 的理解,熟悉MATLAB 中的有关函数。
(2) 应用FFT 对典型信号进行频谱分析。
(3) 了解应用FFT 进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT 。
(4) 应用FFT 实现序列的线性卷积。
二、 实验内容实验中用到的信号序列 a) 高斯序列2()015()0n p q a en x n --⎧⎪≤≤=⎨⎪⎩其他b) 衰减正弦序列sin(2)015()0an b e fn n x n π-⎧≤≤=⎨⎩其他c) 三角波序列03()8470c nn x n n n ≤≤⎧⎪=-≤≤⎨⎪⎩其他d) 反三角波序列403()4470d n n x n n n -≤≤⎧⎪=-≤≤⎨⎪⎩其他(1) 观察高斯序列的时域和幅频特性,固定信号()a x n 中参数p =8,改变q 的值,使q 分别等于2,4,8,观察它们的时域和幅频特性,了解当q 取不同值时,对信号序列的时域幅频特性的影响;固定q =8,改变p ,使p 分别等于8,13,14,观察参数p 变化对信号序列的时域及幅频特性的影响,观察p 等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。
实验程序:function gauss(p,q) n=0:1:15; N=length(n);xa=exp(-(n-p).^2/q); M=10000;w=2*pi/M*(0:1:M-1); Xa=zeros(1,M); for k=1:MXa(k)=sum(xa*(exp(-j*w(k)*(0:N-1)'))); endsubplot(2,1,1); stem(n,xa);xlabel('n'),ylabel('x_a(n)') subplot(2,1,2); plot(w,abs(Xa))xlabel('\omega'),ylabel('幅度谱') 实验结果: P=8,q=2P=8,q=4nx a(n )01234567123幅度谱P=8,q=8p=13,q=8nx a(n )123456701234ω幅度谱nx a(n)01234567246ω幅度谱p=14,q=8(3) 观察三角波和反三角波序列的时域和幅频特性,用N =8点FFT 分析信号序列()c x n 和()d x n 的幅频特性,观察两者的序列形状和频谱曲线有什么异同?绘出两序列及其幅频特性nx a(n )01234567246ω幅度谱nx a(n )123456701234ω幅度谱曲线。
傅里叶变换实验报告
![傅里叶变换实验报告](https://img.taocdn.com/s3/m/ba623ba5951ea76e58fafab069dc5022aaea46a9.png)
一、实验目的1. 理解傅里叶变换的基本原理及其在信号处理中的应用。
2. 掌握傅里叶变换的数学计算方法。
3. 利用MATLAB软件实现傅里叶变换,并对实验结果进行分析。
二、实验原理傅里叶变换是一种重要的信号处理方法,它可以将信号从时域转换到频域。
在频域中,信号的特征更加明显,便于分析和处理。
傅里叶变换的基本原理是将一个信号分解为不同频率的正弦波和余弦波的叠加。
傅里叶变换分为连续傅里叶变换(CFT)和离散傅里叶变换(DFT)。
CFT适用于连续信号,而DFT适用于离散信号。
在本实验中,我们将使用DFT。
三、实验步骤1. 利用MATLAB软件创建一个时域信号,如正弦波、方波或三角波。
2. 对信号进行采样,得到离散信号。
3. 使用MATLAB的fft函数对离散信号进行傅里叶变换。
4. 分析傅里叶变换后的频谱,观察信号在不同频率下的能量分布。
5. 对频谱进行滤波处理,提取感兴趣的特征。
6. 将滤波后的频谱进行逆傅里叶变换,还原信号。
四、实验结果与分析1. 信号创建在本实验中,我们创建了一个频率为50Hz的正弦波信号,采样频率为1000Hz。
2. 傅里叶变换使用MATLAB的fft函数对信号进行傅里叶变换,得到频谱。
观察频谱,发现50Hz 处的能量最大,与信号频率一致。
3. 滤波处理对频谱进行低通滤波,保留50Hz以下的频率成分,滤除高于50Hz的频率成分。
然后对滤波后的频谱进行逆傅里叶变换,还原信号。
观察还原后的信号,发现高频噪声被滤除,信号质量得到提高。
4. 逆傅里叶变换将滤波后的频谱进行逆傅里叶变换,还原信号。
观察还原后的信号,发现其波形与原始信号基本一致,但噪声明显减少。
五、实验结论1. 通过本实验,我们掌握了傅里叶变换的基本原理和计算方法。
2. 利用MATLAB软件可以方便地实现傅里叶变换,并对实验结果进行分析。
3. 傅里叶变换在信号处理中具有广泛的应用,如信号滤波、图像处理、通信等领域。
4. 本实验验证了傅里叶变换在噪声抑制方面的有效性,有助于提高信号质量。
fft实验分析实验报告
![fft实验分析实验报告](https://img.taocdn.com/s3/m/d6020d7da9956bec0975f46527d3240c8547a16a.png)
fft实验分析实验报告
实验报告主要包括实验目的、实验原理、实验步骤、实验结果分析和结论等内容。
以下是一个关于FFT实验分析的实验报告示例:
实验报告
实验目的:
1. 了解傅里叶变换(FFT)的基本原理和应用;
2. 学会使用FFT算法对信号进行频谱分析。
实验设备和材料:
1. 计算机;
2. 音频文件或实时采集的音频信号。
实验原理:
傅里叶变换是一种将时域信号转换为频域信号的数学变换方法,可以将信号表示为不同频率的复指数函数的叠加。
而FFT(快速傅里叶变换)是一种高效的傅里叶变换算法,可以快速计算信号的频谱。
实验步骤:
1. 准备音频文件或实时采集的音频信号;
2. 将音频信号输入计算机中的FFT算法进行处理,得到信号的频谱;
3. 对频谱进行可视化表示,如绘制频谱图;
4. 根据频谱图分析信号的频率分布和能量分布等特征。
实验结果分析:
通过实验,我们得到了音频信号的频谱图。
根据频谱图可以得到信号的频率分布情况,即哪些频率的分量相对强,哪些频率的分量相对弱。
频谱图还可以展示信号的能量分
布情况,能量较高的频率分量对应着声音的主要特征。
结论:
通过本次实验,我们学习了傅里叶变换(FFT)的基本原理和应用,并掌握了使用FFT 算法进行信号频谱分析的方法。
频谱分析是一种常用的信号处理方法,可以帮助我们
了解信号的频率特征和能量分布情况,对于音频、图像等领域的信号处理具有重要的
应用价值。
fft实验报告
![fft实验报告](https://img.taocdn.com/s3/m/6834c7dabcd126fff6050bb6.png)
快速傅里叶变换实验报告一、实验目的(一)加深对几个特殊概念的理解:“采样”——“混叠”;“窗函数”(截断)——“泄漏”;非整周期截取”——“栅栏”。
(二)加深理解如何才能避免“混叠”,减少“泄漏”,防止“栅栏”的方法和措施以及估计这些因素对频谱的影响。
(三)对利用通用微型计算机及相应的FFT 软件,实现频谱分析有一个初步的了解。
二、实验原理为了实现信号的数字化处理,利用计算机进行频谱分析——计算信号的频谱。
由于计算机只能进行有限的离散计算(即DFT ),因此就要对连续的模拟信号进行采样和截断。
而这两个处理过程可能引起信号频谱的畸变,从而使DFT 的计算机过于信号的实际频谱有误差。
有时由于采样和截断的处理不当,使计算出来的频谱完全失真。
因此在时域处理信号时要格外小心。
在信号数字化处理中应十分注意以下几点:(一)为了避免“混叠”,要求在采样时必须满足采样定理。
(二)为了减少“泄漏”,应适当增加截断长度和选择合适的窗。
(三)对信号进行整周期截取,则能消除“栅栏效应”。
(四)增加截断长度,则可提高频率分辨率。
三、实验内容及步骤(一)基本信号的FFT 变换1、()000sin(sin 2cos36x t w t w t w t π=+++第1组:采样频率,截断长度N=1608s f f =程序清单:n=16;%截取长度multi=8;%采样频率倍数x=0;%初始化向量,维数待定w0=2*pi;%设定基准频率for var=1:1:nx(var)=sin(w0/multi*(var-1)+pi/6)+sin(2*w0/multi*(var-1))+cos(3*w0/multi*(var-1));endy=fft(x);y=fftshift(y);ang=angle(y)/pi*180;altitude=abs(y)/n;var=1:1:n;subplot(1,2,1);bar(var,altitude,0.3);title('幅频图');xlabel('w');ylabel('幅值');subplot(1,2,2);bar(var,ang,0.3);colormap ([0 1 1]);title('相频图');xlabel('w');ylabel('相位');ang =Columns 1 through 80 -24.1998 0.0000 -155.8595 90.0000 81.2485 60.0000 157.9674 Columns 9 through 16180.0000 -157.9674 -60.0000 -81.2485 -90.0000 155.8595 -0.0000 24.1998altitude=Columns 1 through 80.0000 0.0000 0.5000 0.0000 0.5000 0.0000 0.5000 0.0000 Columns 9 through 160.0000 0.0000 0.5000 0.0000 0.5000 0.0000 0.5000 0.0000分析:1、频率分辨率是00.5sf f Nδ==2、x(t)的信号频率成分中的最高频率,满足采样定理,所以DFT 结果没有频率032sf f <混叠现象。
fft谱分析实验报告
![fft谱分析实验报告](https://img.taocdn.com/s3/m/f6abb74517fc700abb68a98271fe910ef12dae88.png)
FFT谱分析实验报告1. 引言谱分析是一种常见的信号处理技术,用于将一个信号分解为不同频率的成分。
FFT(快速傅里叶变换)是一种高效的算法,用于计算离散傅里叶变换,广泛应用于谱分析中。
本实验旨在探究FFT在信号处理中的应用,并通过实验验证其有效性。
2. 实验目的本实验旨在: - 理解FFT算法的原理和实现方法; - 学习如何使用FFT对信号进行频谱分析; - 验证FFT算法的准确性和有效性。
3. 实验步骤3.1 准备实验材料和工具为了进行谱分析实验,我们需要准备以下材料和工具: - 信号源(例如音频文件、信号发生器等) - 电脑(用于运行信号处理软件) - 信号处理软件(例如MATLAB、Python等)3.2 选择信号源在本实验中,我们选择了一个音频文件作为信号源。
音频文件包含了不同频率的声音信号,适合用于谱分析。
3.3 导入信号源使用信号处理软件,将选择的音频文件导入到程序中。
3.4 实施FFT算法根据FFT算法的原理,我们可以使用信号处理软件实施FFT算法。
以下是实施FFT算法的步骤: 1. 对导入的音频信号进行采样。
2. 将采样后的信号进行傅里叶变换,得到信号的频域表示。
3. 可选地,对频域表示进行滤波或其他信号处理操作。
4. 将处理后的信号进行逆傅里叶变换,得到恢复后的信号。
3.5 分析结果通过实施FFT算法,我们得到了信号的频域表示。
可以通过绘制频谱图来直观地观察信号的频率成分。
频谱图通常以频率为横轴,幅度为纵轴。
通过观察频谱图,我们可以分析信号中存在的频率成分及其强度。
3.6 结果验证为了验证FFT算法的有效性,我们可以选择一些已知频率的信号作为测试样本。
通过对测试样本进行FFT分析,并与已知频率进行比较,可以评估FFT算法的准确性。
4. 结果与讨论通过实验,我们成功使用FFT算法对音频信号进行了谱分析。
通过观察频谱图,我们可以清楚地看到信号中存在的频率成分。
在结果验证部分,我们与已知频率进行了比较,结果表明FFT算法具有较高的准确性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
快速傅里叶变换实验报告班级:姓名:学号:快速傅里叶变换一.实验目的1.在理论学习的基础上,通过本实验加深对快速傅立叶变换的理解;2.熟悉并掌握按时间抽取FFT 算法的程序;3.了解应用FFT 进行信号频谱分析过程中可能出现的问题,例如混淆、泄漏、栅栏效应等,以便在实际中正确应用FFT 。
二.实验内容1.仔细分析教材第六章‘时间抽取法FFT ’的算法结构,编制出相应的用FFT 进行信号分析的C 语言(或MATLAB 语言)程序;2.用FFT 程序分析正弦信号()sin(2)[()(*)],(0)1y t f t u t u t N T t u π=---∞<<+∞=设分别在以下情况进行分析并讨论所得的结果:a ) 信号频率f =50Hz ,采样点数N=32,采样间隔T=0.000625sb ) 信号频率f =50Hz ,采样点数N=32,采样间隔T=0.005sc ) 信号频率f =50Hz ,采样点数N=32,采样间隔T=0.0046875sd ) 信号频率f =50Hz ,采样点数N=32,采样间隔T=0.004se ) 信号频率f =50Hz ,采样点数N=64,采样间隔T=0.000625sf ) 信号频率f =250Hz ,采样点数N=32,采样间隔T=0.005sg ) 将c ) 信号后补32个0,做64点FFT三.实验要求1.记录下实验内容中各种情况下的X (k)值,做出频谱图并深入讨论结果,说明参数的变化对信号频谱产生哪些影响。
频谱只做模特性,模的最大值=1,全部归一化;2.打印出用C 语言(或MATLAB 语言)编写的FFT 源程序,并且在每一小段处加上详细的注释说明;3.用C 语言(或MATLAB 语言)编写FFT 程序时,要求采用人机界面形式:N , T , f 变量均由键盘输入,补零或不补零要求设置一开关来选择。
四.实验分析对于本实验进行快速傅里叶变换,依次需要对信号进行采样,补零(要求补零时),码位倒置,蝶形运算,归一化处理并作图。
此外,本实验要求采用人机界面形式,N,T,F 变量由键盘输入,补零或不补零设置一开关来选择。
1.采样本实验进行FFT 运算,给出的是正弦信号,需要先对信号进行采样,得到有限长序列()n x , N n ......2,1,0= Matlab 实现:t=0:T:T*(N-1); x=sin(2*pi*f*t); 2.补零根据实验要求确定补零与否,可以用if 语句做判断,若为1,再输入补零个数, 并将补的零放到采样得到的序列的后面组成新的序列,此时新的序列的元素个数等于原采样点个数加上补零个数,并将新的序列个数赋值给N 。
Matlab 实现:a=input('是否增加零点? 是请输入1 否请输入0\n');if (a)ZeroNum=input('请输入增加零点的个数:\n'); elseZeroNum=0; endif (a)x=[x zeros(1, ZeroNum)];%%指令zeros(a,b)生成a 行b 列全0矩阵,在单行矩阵x 后补充0 endN=N+ZeroNum;3.码位倒置本实验做FFT 变换的级数为M ,N M 2log =做序列数对应的二进制数的码位倒置,dec2bin ()函数将十进制数转换为二进制数,fliplr ()将二进制数进行码位倒置 ,bin2dec ()将二进制数转换为十进制数,并将按码位倒置得到的序列赋值为()n A ,N n ......2,1,0= Matlab 实现:M=log2(N); %% M 位二进制数 for t=1:1:Ns=dec2bin(t-1,M); %%将十进制数转换为二进制数,M 表示二进制码位数的上限s=fliplr(s); %%将二进制数进行码位倒置 s=bin2dec(s); %%将二进制数转换为十进制数 b=s+1; %%二进制数从0开始,而矩阵中元素序数从1开始,故需+1 A(b)=x(t); end4.蝶形运算用三层for 循环来实现:1.实现FFT 每一级运算,共M 级,此处for 循环用来控制级数;2.实现分组,此处for 循环用来控制旋转因子;3.实现每一组中FFT 运算,此处for 循环用来控制进行蝶形运算的两点之间的距离。
最终得到的()k A 即为FFT 变换的结果。
Matlab 实现:for L=1:1:Mfor J=0:1:(2^(L-1)-1) for k=(J+1):2^L:NT=A(k)+A(k+2^(L-1))*exp((-i*2*pi*J*2^(M-L))/N);A(k+2^(L-1))=A(k)-A(k+2^(L-1))*exp((-i*2*pi*J*2^(M-L))/N); A(k)=T; end endend %%A(k)即为FFT 变换结果5.归一化处理及作图实验要求对FFT 运算结果进行归一化处理,对FFT 运算结果序列()k A 均取绝对值得序列()k B ,并取出绝对值中最大值m ,序列()k B 中所有元素均除以m ,即得到归一化处理后的序列。
用stem 函数即可实现作图。
Matlab 实现:%%归一化处理B=abs(A);%%将矩阵A 中元素均取绝对值,得矩阵B m=max(B);%%取矩阵B 中的最大值X=B/m; %%A(k)的幅值归一化处理之后的结果%%作图for i=1:1:Nstem(i-1,X(i));%%stem(A,B)表示以矩阵A中元素为纵坐标,B中元素为横坐标(一一对应)作图hold on%%采样时间点值与元素序数相差1,故endaxis([0 N 0 1]);%%axis限定横,纵坐标范围五.实验结果及分析本实验时域上加时窗,对应于频域上与sinc函数做卷积,当采样为整数倍周期时,时窗对频谱图无影响,当采样是非整数个周期时,时窗对频谱图影响较大。
f对应数字域的 2。
采样频率sa) 信号频率f=50Hz,采样点数N=32,采样间隔T=0.000625s(2)频谱图如下:(3)分析:b) 信号频率f=50Hz,采样点数N=32,采样间隔T=0.005s(3)分析:c) 信号频率f=50Hz,采样点数N=32,采样间隔T=0.0046875s(2)频谱图如下:(3)分析:对于本题,若采样个数改为64N,不补零,则有15个完整周期,调用程序可验证仍有2根谱线,如下图:d) 信号频率f=50Hz,采样点数N=32,采样间隔T=0.004s(2)频谱图如下:(3)分析:e) 信号频率f=50Hz,采样点数N=64,采样间隔T=0.000625s(2)频谱图如下:(3)分析:f) 信号频率f=250Hz,采样点数N=32,采样间隔T=0.005s(2)频谱图如下:(3)分析:g) 将c)信号后补32个0,做64点FFT(2)频谱图如下表:(3)分析:六.实验源程序clcclearf=input('请输入信号频率: f\n');N=input('请输入采样点数: N\n');T=input('请输入采样间隔: T\n');a=input('是否增加零点? 是请输入1 否请输入0\n');%%采样,采N个点t=0:T:T*(N-1);x=sin(2*pi*f*t);if(a)ZeroNum=input('请输入增加零点的个数:\n'); elseZeroNum=0;end%%补0处理:在采样点组成的单行矩阵后补充ZeroNum个0,组成新的矩阵if (a)x=[x zeros(1, ZeroNum)];%%指令zeros(a,b)生成a行b列全0矩阵,在单行矩阵x后补充0endN=N+ZeroNum;%%码位倒置M=log2(N); %% M位二进制数for t=1:1:Ns=dec2bin(t-1,M); %%将十进制数转换为二进制数,M表示二进制码位数的上限s=fliplr(s); %%将二进制数进行码位倒置s=bin2dec(s); %%将二进制数转换为十进制数b=s+1; %%二进制数从0开始,而矩阵中元素序数从1开始,故需+1 A(b)=x(t);end%%蝶形运算%%三层for循环%%1.实现fft每一级运算,共M级(控制级数)%%2.控制旋转因子%%3.实现每一组中fft运算,运算次数与分组有关 (控制进行蝶形运算两点之间的距离) for L=1:1:Mfor J=0:1:(2^(L-1)-1)for k=(J+1):2^L:NT=A(k)+A(k+2^(L-1))*exp((-i*2*pi*J*2^(M-L))/N);A(k+2^(L-1))=A(k)-A(k+2^(L-1))*exp((-i*2*pi*J*2^(M-L))/N);A(k)=T;endendend%%A(k)即为FFT变换结果%%归一化处理B=abs(A);%%将矩阵A中元素均取绝对值,得矩阵B m=max(B);%%取矩阵B中的最大值X=B/m; %%A(k)的幅值归一化处理之后的结果%%作图for i=1:1:Nstem(i-1,X(i));%%stem(A,B)表示以矩阵A中元素为纵坐标,B中元素为横坐标(一一对应)作图hold on%%采样时间点值与元素序数相差1,故endaxis([0 N 0 1]);%%axis限定横,纵坐标范围七.实验总结通过本次快速傅里叶变换实验,使我对FFT运算有了更深入的了解,让我认识到课堂上的学习仅限于理论知识的学习,而在工程实践中则会面临各种各样的问题,通过编程实现FFT运算,更是对我们编程能力的考验。
从本实验中学习到,对正弦信号进行采样,对于采得样本为整数倍周期时,频谱图仍为正弦信号的频谱,有2根谱线,而对于非整数倍周期的,频谱图会发生泄漏,实际上是不能做FFT的。
此外,本实验要求我们不仅能通过Matlab实现FFT运算,做出实验结果,更重要的是能对实验结果进行分析,作出合理的解释,从而对理论知识有更深入的理解。
在此,还要感谢各位老师的热心帮助,老师答疑解惑,认真耐心地讲解,帮助我们完成实验,让我们学习到更多的知识,感谢师恩。