机械工程论文

您当前的位置:学术堂 > 工程论文 > 机械工程论文 >

基于FPGA的数字信号处理算法实现

来源:信息与电脑 作者:梁帅
发布于:2018-09-17 共3133字

  摘   要:  数字信号处理技术的应用必须依赖于一定的算法, 并且在复杂应用场合中往往会采用较复杂的算法, 这对数字信号处理芯片的性能和资源提出了越来越高的要求。笔者首先介绍了数字信息处理的基本理论, FPGA的基本原理、技术特点及应用思路, 并以数字信号处理领域中广泛应用的FFT算法为例, 对FPGA在数字信号处理中的应用进行了详细的分析, 为相关领域的研究提供有价值的参考。

  关键词:  DSP; FPGA; VHDL; FFT;
 

基于FPGA的数字信号处理算法实现
 

  Abstract:  The application of digital signal processing technology must rely on a certain algorithm, and in complex applications often use more complex algorithms, which put higher and higher requirements on the performance and resources of digital signal processing chips. The author first introduces the basic theory of digital information processing, the basic principle, technical features and application ideas of FPGA, and takes the FFT algorithm widely used in the digital signal processing field as an example, and analyzes the application of FPGA in the digital signal processing in detail, and provides valuable reference for the research of the related domain.

  Keyword:  DSP; FPGA; VHDL; FFT;

  1、 前言

  数字信号处理是20世纪60年发展起来的, 在信息技术的发展背景下迅速成为了一门新兴的学科。到目前为止, 各类系统对数字信号处理的要求越来越高, 传统的通用DSP芯片逐渐不能满足应用需求。在这样的背景下, FPGA芯片在市场的驱动下得到了迅速的发展, 并迅速占领了数字信号处理领域的大部分市场。

  2、 基于VHDL语言的数字集成系统

  VHDL语言的日趋成熟, 使得数字集成电子系统朝着更高层次的方向发展, VHDL不但可以描述整个电子系统, 也可以详细设计某一个模块, 还能将不同的模块通过编程语言集成在一起。从层次上看, 数字系统设计可以分为系统级、算法级、寄存器变换级、逻辑门级、电路级和物理级, 为VHDL的应用提供了全方位多层次的应用空间[1]。

  2.1、 自顶向下的设计方法

  自底向上的设计方法曾经在电子系统设计中占据了主导地位, 但随着电路的复杂化, 这种设计方法已不适用于越来越庞大的多层次系统设计。于是自顶向下的设计思想逐步发展起来。以FPGA为代表的可维和逻辑器件就是这种设计方法的核心硬件基础, 为自顶向下的设计提供了可能。自顶向下的设计思想要求设计者首先完成对系统的整体功能描述, 给出系统功能方框图和总体结构, 然后即可从方框图一级开始进行仿真和验证, 通过VHDL实现各层次的功能描述, 再通过开发得到网络表。显然, 自顶向下的设计方法需要从高层开始仿真, 这对于提前发现系统的重大缺陷是有极大好处的, 大大降低了设计人员的劳动强度, 提高了设计的一次成功率, 这是电子系统设计方法的一次革命性进步[2]。

  2.2、 数字系统的高层次综合

  在数字系统的设计中, 高层次综合一般是寄存器传输级以及行为级综合方法。采用第一种综合方法设计数字系统时, 开发人员必须通过高级语言准确描述算法, 再由硬件开发人员将其转化为硬件描述语言, 从而完成了行为级硬件描述, 在此基础上, 继续向寄存器传输级进行转化, 即可完成寄存器传输级的高层次综合。但是, 这种综合方法也存在着速度慢、描述灵活性差、性能与算法兼容性差等缺点;行为综合需要借助于EDA等现代化电子设计工具, 从系统行为的角度进行设计, 从而得到寄存器传输级描述。行为综合方法的优势在于可以采用先进的综合工具来解放开发人员的双手, 实现对行为级代码的自动化设计。

  3、 基于FPGA的数字信号处理算法实现

  3.1、 数字信号处理系统的结构

  数字信号处理具有数据量大、数据结构固定、运算过程复杂等特点, 因此, 往往采用单指令多数据流的计算模式, 使用相同的程序代码反复对大量的数据进行运算。数字信号处理系统最突出的特征是实时性强, 能够同时接收与计算数据, 整个过程流水化执行。不同的算法复杂度和输入数据量, 对DSP芯片的性能要求是截然不同的。从数据流控制的角度来看, 实现高速实时信号处理主要有流水、处理、并行处理、阵列结构和RISC结构四种方案。硬件的选型上, 则主要依据高速器件、专用芯片、超并行阵列、可编程器件及其他先进的EDA技术。因此, 现代信号处理系统的重要发展方向是高速运算、实时处理、吞吐量大, 而FPGA的出现正是为了满足这些需求而诞生的, 因而被广泛应用于数字信号处理领域。

  3.2、 基于FPGA的FFT算法实现

  到目前为止, 已有许多实用技术可以处理数字信号, 并且在不同的领域都有一定的应用市场。但是从性能上看, 单片机和DSP等信号处理单元虽然广泛应用于数字信号处理, 但其速度与快速AJD等芯片相比仍有较大差距。在绝大多数应用领域中, 处理速度都是系统最重要的性能, 这对于通用DSP芯片而言是很难实现的。因此, 最优的解决方案是采用可编程逻辑器件进行算法编程, 在硬件阵列的基础上采用并行处理技术实现数字信号的快速实时处理。

  考虑到傅里叶变换在数字信号处理中具有核心地位, 为了阐明FPGA在高速实时数字信号处理方面的应用, 本文以快速傅里叶变换FFT算法为例, 对其实现原理和基本思路进行详细分析。

  采用FPGA实现FFT算法的关键技术要点在于蝶形处理单元的设计, 本文仅针对常规的基2FFT算法进行设计, 硬件平台为Altera公司FLEXl OK仿真器件。该器件的结构体系设计非常适用于高速实时的数字信号处理, 具有很高的性能, 这主要得益于其内部集成的强大内核、带宽及高速I/O等硬件资源。该FPGA芯片内部可以实现超快速的乘法运算, 这正是FFT算法所需要的性能。在实现过程中, 可以通过VHDL编程调用高速DSP乘法运算单元, 构成蝶形运算结构, 再把多个这样的蝶形单元共同组成FFT运算级, 反复迭代就完成FFT算法的并行化计算。算法性能可以通过MAXPLUSII软件进行分析, 通过相应的逻辑分析和波形分析得到算法的各项性能参数。

  3.3、 FFT处理器的实现

  根据傅立叶变换的基本原理, 可以分为基2、基4、基8等, 基数越大, 占用系统资源越多, 但速度也会越快。通常情况下都选择采用基2进行分解, 以实现资源与处理速度的合理分配。

  在该算法中, 运算模块可以采用基2/4/8/16的分解形式, 也可能采用不同分解之间的组合, 由于计算过程中需要使用到大量的旋转因子, 因此, 必须设置相应的ROM存储器进行缓存。算法执行过程中的所有控制信号均由控制模块提供, 存储器1是待计算数据的缓冲器, 而存储器2则用于中间结果的暂存。在控制器的协调下, 各种地址信号、使能信号、中间数据有序工作, 最后输出计算结果及其对应指示标志。进一步说, 外部数据源源不断地注入存储器1中, 当收到启动信号后, 控制模块发出运算指令, 调动各硬件单元开始处理数据。控制模块根据数据量在存储器1中读出N点原始数据, 同时, 查询出ROM中的相应旋转因子, 然后一起输入运算模块进行蝶形运算, 并把中间计算结果暂存在存储器2中, 当接收到下一个启动信号后, 将计算结果输出, 即完成了一次FFT运算。反复执行该算法流程, 即可实现高速实时的FFT计算。

  4、 结语

  随着电子技术的进步, 电子芯片的集成度越来越高, FPGA的性能也在不断地进步, 功耗进一步下降、体积更轻、开发周期不断缩短、用户使用更加灵活, 还能实现反复编程, 提高了利用率。FPGA比普通DSP芯片具有更强的灵活性, 性能也更好, 在很多应用场合已完全替代了通用DSP芯片。随着可编程器件生产技术的进一步提高, 采用FPGA实现各种复杂的算法将成为可能。在未来的几十年内, FPGA在数字信号处理领域将有更广阔的应用前景。

  参考文献:

  [1]王韩, 孙红胜, 陈昌明.基于TS201与FPGA的数字信号处理系统设计[J].现代电子技术, 2016 (5) :78-80.
  [2]彭宇, 姜红兰, 杨智明, 等.基于DSP和FPGA的通用数字信号处理系统设计[J].国外电子测量技术, 2013, 32 (1) :17-21.

原文出处:[1]梁帅.FPGA在数字信号处理中的应用[J].信息与电脑(理论版),2018(15):167-168.
相关内容推荐
相关标签:数字信号处理论文dsp论文
返回:机械工程论文