第8章 FFT设计 8.1 FFT的原理 8.2 FFT与蝶形运算 8.3 使用DSP Builder设计FFT

Slides:



Advertisements
Similar presentations
2016/8/3 海佃國小四年級生理衛教簡報 健康中心 2016/8/3 吾家有女〈男〉初長成.
Advertisements

Final Review Chapter 1 Discrete-time signal and system 1. 模拟信号数字化过程的原理框图 使用 ADC 变换器对连续信号进行采样的过程 使用 ADC 变换器对连续信号进行采样的过程 x(t) Analog.
阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
2016 年温州市小学六年级教育质量 综合测评瑞安市考务培训 瑞安市教师发展中心
什么是SOPC: SOPC是英文System On a Programmable Chip的缩写,称为片上可编程系统。SOPC将传统的EDA技术、计算机系统、嵌入式系统、数字信号处理等融为一体,综合了各自的优势,且在结构上形成一块芯片。 为什么用SOPC:SOPC是现代电子技术和电子系统设计的发展趋势,建立了电子系统设计的新模式。用户利用SOPC开发平台,自行设计高速、高性能的DSP处理器、特定功能的CPU及其外围接口电路,创建结构最为简洁的电子系统。
信号与系统 第三章 傅里叶变换 东北大学 2017/2/27.
第五章 二次型. 第五章 二次型 知识点1---二次型及其矩阵表示 二次型的基本概念 1. 线性变换与合同矩阵 2.
第十章 图像的频域变换.
102年10月17日 臺北市公共運輸處 報告人:陳榮明處長
讲座: 快速离散傅立叶变换 本讲的教学内容 改进DFT计算的方法 按时间抽取的FFT算法(DIT FFT)
第2章 时域离散信号和系统的频域分析 教学内容包括: 序列的傅立叶变换定义及性质 Z变换的定义与收敛域 利用z变换分析信号和系统的频域特性.
第一章 绪论.
《 E D A 技 术》 课 程 教 学 讲授:伍宗富 湖南文理学院电气与信息工程学院 2017年3月22日星期三.
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
第7章 离散信号的频域分析 离散Fourier级数 离散Fourier变换 第3章 连续信号的频域分析 连续Fourier级数
电 子 信 息 工 程 系 热 烈 欢 迎 来自全国各地的新同学!.
第三章 DFT 离散傅里叶变换.
在PHP和MYSQL中实现完美的中文显示
運動對三高的重要性 運動處方的設計 陳世銘 物理治療師.
Applications of Digital Signal Processing
信号与系统基础 (二) 王烁
第2章 Z变换 Z变换的定义与收敛域 Z反变换 系统的稳定性和H(z) 系统函数.
第9章 DDS设计 9.1 DDS的基本原理 9.2 DDS的模块设计 9.3 FSK调制器设计.
第3章 DSP Builder设计入门 3.1 DSP Builder及其设计流程 3.2 DSP Builder设计向导
浅谈基于FPGA的电路设计 报告人:吴爱平 2005/11/13
EDA技术实用教程 第1章 概 述.
Fast Fourier Transforms
定点数字信号处理器(DSP) 技术与应用 16位定点DSP—ADSP218X/219X.
無線通訊系統模擬 姓名:顏得洋 學號:B
走进编程 程序的顺序结构(二).
Chapter 2 Basic Elements of Fortran
第14章 其它DSP设计库 14.1 总线控制库 14.2 复数信号库 14.3 Gates库 14.4 状态机函数库
中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
Biomedical signal processing
Chapter 3 Discrete Fourier-Transform (Part Ⅰ)
数据挖掘工具性能比较.
第6章 FIR数字滤波器设计 6.1 FIR数字滤波器原理 6.2 使用DSP Builder设计FIR数字滤波器
使用矩阵表示 最小生成树算法.
第七讲 快速傅里叶变换 (FFT) Q&A 办公室: 手 机:
引言 1.DFT是信号分析与处理中的一种重要变换。 年,Cooley, Tukey《机器计算傅里叶级数的一种算法》
第三章 付里叶分析 离散付氏级数的数学解释(The Mathematical Explanation of DFS)
第四章习题.
第1章 概述 1.1 DSP实现方案及设计流程 1.2 现代DSP设计流程概述 1.3 两类DSP解决方案的比较.
Three stability circuits analysis with TINA-TI
第四节 基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF) (Sander-Tukey)
连加、乘加、乘减和整数乘法运算定律推广到小数
信号处理原理 F F T 实 验 张哲 沈阳广播电视大学.
Lightweight Data-flow Analysis for Execution-driven Constraint Solving
2019/5/2 实验一 离散傅立叶变换的性质及应用 实验报告上传到“作业提交”。 08:20:28.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
2019/5/4 实验三 离散傅立叶变换的性质及应用 06:11:49.
第4章 快速傅立叶变换 问题的提出 解决问题的思路与方法 基2时间抽取FFT算法 基2时间抽取FFT算法的计算复杂度
第四章 QuartusII软件的应用 本章重点: 本章难点: EDA技术 QuartusII的设计输入 QuartusII软件的综合与编译
3.16 枚举算法及其程序实现 ——数组的作用.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
HSC高速输出例程 HORNER APG.
6×3= 6×30= 60×30= 14×2= 14×20= 140×2= 25×2= 25×20= 250×20= 算一算 18 28
2.2矩阵的代数运算.
2019/5/21 实验一 离散傅立叶变换的性质及应用 实验报告上传到“作业提交”。 11:21:44.
§2 方阵的特征值与特征向量.
本講義為使用「訊號與系統,王小川編寫,全華圖書公司出版」之輔助教材
基于列存储的RDF数据管理 朱敏
第四章 快速傅里叶变换 §4-1 引言 频域分析:一种有效的工具 DFT: △ 问题:.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
<编程达人入门课程> 本节内容 有符号数与无符号数 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
FPGA系统设计与实践 本章小结(第5章).
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
Presentation transcript:

第8章 FFT设计 8.1 FFT的原理 8.2 FFT与蝶形运算 8.3 使用DSP Builder设计FFT 8.4 在DSP Builder中使用FFT IP Core

8.1 FFT的原理 8.1.1 快速傅立叶变换FFT 对于一个N点有限长序列,其DFT变换可表示为 其中:k=0,1,…,N-1;

假如、都为复数,计算N点序列的DFT共需要次复数乘法和次复数加法,在N较大时,计算量不可想象。 可以发现, 存在下列对称性和周期性: 其中 是 的共轭。

利用上述对称性和周期性,可以大大简化DFT的运算。同时,可以把较多点的DFT分解为多个较少点的DFT运算。由于DFT的运算量与成正比,减少DFT的点数可以大大减少DFT的总运算量。不断地继续分解得到的DFT,可以加快DFT的运算过程,这种DFT的快速计算方法,我们称为FFT。若分解是对输入序列进行处理,称为时间抽取DIT(Decimation In Time);反之,若分解是对输出序列进行处理,则称为频率抽取FIT(Decimation In Frequency)。

用DIT方法,N点的DFT可以用下式计算: 其中k=0,1,2,…,(N/2)-1。 可用图8-1来描述其运算的信号流图。由于该运算 状似蝶形,故被称为蝶形运算。

图8-1 DIT蝶形运算信号流图

对于,可以一直分解到2点DFT。这样,离散傅立叶变换的运算量就大大减少了,这种DFT的快速算法就是FFT。 图8-2显示了当N=8时DIT FFT的信号流图。

图8-2 N=8时FFT算法的信号流图

8.1.2 快速傅立叶反变换IFFT DFT是时域到频域的变换,同样也存在频域到时域的变换,即DFT的逆变换IDFT。对于频域上的抽样序列,其IDFT变换可表示为 其中: ;n=0,1,…,N-1。 可以看到IDFT的运算可由DFT运算得到。 对应与IDFT,也存在快速算法IFFT,这是由FFT来实现的。

8.2 FFT与蝶形运算 仔细观察图8-2可以发现,对于N是2的幂次的FFT运算有大量的形如图8-3的运算,即FFT由蝶形运算构成,实现了蝶形运算,FFT就可以实现了。 图8-3 蝶形运算

由于蝶形运算涉及复数运算,较为复杂,DSP Builder为能实现FFT模型的建构,专门引入了蝶形算子模块Butterfly,如图8-4。

Butterfly模块可以完成复数有符号数的蝶形运算。对于输入信号(复数) a=x+jX b=y+jY 蝶形运算系数: 蝶形运算:

8.3 使用DSP Builder设计FFT 由于FFT的算法过于复杂,在以往的数字信号处理器上实现一个高速信号的FFT变换是不可想象的。数字信号处理器固有的串行(顺序)执行结构,对一个高速(与该处理器的主频相当)的信号序列进行FFT,是很难实现的。然而,在FPGA上实现时,可以采用并行分布式结构,实现一个实时FFT的难度就比较小了。

8.3.1 8点DIT FFT模型的建立 在本节将介绍如何实现一个N=8的时间抽取FFT模型。 按照第3章的流程,在Simulink中建立一个新模型。参照图8-2的结构,调用DSP Builder模块完成DIT8FFT模型的绘制。模型如图8-5所示。

图8-5 DIT8FFT模型

DIT8FFT模型中各个模块的参数设置如下: X模块:(Altbus) 库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Integer” 参数“[number of bits].[]”设为“8”   XR、XR1、XR2、XR3、XR4、XR5、XR6、XR7模块:(Altbus) 参数“[number of bits].[]”设为“16”

XI、XI1、XI2、XI3、XI4、XI5、XI6、XI7模块:(Altbus) 库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Integer” 参数“[number of bits].[]”设为“16”   Shift Taps模块:(Shift Taps) 库:Altera DSP Builder中Storage库 参数“Number of Taps”设为“8” 参数“Distance Between Taps”设为“1”

选择“Use Deicated Circuitry”   x0、x1、x2、x3、x4、x5、x6、x7模块:(Real=Imag to Complex) 库:Altera DSP Builder中Complex Signals库 参数“Bus Type”设为“Signed Integer” 参数“[number of bits].[]”设为“8”

Constant、Constant1、Constant2、Constant3、 Constant4、Constant5、Constant6、Constant7模块:(Constant) 库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Integer” 参数“[number of bits].[]”设为“8” 参数“Constant Value”设为“0” 参数“Sampling Period”设为“-1”

W0、W0_1、W0_2、W0_3模块:(Complex Constant) 库:Altera DSP Builder中Complex Signals库 参数“Bus Type”设为“signed Integer” 参数“[number of bits].[]”设为“8” 参数“[].[number of bits]”设为“0” 参数“Real Value”设为“127” 参数“Imaginary Value”设为“0”

butterfly000、butterfly001、butterfly002、butterfly003模块:(butterfly) 库:Altera DSP Builder中Complex Signals库 参数“Input bit width(a,b,W)”设为“8” 参数“Output bit width(A,B)”设为“16” 参数“Output lsb bit”设为“2”

W0_6、W2_5、W0_4、W2_7模块:(Complex Constant) 库:Altera DSP Builder中Complex Signals库 参数“Bus Type”设为“signed Integer” 参数“[number of bits].[]”设为“16” 参数“[].[number of bits]”设为“0” 对于W0_6、W2_5 参数“Real Value”设为“1” 参数“Imaginary Value”设为“0” z对于W0_4、W2_7

参数“Real Value”设为“0” 参数“Imaginary Value”设为“127”   butterfly010、butterfly020、butterfly030、butterfly040模块:(butterfly) 库:Altera DSP Builder中Complex Signals库 参数“Input bit width(a,b,W)”设为“16” 参数“Output bit width(A,B)”设为“16” 参数“Output lsb bit”设为“2”

W0_6、W2_5、W0_4、W2_7模块:(Complex Constant) 库:Altera DSP Builder中Complex Signals库 参数“Bus Type”设为“signed Integer” 参数“[number of bits].[]”设为“8” 参数“[].[number of bits]”设为“0” 对于W0_8 参数“Real Value”设为“127” 参数“Imaginary Value”设为“0” 对于W2_10

参数“Real Value”设为“0” 参数“Imaginary Value”设为“127” 对于W1_9、W3_11 参数“Real Value”设为“90” 参数“Imaginary Value”设为“90”   X0、X1、X2、X3、X4、X5、X6、X7模块:(Complex to Real-Imag) 库:Altera DSP Builder中Complex Signals库 参数“Bus Type”设为“Signed Integer” 参数“[number of bits].[]”设为“8”

在DIT8FFT模型中除了使用Butterfly模块进行蝶形运算外,还使用了有符号数到复数、复数到有符号数的转化,运算量是较大的。

8.3.2 8点DIT FFT模型的实现 通过SignalCompiler,把上面的FFT模型转换成VHDL,在Quartus II中进行编译下载。 图8-6显示了Synplify Pro的综合结果。

图8-6 综合结果(部分)

8.4 在DSP Builder中使用FFT IP Core 上面列举了一个8点FFT模型的例子。然而在实际应用中,8点的FFT是远远不够用的,往往需要N=512或者N=1024的情况。但是,若以以上的方法进行设计,8点FFT已经相当复杂了,再用DSP Builder模块来搭建N=1024的FFT是不可想象的,而且很难优化。 Altera提供了FFT IP Core帮助设计者绕过这个难题。 Altera的FFT IP Core称为FFT Compiler,也可以与DSP Builder完美地结合起来(见图8-7)。

图8-7 FFT Compiler模块

首先建立一个新的模型,调入FFT Compiler模块和SignalCompiler模块。双击FFT Compiler模块,进行FFT核的配置(见图8-8)。

图8-8 FFT核模块的配置

对于FFT Compiler而言,它同时支持FFT和FFT的反变换IFFT。在图8-8中,可以选择类型(Type)为FFT,然后选择相应的器件系列和输入序列数据位宽,选定FFT的点数。 点击“Next”,完成设置过程(如图8-9)。 然后,在DSP Builder中就可以像其它DSP模块一样使用FFT核了。

图8-9 完成FFT核设置