数字信号处理

在四个基本运算中,除法运算最为复杂。这里,我们从传统的手工计算除法的方式说起。以两个无符号数相除为例,5621/3,如图3.42所示,图中5621为被除数(Dividend),3为除数(Divisor),最终的商(Quotient)为1873,余数(Remainder)为2。计算的第一步是获得商的最高位1,同时用被除数的最高位5减去3,如该图左半部分所示。事实上,这里的3表示的数值为3000,得到部分余数2621。同样地,第二步得到的部分余数为221。将部分余数的真实值还原如该图的右半部分所示,图中 表示部分余数。

图3.42  手工计算除法

图3.42 手工计算除法

采用高级语言如C、C++、Matlab对系统建模是ESL设计理念的特征之一,将其称之为高层次综合。高层次综合跨越硬件领域和软件领域。对硬件工程师而言,它可以使硬件工程师工作在有别于传统RTL的抽象度更高的C语言层面上,加速算法开发;对软件工程师而言,它可以使软件工程师将计算密集型算法采用有别于传统CPU处理器的FPGA上实现。高层次综合可以使工程师在C语言层面上同时进行算法开发和算法验证。

Xilinx提供了另一工具Vivado HLS(Vivado High Level Synthesis),用于将C/C++/SystemC函数转换为HDL代码。其输入为待综合的C文件、C测试文件和综合指令,其中综合指令可在图形界面下设置,目的是指导Vivado HLS对特定对象如数组、for循环等如何处理,例如将数组映射为双端口RAM还是FIFO,将for循环展开还是折叠。其输出为经验证的RTL代码和HDL测试文件。其中HDL测试文件用于C/RTL协同仿真。这里C测试文件是必需的,一方面用于验证C算法功能是否正确;另一方面用于生成HDL测试文件以进行C/RTL的协同仿真。Vivado HLS文件构成如图2.15所示。

本书围绕Xilinx新一代28nm工艺芯片7系列FPGA,结合Xilinx新一代开发工具Vivado以及针对算法开发的Vivado HLS和System Generator,讲解了数字信号处理中的经典算法在FPGA上的实现方法。第2版保持了第1版的主题――如何将理论算法转化为工程实现,新增了算法的Matlab代码描述;增加了部分算法的System Generator模型。 讲解了FPGA实现时的一些细节问题如复位、跨时钟域设计等。以下是部分节选章节:

信号去直流方法

利用FPGA进行数字信号处理时,信号中的直流分量通常需要去除,而直流分量在AD前段就存在,如果采用模拟电路去除直流分量比较复杂,因此通常在AD后端数字域去除直流分量。在FPGA中,常规去直流的方法是先对信号进行累加,然后对累加值进行移位即可得到直流分量,如累加8192个数据,则直流分量可由累加值右移13位得到。

本文介绍一种根据Xilinx FPGA中DSP48E1资源设计的去直流模块,其基本原理采用一阶滤波器,如图1所示,通过一个一阶RC电路,在V0端可等效一个低通滤波器,得到直流分量。

图1

图1

全数字跟踪接收机的设计与实现

摘要:随着软件无线电在中频领域的广泛应用,采用数字信号处理技术设计了基于FPGA全数字中频跟踪接收机并应用于遥感卫星天线接收系统中。给出了详细的理论说明和体统组成。该接收机结构简单,成本低,调试方便。在测试和实际应用中,该跟踪接收机输入信号的动态范围大,AGC和误差电压精度等指标较模拟接收机都有显著的提高。

随着软件无线电技术和全数字接收机技术的迅速发展,以及现场可编程门阵列FPGA规模的不断壮大,用FPGA实现中频数字跟踪接收机已经成为必然的趋势。本文设计的中频跟踪接收机中包括了A/D变换,数字正交混频以及数字滤波等模块。主要的功能模块分为中频接收模块和误差信号提取模块。

500MHz高性能数字信号处理设计

500MHz高性能数字信号处理设计

基于FPGA的雷达数字信号处理机设计

本文采用脉冲多普勒、数字波束形成等技术,为某型雷达导引头信号项目设计了其关键部分——雷达数字信号处理机。本处理器采用FP GA平台实现,文中详细介绍了该处理器基于FPGA的基频信号产生模块、回波信号采集模块、控制信号产生模块和时钟模块等硬件模块的设计思路。

基于DSP+FPGA技术的视频图像采集系统的设计

实现对视频数据快速准确的采集,提出了一种以DSP+FPGA为基础的数字信号处理方法。由DSP构成的数字信号处理系统以数字信号处理为基础,FPGA作为主要的控制单元,具有与其他以现代数字技术为基础的设备接口方便、数字部件易于高度集成、系统精度高的优点,使其得到广泛的应用。文章在介绍了系统组成及基本原理的基础上,详细讨论了采集部分的结构和FPGA的控制逻辑、DSP中断取数功能的实现。这种设计具有功能集成、实现简单、修改方便等优点,能得到满意的图像结果。

文章介绍一种Xilinx ISE结合MATLAB对数字系统进行联合设计与仿真的方法,这种方法通过MATLAB来完成数字系统的原理方案仿真、分模块设计仿真和系统参数获取;在Xilinx ISE FPGA设计软件中编写VHDL语言程序来实现具体设计;在ModelSim波形仿真软件中进行波形仿真;通过比较Xilinx ISE与MATLAB的仿真结果差异来实现硬件模块的功能验证、模块内参数的调整和系统功能的直观验证;最后以某一设计实例介绍了该方法的具体应用。

1 数字信号处理FPGA设计实现和验证中存在的问题和解决方法
用FPGA来实现信号处理的算法有可能碰到以下一种或几种情况:
a. 实现复杂的数字处理功能,例如实现DFT、数字滤波等通信信号处理算法;
b. 模块多且功能验证十分繁琐;
c. 数字系统尚包含某些不确定因素,例如环路参数等;
d. 数字系统包含范围较大的反馈环节。

同步内容