"西南交通大学DSP原理与应用实验二:FFT实验" 一、实验目的: 1. 掌握 FFT 的算法基本原理和 C 语言的编程方法。 2. 掌握采样速率、FFT 点数与频谱分析之间的关系。 3. 掌握DSP中FFT的设计和编程思想。 二、实验设备: 计算机、实验箱 三、实验原理: 1. 本实验结合之前的 ADC 实验,将信号源输出的信号先进行 AD 转换,然后再进行 FFT。 2. 离散傅立叶变换(DFT)的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称 DFT。 3. FFT 是 DFT 的一种快速算法,将 DFT 的 N2 次运算量减少为 2^((log2N)/2) 次,极大的提高了运算的速度。 4. 2^((log2N)/2)Wep- =,称为蝶形因子式旋转因子。 5. FFT 算法:对于旋转因子来说,有如下的对称性和周期性: 对称性:W = -W 周期性:W = W + N FFT 算法就是利用了旋转因子的对称性和周期性来减少运算量的。 FFT 算法将长序列的 DFT 分解为短序列的 DFT。N 点的 DFT 先分解为两个 N/2 点的 DFT,每个 N/2 点的 DFT 又分解为两个 N/4 点的 DFT 等等,最小变换的点数即基数,基数为 2 的 FFT 算法的最小变换是 2 点 DFT。 一般而言,FFT 算法分为时间抽选(DIT)FFT 和频率抽选(DIF)FFT 两大类。时间抽取 FFT 算法的特点是每一级处理都是在时域里把输入序列依次按奇/偶一分为二分解成较短的序列;频率抽取 FFT 算法的特点是在频域里把序列依次按奇/偶一分为二分解成较短的序列来计算。 DIT 和 DIF 两种 FFT 算法的区别是旋转因子 WN 出现的位置不同,DIT FFT 中旋转因子 WN 在输入端,DIF FFT 中旋转因子 WN 在输出端,除此之外,两种算法是一样的。在本设计中实现的是基 2 的时间抽取 FFT 算法。 四、实验内容: 基于给出代码进行参数调整,从而进行实验: #include "math.h" #define Sample_Numb 256 // FFT 点数 #define S1_Freq 60 //信号 1 频率 #define S2_Freq 180 // 信号 2 频率 #define SampleFreq 800 //采样率 #define pi 3.1415926 int SignalInput[Sample_Numb];//输入信号,S=S1+S2 float FFT_Re[Sample_Numb];// FFT 实部 float FFT_Im[Sample_Numb];//FFT 虚部 float FFT_W[Sample_Numb]; //功率谱 float sin_tab[Sample_Numb]; float cos_tab[Sample_Numb]; void init_fft_tab(); void input_data(); void fft(float datar[Sample_Numb],float datai[Sample_Numb]); void init_fft_tab(void) //输入波形的初始化 { float wt1; float wt2; int i; for (i=0;i<Sample_Numb;i++) { wt1=2*pi*i*S1_Freq; wt1=wt1/SampleFreq; wt2=2*pi*i*S2_Freq; wt2=wt2/SampleFreq; SignalInput[i]=(cos(wt1)+cos(wt2))/2*100; } } 本实验中,我们将学习如何使用 FFT 算法来进行信号分析,并掌握采样速率、FFT 点数与频谱分析之间的关系。通过本实验,我们将了解到 FFT 算法的基本原理和编程方法,从而提高对 DSP 中 FFT 的设计和编程思想。
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/release/download_crawler_static/88762030/bg1.jpg)
![](https://csdnimg.cn/release/download_crawler_static/88762030/bg2.jpg)
![](https://csdnimg.cn/release/download_crawler_static/88762030/bg3.jpg)
剩余14页未读,继续阅读
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 27
- 资源: 51
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- elasticsearch数据库下载、配置、使用案例
- springboot的概要介绍与分析
- C语言的概要介绍与分析
- 第一个较大的Android项目,基于Android平台的图书管理系统(Android studio).zip
- Cisco Packet Tracer 6.2 for Windows Instructor Version
- 使⽤pyIAST计算⽓体吸附选择性
- tmp_b056727e59b8123365486983f32baa9732607ec3c6137b12.pdf
- C代码实现文件的拆分和合并,本质上就是文件的读写操作.zip
- TVMP3player.apk.1
- 出马出马出马出马出马出马出马
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)