Xilinx FPGA数字信号处理权威指南—从HDL到模型和C的描述
来 源:未知
浏览次数: 发布时间:2015-07-03
内容简介
《XilinxFPGA数字信号处理权威指南:从HDL到模型和C的描述》全面系统地从硬件描述语言、MATLABSimlink模型和C语言三个方面,对XilinxFPGA数字信号处理的实现原理和方法进行了详细的说明。全书内容涵盖了数字信号处理的主要理论知识,其中包含通用数字信号处理、数字通信信号处理和数字图像处理等方面。全书分为五篇,共计16章。内容包括:信号处理理论基础、数字信号处理方法、数字的表示和运算的实现、CORDIC算法原理及实现、离散傅里叶变换原理及实现、快速傅里叶变换原理及实现、离散余弦变换原理及实现、FIR滤波器和IIR滤波器原理及实现、其他常用数字滤波器原理及实现、重定时信号流图原理及实现、通信信号处理原理及实现、数控振荡器原理及实现、信号同步原理及实现、数字图像处理原理及实现、动态视频拼接原理及实现、自适应信号处理原理及实现等内容。本书的设计环境使用了Xilinx最新的Vivado集成开发环境和Mathworks最新的MATLABR2013a集成开发环境。在本书编写的过程中,参考了大量最新的设计资料和业界设计标准。本书内容新颖、理论和应用并重,充分反映了XilinxFPGA实现数字信号处理的最新方法和技术,可以帮助读者系统地掌握这些方法和技术。
《XilinxFPGA数字信号处理权威指南:从HDL到模型和C的描述》可作为相关专业开设高性能数字信号处理课程的本科和研究生教学参考书,亦可作为从事FPGA数字信号处理相关教师、研究生和科技人员的自学参考书,同时还可作为Xilinx公司大学计划教师和学生培训用书。
目录
第一篇DSP系统的组成和处理方法
第1章信号处理理论
1.1信号定义及分类
1.2信号增益与衰减
1.3信号失真及测量
1.3.1放大器失真
1.3.2信号谐波失真
1.3.3谐波失真测量
1.4噪声及处理方法
1.4.1噪声的定义及表示
1.4.2固有噪声电平
1.4.3噪声/失真链
1.4.4信噪比定义及表示
1.4.5信号的提取方法
1.5模拟信号及处理方法
1.5.1模拟I/O信号的处理
1.5.2模拟通信信号处理
1.6数字信号处理关键问题
1.6.1数字信号处理系统结构
1.6.2信号调理方法
1.6.3模数转换器ADC及量化效应
1.6.4数模转换器DAC和信号重建
1.6.5SFDR的定义及测量
1.7通信信号软件处理方法
1.7.1软件无线电的定义
1.7.2IF的软件无线电实现
1.7.3信道化处理
1.7.4基站软件无线电接收机
1.7.5SR采样技术
1.7.6直接数字下变频
1.7.7带通采样失败的解决
第2章数字信号处理实现方法
2.1数字信号处理技术概念
2.1.1数字信号处理技术的发展
2.1.2数字信号处理算法的分类
2.1.3数字信号处理实现方法
2.2基于DSP的数字信号处理实现方法
2.2.1DSP的结构特点
2.2.2DSP的运行代码及性能
2.3基于FPGA的数字信号处理实现方法
2.3.1FPGA原理
2.3.2FPGA的逻辑资源
2.3.3FPGA的高性能处理
2.3.4FPGA的最新发展
第3章数字的表示和运算的实现
3.1整数的表示方法
3.1.1二进制原码格式
3.1.2二进制反码格式
3.1.3二进制补码格式
3.2整数值运算的HDL描述
3.2.1整数加法的HDL描述
3.2.2整数减法的HDL描述
3.2.3整数乘法的HDL描述
3.2.4整数除法的HDL描述
3.3定点数的表示方法
3.3.1定点二进制数格式
3.3.2定点量化
3.3.3归一化处理
3.3.4小数部分截断
3.3.5一种不同的方法Trounding
3.4定点数运算的HDL描述
3.4.1定点数加法的HDL描述
3.4.2定点数减法的HDL描述
3.4.3定点乘法的HDL描述
3.4.4定点除法的HDL描述
3.5浮点数的表示方法
3.5.1浮点数的格式
3.5.2浮点数的短指数表示
3.6浮点运算的HDL描述
3.6.1单精度浮点数加法的HDL描述
3.6.2单精度浮点数减法的HDL描述
3.6.3单精度浮点数乘法的HDL描述
3.6.4单精度浮点数除法的HDL描述
第二篇数字信号处理基本理论和FPGA实现方法
第4章CORDIC算法原理及实现
4.1CORDIC算法原理
4.1.1圆坐标系旋转
4.1.2线性坐标系旋转
4.1.3双曲线坐标系旋转
4.1.4CORDIC算法一般描述
4.2CORDIC算法性能分析
4.2.1输出量化误差的确定
4.2.2近似误差的分析
4.2.3舍入误差的分析
4.2.4有效位deff的估算
4.2.5预测与仿真
4.3CORDIC硬件实现原理
4.3.1CORDIC循环结构的实现原理
4.3.2CORDIC非循环结构的实现原理
4.3.3实现CORDIC的非循环的流水线结构
4.3.43种实现方式的性能比较
4.4CORDIC算法收敛性及实现
4.4.1CORDIC算法收敛性原理
4.4.2CORDIC象限映射实现
4.4.3向量模式的CORDIC迭代实现
4.4.4旋转模式的CORDIC迭代实现
4.5CORDIC子系统的设计
4.5.1CORDIC单元的设计
4.5.2参数化CORDIC单元
4.5.3旋转后标定的实现
4.5.4旋转后的象限解映射
4.6圆形坐标系算术功能的设计
4.6.1反正切的实现
4.6.2正弦和余弦的实现
4.6.3向量幅度的计算
4.7流水线技术的CORDIC实现
4.7.1带有流水线并行阵列的实现
4.7.2串行结构实现
4.7.3比较并行和串行实现
4.8向量幅值精度的研究
4.8.1CORDIC向量幅度: 设计任务
4.8.2验证计算精度
第5章离散傅里叶变换原理及信号频谱分析实现
5.1傅里叶变换的几种形式
5.1.1连续时间、连续频率——连续傅里叶变换
5.1.2连续时间、离散频率——傅里叶级数
5.1.3离散时间、连续频率——序列的傅里叶变换
5.1.4离散时间、离散频率——离散傅里叶变换
5.2周期序列的离散傅里叶级数
5.3离散傅里叶变换
5.4离散傅里叶级数与离散傅里叶变换的关系
5.5离散傅里叶变换和z变换的关系
5.6离散傅里叶变换的性质
5.6.1线性
5.6.2循环移位定理
5.6.3循环卷积定理
5.6.4复共轭序列的DFT
5.6.5DFT的共轭对称性
5.7频率域抽样理论
5.8离散傅里叶变换应用举例
5.9离散傅里叶变换的信号谱分析
5.9.1连续信号谱分析
5.9.2谱分析存在的问题
5.10离散傅里叶变换信号分析的实现
5.10.1构建频谱分析模型
5.10.2配置模型参数
5.10.3设置仿真参数
5.10.4运行和分析仿真结果
第6章快速傅里叶变换FFT
6.1FFT的发展背景
6.2FFT快速变换的需求
6.3按时间抽取的基-2 FFT算法
6.3.1按时间抽取的基-2 FFT算法原理
6.3.2运算量分析
6.4按频率抽取的基-2 FFT算法
6.4.1按频率抽取的基-2 FFT算法原理
6.4.2运算量分析
6.5离散傅里叶反变换的快速计算
6.6混合基FFT算法
6.7FFT的C模型描述和实现
6.7.1创建新的设计工程
6.7.2创建源文件
6.7.3设计综合
6.7.4创建仿真测试文件
6.7.5运行协同仿真
6.7.6添加PIPELINE命令
6.7.7添加ARRAY_PARTITION命令
第7章离散余弦变换原理及实现
7.1DCT的定义
7.2DCT-2和DFT的关系
7.3DCT变换的应用
7.4二维DCT变换原理
7.4.1二维DCT变换方法
7.4.2二维DCT算法描述
7.5二维DCT变换实现
7.5.1创建新的设计工程
7.5.2创建源文件
7.5.3设计综合
7.5.4创建仿真测试文件
7.5.5运行协同仿真
7.5.6添加PIPELINE命令
7.5.7修改PIPELINE命令
7.5.8添加PARTITION命令
7.5.9添加DATAFLOW命令
7.5.10添加INLINE命令
7.5.11添加RESHAPE命令
7.5.12修改RESHAPE命令
第8章FIR滤波器和IIR滤波器原理及实现
8.1模拟到数字滤波器的转换
8.1.1微分方程近似
8.1.2双线性交换
8.2数字滤波器的分类和应用
8.3FIR数字滤波器的原理和结构
8.3.1FIR数字滤波器的特性
8.3.2FIR滤波器的设计规则
8.3.3FIR滤波器的转置结构
8.4IIR数字滤波器的原理和结构
8.4.1IIR滤波器的原理
8.4.2IIR滤波器的模型
8.4.3IIR滤波器的z域分析
8.4.4IIR滤波器的性能及稳定性
8.5DA FIR滤波器的设计
8.5.1DA FIR滤波器的设计原理
8.5.2移位寄存器模块设计
8.5.3查找表模块的设计
8.5.4查找表加法器模块的设计
8.5.5缩放比例加法器模块的设计
8.5.6DA FIR滤波器完整的设计
8.6MAC FIR滤波器设计
8.6.112×8乘和累加器模块的设计
8.6.2数据控制逻辑模块设计
8.6.3地址生成器模块的设计
8.6.4完整的MAC FIR滤波器的设计
8.7FIR Compiler滤波器的设计
8.7.1生成FIR滤波器系数
8.7.2建模FIR滤波器模型
8.7.3仿真FIR滤波器模型
8.7.4修改FIR滤波器模型
8.7.5仿真修改后FIR滤波器模型
8.8HLS FIR滤波器的设计
8.8.1设计原理
8.8.2设计FIR滤波器
8.8.3运行仿真和验证功能
8.8.4设计综合
8.8.5设计优化
8.8.6Vivado环境下的RTL仿真
第9章其他类型数字滤波器原理及实现
9.1滑动平均滤波器原理及结构
9.1.1滑动平均一般原理
9.1.28权值滑动平均结构及特性
9.1.39权重滑动平均结构及特性
9.1.4滑动平均滤波器的转置结构
9.2微分器和积分器原理及特性
9.2.1微分器原理及特性
9.2.2积分器原理及特性
9.3积分梳状滤波器原理及特性
9.4中频调制信号产生和解调
9.4.1中频调制信号的产生
9.4.2中频调制信号的解调
9.4.3CIC提取基带信号
9.4.4CIC滤波器的衰减及修正
9.5CIC滤波器实现方法
9.6CIC滤波器位宽确定
9.6.1CIC抽取滤波器位宽确定
9.6.2CIC插值滤波器位宽确定
9.7CIC滤波器的锐化
9.7.1SCIC滤波器的特性
9.7.2ISOP滤波器的特性
9.8CIC滤波器的递归和非递归结构
9.9CIC滤波器的实现
9.9.1单级定点CIC滤波器的设计
9.9.2滑动平均滤波器的设计
9.9.3多级定点CIC滤波器的设计
9.9.4浮点CIC滤波器的设计
9.9.5CIC插值和抽取滤波器的设计
第10章重定时信号流图原理及实现
10.1信号流图基本概念
10.1.1信号流图关键路径
10.1.2信号流图的延迟
10.2割集重定时及规则
10.2.1割集重定时概念
10.2.2割集重定时规则1
10.2.3割集重定时规则2
10.2.4两种重定时FIR的信号流图
10.3脉动阵列及重定时
10.3.1脉动阵列概念
10.3.2FIR滤波器脉动阵列及重定时
10.3.3IIR滤波器脉动阵列及重定时
10.4自适应滤波器的SFG
第三篇通信信号处理理论和FPGA实现方法
第11章通信信号处理原理及实现
11.1信号检测理论
11.1.1概率的柱状图表示
11.1.2概率密度函数
11.2二进制基带数据传输
11.2.1脉冲整形
11.2.2基带传输信号接收错误
11.2.3匹配滤波器的应用
11.3信号调制技术
11.3.1信道与带宽
11.3.2信号调制技术
11.3.3数字信号的传输
11.4脉冲整形滤波器原理及实现
11.4.1脉冲整形滤波器原理
11.4.2上采样-滤波器脉冲整形的实现
11.4.3多相内插脉冲整形滤波器的实现
11.4.4量化和频谱屏蔽的实现
11.5发射机原理及实现
11.5.1发射机原理
11.5.2发射机实现
11.6脉冲生成和匹配滤波器的实现
11.6.1脉冲生成原理和实现
11.6.2匹配滤波器原理和实现
11.7接收机原理及实现
11.7.1接收机原理
11.7.2理想信道接收机实现
11.7.3非理想信道接收机实现
第12章数控振荡器原理及实现
12.1数控振荡器的原理
12.2查找表数控振荡器原理及实现
12.2.1查找表数控振荡器原理
12.2.2使用累加器生成一个斜坡函数
12.2.3累加器精度的影响分析
12.2.4使用查找表生成正弦波
12.2.5分析步长对频率分辨率的影响
12.2.6频谱纯度的分析
12.2.7分析查找表深度和无杂散动态范围
12.2.8查找表深度和实现成本
12.2.9动态频率的无杂散动态范围
12.2.10带有抖动的无杂散动态范围
12.2.11调谐抖动个数
12.2.12创建一个抖动信号
12.3IIR滤波器数控振荡器原理及实现
12.3.1IIR滤波器数控振荡器原理
12.3.2使用IIR滤波器生成正弦波振荡器
12.3.3IIR振荡器的频谱纯度分析
12.3.432位定点IIR滤波器生成正弦波振荡器
12.3.512位定点IIR滤波器生成正弦波振荡器
12.3.68位定点IIR滤波器生成正弦波振荡器
12.4CORDIC数控振荡器实现
12.4.1象限修正正弦/余弦 CORDIC振荡器
12.4.2锯齿波驱动正弦/余弦CORDIC振荡器
第13章信号同步原理实现
13.1信号的同步问题
13.2符号定时及定时恢复
13.2.1符号定时原理
13.2.2符号定时恢复
13.2.3载波相位偏移及控制
13.2.4帧同步原理
13.2.5数字下变频原理
13.2.6BPSK接收信号的同步原理
13.3数字变频器原理及实现
13.3.1数字上变频原理及实现
13.3.2数字下变频原理及实现
13.4锁相环原理及实现
13.4.1锁相环原理
13.4.2相位检测器的实现
13.4.3环路滤波器的实现
13.4.4相位检测器和环路滤波器的实现
13.4.52型PLL的实现
13.4.61型PLL和2型PLL性能比较
13.4.7噪声对2型 PLL的影响
13.5载波同步的实现
13.5.1科斯塔斯环的实现
13.5.2平方环的实现
13.6定时同步的实现
13.6.1匹配滤波器和最大有效点
13.6.2超前滞后门同步器
第四篇数字图像处理理论和FPGA实现方法
第14章数字图像处理原理及实现
14.1数字图像处理基本方法
14.1.1灰度变换
14.1.2直方图处理
14.1.3空间滤波
14.2System Generator数字图像处理实现
14.2.1打开图像滤波器设计
14.2.2分析数字图像滤波器
14.2.3分析输入和输出缓存模块
14.2.4准备硬件协同仿真
14.2.5运行硬件协同仿真
14.3HLS图像边缘检测实现
14.3.1创建新的设计工程
14.3.2创建源文件
14.3.3设计综合
14.3.4创建仿真测试文件
14.3.5运行协同仿真
14.3.6添加循环控制命令
14.3.7添加DATAFLOW命令
14.3.8添加INLINE命令
第15章动态视频拼接原理及实现
15.1视频拼接技术发展
15.2图像拼接理论及关键方法
15.2.1图像拼接系统概述
15.2.2图像拼接流程
15.2.3图像采集及表示
15.2.4图像配准和融合
15.2.5图像拼接演示
15.3图像配准方法的原理及实现
15.3.1基于MATLAB的图像配准系统
15.3.2关键点配准法
15.3.3SIFT图像配准算法
15.3.4模板匹配法
15.3.5灰度信息法
15.3.6频域相位相关算法
15.3.7图像配准方法对比与评价
15.4视频拼接系统的设计与实现
15.4.1视频拼接技术
15.4.2视频拼接方法
15.4.3视频拼接系统的实现
15.5FPGA视频拼接系统硬件实现
15.5.1系统结构
15.5.2系统硬件平台总体设计
15.5.3视频数据采集模块
15.5.4视频数据存储模块
15.5.5视频数据显示模块
15.5.6系统硬件平台的测试
15.6FPGA视频拼接系统软件设计
15.6.1系统软件设计概述
15.6.2系统中断部分设计
15.6.3视频采集模块软件设计
15.6.4视频存储模块软件设计
15.6.5视频显示模块软件设计
15.6.6系统整体测试
15.7Vivado HLS图像拼接系统原理及实现
15.7.1OpenCV和HLS视频库
15.7.2AXI4流和视频接口
15.7.3OpenCV到RTL代码转换的流程
15.7.4Vivado HLS实现OpenCV的方法
15.7.5Vivado HLS实现图像拼接
第五篇自适应信号处理理论和FPGA实现方法
第16章自适应信号处理原理及实现
16.1自适应信号处理发展
16.2自适应信号处理系统
16.2.1通用信号处理系统结构
16.2.2FIR滤波器性能参数
16.2.3自适应滤波器结构
16.2.4通用自适应数字信号处理结构
16.2.5自适应信号处理系统模拟接口
16.2.6典型自适应数字信号处理结构
16.3自适应信号处理的应用
16.3.1信道辨识
16.3.2回波对消
16.3.3声学回音消除
16.3.4电线交流噪声抑制
16.3.5背景噪声抑制
16.3.6信道均衡
16.3.7自适应谱线增强
16.4自适应信号处理算法
16.4.1自适应信号处理算法类型
16.4.2自适应滤波器结构
16.4.3维纳-霍普算法
16.4.4最小均方算法
16.4.5递归最小二次方算法
16.5LMS算法的硬件实现结构
16.5.1基本LMS结构
16.5.2串行LMS结构
16.5.3重定时SLMS结构
16.5.4非规范的LMS(NCLMS)结构
16.5.5流水线LMS结构
16.5.6超前技术
16.5.7PIPLMS结构
16.5.8复数LMS结构
16.5.9RLS和LMS技术的比较
16.6自适应滤波器的设计
16.6.1标准并行自适应LMS滤波器的设计
16.6.2非规范并行LMS滤波器的设计
16.6.3使用可配置LMS模块实现LMS音频
16.7自适应信号算法硬件实现方法
16.7.1最小二乘解的计算
16.7.2指数RLS算法实现
16.7.3QR-RLS算法原理及实现
16.8QR-RLS自适应滤波算法的实现
16.8.1QR算法的硬件结构
16.8.2QR-RLS的三数组方法
16.8.3QR边界单元的实现
16.8.4QR内部单元的实现
16.8.5QR数组的实现
参考文献
第1章信号处理理论
1.1信号定义及分类
1.2信号增益与衰减
1.3信号失真及测量
1.3.1放大器失真
1.3.2信号谐波失真
1.3.3谐波失真测量
1.4噪声及处理方法
1.4.1噪声的定义及表示
1.4.2固有噪声电平
1.4.3噪声/失真链
1.4.4信噪比定义及表示
1.4.5信号的提取方法
1.5模拟信号及处理方法
1.5.1模拟I/O信号的处理
1.5.2模拟通信信号处理
1.6数字信号处理关键问题
1.6.1数字信号处理系统结构
1.6.2信号调理方法
1.6.3模数转换器ADC及量化效应
1.6.4数模转换器DAC和信号重建
1.6.5SFDR的定义及测量
1.7通信信号软件处理方法
1.7.1软件无线电的定义
1.7.2IF的软件无线电实现
1.7.3信道化处理
1.7.4基站软件无线电接收机
1.7.5SR采样技术
1.7.6直接数字下变频
1.7.7带通采样失败的解决
第2章数字信号处理实现方法
2.1数字信号处理技术概念
2.1.1数字信号处理技术的发展
2.1.2数字信号处理算法的分类
2.1.3数字信号处理实现方法
2.2基于DSP的数字信号处理实现方法
2.2.1DSP的结构特点
2.2.2DSP的运行代码及性能
2.3基于FPGA的数字信号处理实现方法
2.3.1FPGA原理
2.3.2FPGA的逻辑资源
2.3.3FPGA的高性能处理
2.3.4FPGA的最新发展
第3章数字的表示和运算的实现
3.1整数的表示方法
3.1.1二进制原码格式
3.1.2二进制反码格式
3.1.3二进制补码格式
3.2整数值运算的HDL描述
3.2.1整数加法的HDL描述
3.2.2整数减法的HDL描述
3.2.3整数乘法的HDL描述
3.2.4整数除法的HDL描述
3.3定点数的表示方法
3.3.1定点二进制数格式
3.3.2定点量化
3.3.3归一化处理
3.3.4小数部分截断
3.3.5一种不同的方法Trounding
3.4定点数运算的HDL描述
3.4.1定点数加法的HDL描述
3.4.2定点数减法的HDL描述
3.4.3定点乘法的HDL描述
3.4.4定点除法的HDL描述
3.5浮点数的表示方法
3.5.1浮点数的格式
3.5.2浮点数的短指数表示
3.6浮点运算的HDL描述
3.6.1单精度浮点数加法的HDL描述
3.6.2单精度浮点数减法的HDL描述
3.6.3单精度浮点数乘法的HDL描述
3.6.4单精度浮点数除法的HDL描述
第二篇数字信号处理基本理论和FPGA实现方法
第4章CORDIC算法原理及实现
4.1CORDIC算法原理
4.1.1圆坐标系旋转
4.1.2线性坐标系旋转
4.1.3双曲线坐标系旋转
4.1.4CORDIC算法一般描述
4.2CORDIC算法性能分析
4.2.1输出量化误差的确定
4.2.2近似误差的分析
4.2.3舍入误差的分析
4.2.4有效位deff的估算
4.2.5预测与仿真
4.3CORDIC硬件实现原理
4.3.1CORDIC循环结构的实现原理
4.3.2CORDIC非循环结构的实现原理
4.3.3实现CORDIC的非循环的流水线结构
4.3.43种实现方式的性能比较
4.4CORDIC算法收敛性及实现
4.4.1CORDIC算法收敛性原理
4.4.2CORDIC象限映射实现
4.4.3向量模式的CORDIC迭代实现
4.4.4旋转模式的CORDIC迭代实现
4.5CORDIC子系统的设计
4.5.1CORDIC单元的设计
4.5.2参数化CORDIC单元
4.5.3旋转后标定的实现
4.5.4旋转后的象限解映射
4.6圆形坐标系算术功能的设计
4.6.1反正切的实现
4.6.2正弦和余弦的实现
4.6.3向量幅度的计算
4.7流水线技术的CORDIC实现
4.7.1带有流水线并行阵列的实现
4.7.2串行结构实现
4.7.3比较并行和串行实现
4.8向量幅值精度的研究
4.8.1CORDIC向量幅度: 设计任务
4.8.2验证计算精度
第5章离散傅里叶变换原理及信号频谱分析实现
5.1傅里叶变换的几种形式
5.1.1连续时间、连续频率——连续傅里叶变换
5.1.2连续时间、离散频率——傅里叶级数
5.1.3离散时间、连续频率——序列的傅里叶变换
5.1.4离散时间、离散频率——离散傅里叶变换
5.2周期序列的离散傅里叶级数
5.3离散傅里叶变换
5.4离散傅里叶级数与离散傅里叶变换的关系
5.5离散傅里叶变换和z变换的关系
5.6离散傅里叶变换的性质
5.6.1线性
5.6.2循环移位定理
5.6.3循环卷积定理
5.6.4复共轭序列的DFT
5.6.5DFT的共轭对称性
5.7频率域抽样理论
5.8离散傅里叶变换应用举例
5.9离散傅里叶变换的信号谱分析
5.9.1连续信号谱分析
5.9.2谱分析存在的问题
5.10离散傅里叶变换信号分析的实现
5.10.1构建频谱分析模型
5.10.2配置模型参数
5.10.3设置仿真参数
5.10.4运行和分析仿真结果
第6章快速傅里叶变换FFT
6.1FFT的发展背景
6.2FFT快速变换的需求
6.3按时间抽取的基-2 FFT算法
6.3.1按时间抽取的基-2 FFT算法原理
6.3.2运算量分析
6.4按频率抽取的基-2 FFT算法
6.4.1按频率抽取的基-2 FFT算法原理
6.4.2运算量分析
6.5离散傅里叶反变换的快速计算
6.6混合基FFT算法
6.7FFT的C模型描述和实现
6.7.1创建新的设计工程
6.7.2创建源文件
6.7.3设计综合
6.7.4创建仿真测试文件
6.7.5运行协同仿真
6.7.6添加PIPELINE命令
6.7.7添加ARRAY_PARTITION命令
第7章离散余弦变换原理及实现
7.1DCT的定义
7.2DCT-2和DFT的关系
7.3DCT变换的应用
7.4二维DCT变换原理
7.4.1二维DCT变换方法
7.4.2二维DCT算法描述
7.5二维DCT变换实现
7.5.1创建新的设计工程
7.5.2创建源文件
7.5.3设计综合
7.5.4创建仿真测试文件
7.5.5运行协同仿真
7.5.6添加PIPELINE命令
7.5.7修改PIPELINE命令
7.5.8添加PARTITION命令
7.5.9添加DATAFLOW命令
7.5.10添加INLINE命令
7.5.11添加RESHAPE命令
7.5.12修改RESHAPE命令
第8章FIR滤波器和IIR滤波器原理及实现
8.1模拟到数字滤波器的转换
8.1.1微分方程近似
8.1.2双线性交换
8.2数字滤波器的分类和应用
8.3FIR数字滤波器的原理和结构
8.3.1FIR数字滤波器的特性
8.3.2FIR滤波器的设计规则
8.3.3FIR滤波器的转置结构
8.4IIR数字滤波器的原理和结构
8.4.1IIR滤波器的原理
8.4.2IIR滤波器的模型
8.4.3IIR滤波器的z域分析
8.4.4IIR滤波器的性能及稳定性
8.5DA FIR滤波器的设计
8.5.1DA FIR滤波器的设计原理
8.5.2移位寄存器模块设计
8.5.3查找表模块的设计
8.5.4查找表加法器模块的设计
8.5.5缩放比例加法器模块的设计
8.5.6DA FIR滤波器完整的设计
8.6MAC FIR滤波器设计
8.6.112×8乘和累加器模块的设计
8.6.2数据控制逻辑模块设计
8.6.3地址生成器模块的设计
8.6.4完整的MAC FIR滤波器的设计
8.7FIR Compiler滤波器的设计
8.7.1生成FIR滤波器系数
8.7.2建模FIR滤波器模型
8.7.3仿真FIR滤波器模型
8.7.4修改FIR滤波器模型
8.7.5仿真修改后FIR滤波器模型
8.8HLS FIR滤波器的设计
8.8.1设计原理
8.8.2设计FIR滤波器
8.8.3运行仿真和验证功能
8.8.4设计综合
8.8.5设计优化
8.8.6Vivado环境下的RTL仿真
第9章其他类型数字滤波器原理及实现
9.1滑动平均滤波器原理及结构
9.1.1滑动平均一般原理
9.1.28权值滑动平均结构及特性
9.1.39权重滑动平均结构及特性
9.1.4滑动平均滤波器的转置结构
9.2微分器和积分器原理及特性
9.2.1微分器原理及特性
9.2.2积分器原理及特性
9.3积分梳状滤波器原理及特性
9.4中频调制信号产生和解调
9.4.1中频调制信号的产生
9.4.2中频调制信号的解调
9.4.3CIC提取基带信号
9.4.4CIC滤波器的衰减及修正
9.5CIC滤波器实现方法
9.6CIC滤波器位宽确定
9.6.1CIC抽取滤波器位宽确定
9.6.2CIC插值滤波器位宽确定
9.7CIC滤波器的锐化
9.7.1SCIC滤波器的特性
9.7.2ISOP滤波器的特性
9.8CIC滤波器的递归和非递归结构
9.9CIC滤波器的实现
9.9.1单级定点CIC滤波器的设计
9.9.2滑动平均滤波器的设计
9.9.3多级定点CIC滤波器的设计
9.9.4浮点CIC滤波器的设计
9.9.5CIC插值和抽取滤波器的设计
第10章重定时信号流图原理及实现
10.1信号流图基本概念
10.1.1信号流图关键路径
10.1.2信号流图的延迟
10.2割集重定时及规则
10.2.1割集重定时概念
10.2.2割集重定时规则1
10.2.3割集重定时规则2
10.2.4两种重定时FIR的信号流图
10.3脉动阵列及重定时
10.3.1脉动阵列概念
10.3.2FIR滤波器脉动阵列及重定时
10.3.3IIR滤波器脉动阵列及重定时
10.4自适应滤波器的SFG
第三篇通信信号处理理论和FPGA实现方法
第11章通信信号处理原理及实现
11.1信号检测理论
11.1.1概率的柱状图表示
11.1.2概率密度函数
11.2二进制基带数据传输
11.2.1脉冲整形
11.2.2基带传输信号接收错误
11.2.3匹配滤波器的应用
11.3信号调制技术
11.3.1信道与带宽
11.3.2信号调制技术
11.3.3数字信号的传输
11.4脉冲整形滤波器原理及实现
11.4.1脉冲整形滤波器原理
11.4.2上采样-滤波器脉冲整形的实现
11.4.3多相内插脉冲整形滤波器的实现
11.4.4量化和频谱屏蔽的实现
11.5发射机原理及实现
11.5.1发射机原理
11.5.2发射机实现
11.6脉冲生成和匹配滤波器的实现
11.6.1脉冲生成原理和实现
11.6.2匹配滤波器原理和实现
11.7接收机原理及实现
11.7.1接收机原理
11.7.2理想信道接收机实现
11.7.3非理想信道接收机实现
第12章数控振荡器原理及实现
12.1数控振荡器的原理
12.2查找表数控振荡器原理及实现
12.2.1查找表数控振荡器原理
12.2.2使用累加器生成一个斜坡函数
12.2.3累加器精度的影响分析
12.2.4使用查找表生成正弦波
12.2.5分析步长对频率分辨率的影响
12.2.6频谱纯度的分析
12.2.7分析查找表深度和无杂散动态范围
12.2.8查找表深度和实现成本
12.2.9动态频率的无杂散动态范围
12.2.10带有抖动的无杂散动态范围
12.2.11调谐抖动个数
12.2.12创建一个抖动信号
12.3IIR滤波器数控振荡器原理及实现
12.3.1IIR滤波器数控振荡器原理
12.3.2使用IIR滤波器生成正弦波振荡器
12.3.3IIR振荡器的频谱纯度分析
12.3.432位定点IIR滤波器生成正弦波振荡器
12.3.512位定点IIR滤波器生成正弦波振荡器
12.3.68位定点IIR滤波器生成正弦波振荡器
12.4CORDIC数控振荡器实现
12.4.1象限修正正弦/余弦 CORDIC振荡器
12.4.2锯齿波驱动正弦/余弦CORDIC振荡器
第13章信号同步原理实现
13.1信号的同步问题
13.2符号定时及定时恢复
13.2.1符号定时原理
13.2.2符号定时恢复
13.2.3载波相位偏移及控制
13.2.4帧同步原理
13.2.5数字下变频原理
13.2.6BPSK接收信号的同步原理
13.3数字变频器原理及实现
13.3.1数字上变频原理及实现
13.3.2数字下变频原理及实现
13.4锁相环原理及实现
13.4.1锁相环原理
13.4.2相位检测器的实现
13.4.3环路滤波器的实现
13.4.4相位检测器和环路滤波器的实现
13.4.52型PLL的实现
13.4.61型PLL和2型PLL性能比较
13.4.7噪声对2型 PLL的影响
13.5载波同步的实现
13.5.1科斯塔斯环的实现
13.5.2平方环的实现
13.6定时同步的实现
13.6.1匹配滤波器和最大有效点
13.6.2超前滞后门同步器
第四篇数字图像处理理论和FPGA实现方法
第14章数字图像处理原理及实现
14.1数字图像处理基本方法
14.1.1灰度变换
14.1.2直方图处理
14.1.3空间滤波
14.2System Generator数字图像处理实现
14.2.1打开图像滤波器设计
14.2.2分析数字图像滤波器
14.2.3分析输入和输出缓存模块
14.2.4准备硬件协同仿真
14.2.5运行硬件协同仿真
14.3HLS图像边缘检测实现
14.3.1创建新的设计工程
14.3.2创建源文件
14.3.3设计综合
14.3.4创建仿真测试文件
14.3.5运行协同仿真
14.3.6添加循环控制命令
14.3.7添加DATAFLOW命令
14.3.8添加INLINE命令
第15章动态视频拼接原理及实现
15.1视频拼接技术发展
15.2图像拼接理论及关键方法
15.2.1图像拼接系统概述
15.2.2图像拼接流程
15.2.3图像采集及表示
15.2.4图像配准和融合
15.2.5图像拼接演示
15.3图像配准方法的原理及实现
15.3.1基于MATLAB的图像配准系统
15.3.2关键点配准法
15.3.3SIFT图像配准算法
15.3.4模板匹配法
15.3.5灰度信息法
15.3.6频域相位相关算法
15.3.7图像配准方法对比与评价
15.4视频拼接系统的设计与实现
15.4.1视频拼接技术
15.4.2视频拼接方法
15.4.3视频拼接系统的实现
15.5FPGA视频拼接系统硬件实现
15.5.1系统结构
15.5.2系统硬件平台总体设计
15.5.3视频数据采集模块
15.5.4视频数据存储模块
15.5.5视频数据显示模块
15.5.6系统硬件平台的测试
15.6FPGA视频拼接系统软件设计
15.6.1系统软件设计概述
15.6.2系统中断部分设计
15.6.3视频采集模块软件设计
15.6.4视频存储模块软件设计
15.6.5视频显示模块软件设计
15.6.6系统整体测试
15.7Vivado HLS图像拼接系统原理及实现
15.7.1OpenCV和HLS视频库
15.7.2AXI4流和视频接口
15.7.3OpenCV到RTL代码转换的流程
15.7.4Vivado HLS实现OpenCV的方法
15.7.5Vivado HLS实现图像拼接
第五篇自适应信号处理理论和FPGA实现方法
第16章自适应信号处理原理及实现
16.1自适应信号处理发展
16.2自适应信号处理系统
16.2.1通用信号处理系统结构
16.2.2FIR滤波器性能参数
16.2.3自适应滤波器结构
16.2.4通用自适应数字信号处理结构
16.2.5自适应信号处理系统模拟接口
16.2.6典型自适应数字信号处理结构
16.3自适应信号处理的应用
16.3.1信道辨识
16.3.2回波对消
16.3.3声学回音消除
16.3.4电线交流噪声抑制
16.3.5背景噪声抑制
16.3.6信道均衡
16.3.7自适应谱线增强
16.4自适应信号处理算法
16.4.1自适应信号处理算法类型
16.4.2自适应滤波器结构
16.4.3维纳-霍普算法
16.4.4最小均方算法
16.4.5递归最小二次方算法
16.5LMS算法的硬件实现结构
16.5.1基本LMS结构
16.5.2串行LMS结构
16.5.3重定时SLMS结构
16.5.4非规范的LMS(NCLMS)结构
16.5.5流水线LMS结构
16.5.6超前技术
16.5.7PIPLMS结构
16.5.8复数LMS结构
16.5.9RLS和LMS技术的比较
16.6自适应滤波器的设计
16.6.1标准并行自适应LMS滤波器的设计
16.6.2非规范并行LMS滤波器的设计
16.6.3使用可配置LMS模块实现LMS音频
16.7自适应信号算法硬件实现方法
16.7.1最小二乘解的计算
16.7.2指数RLS算法实现
16.7.3QR-RLS算法原理及实现
16.8QR-RLS自适应滤波算法的实现
16.8.1QR算法的硬件结构
16.8.2QR-RLS的三数组方法
16.8.3QR边界单元的实现
16.8.4QR内部单元的实现
16.8.5QR数组的实现
参考文献
前言/序言
序(一)
我们生活在一个快速连接的世界中——全球有超过60亿台移动计算设备相互连接,并且每天都持续增加约100万台移动计算设备。预计到2020年,全球移动计算设备总数将达到300亿台。随着物联网(IoT)以及万联网(IoE)的发展,海量大数据的存储、传输、处理、挖掘技术出现了极大的挑战。从处理响应速度来看,计算的处理响应速度从文字时代的秒级,到多媒体时代的百毫秒级、视频时代的十毫秒级,会迅速推进到5G时代的1毫秒级。对海量数据在1毫秒内完成处理,将是未来数十年摆在电子信息系统设计工程师面前的巨大难题。
随着摩尔定律走向深纳米时代,在20nm以下的工艺节点,每个节点的性价比提高幅度会比上一代逐渐减少,而前期的一次性工程费用(NRE)投入巨大,服务客户数量稀少,使得专用集成电路(ASIC)及专用标准集成电路(ASSP)在商业模式上步入绝境,赢利的公司数量锐减直至最后消亡,尚能存活的将是可编程器件。
面对海量的计算任务,多核并行曾是解决方案之一,但受制于算法可并行部分的局限,更多的核并不能带来更高的效率,加速效能也逐渐走到了尽头。此外,受单颗芯片发热量密度限制,即使芯片上集成的晶体管越来越多,但可同时运行的晶体管数目却趋于恒定,多余的晶体管将沦为暗硅 (Dark Silicon)。因此,设计者不得不将目光转向冯·诺依曼架构之外的计算构架,例如领域定制化计算(Domain Specific Computing),它可在保持灵活性的同时,发挥每一个晶体管的计算能力,当然这也离不开可编程器件技术的长足发展。
在系统级别,大数据与软件定义一切,虚拟化一切的趋势,使得系统构架工程师不得不寻求更灵活、更智慧、更快速、更绿色的解决方案。而这些解决方案的核心往往与软件、硬件及I/O均可编程的芯片——赛灵思公司的All Programmable芯片相关。
在教育领域,除了需要培养能够应对未来数十年技术挑战的电子信息系统工程师之外,教学本身也充满了变革和机遇。随着大型开放式网络课程(MOOC)的兴起,在统一平台下通过互联网,以翻转课堂的方式,打破业界与教育界的壁垒,完成软件与硬件、理论与实验、年级与院系的全面贯通,将是很多电子信息类学科教育工作者的更高追求。
赛灵思大学计划将不遗余力地帮助教育工作者应对这些变革,与清华大学出版社合作将All Programmable全面可编程技术系统地引入到新型知识传播体系中去,培养能够应对下一代电子系统设计挑战的卓越工程师,为实现将“中国制造”变成“中国智造”的梦想,提供充足的智力和人才保障。
谢凯年
Xilinx大学计划大中华区经理
序(二)
很荣幸受何宾老师邀请,代表MathWorks公司为其新书《Xilinx FPGA数字信号处理权威指南——从HDL到模型和C的描述》作序。同时,也感谢何老师近年来对MATLAB软件应用,尤其是在数字信号处理方面,所做的持续的推广工作。
近年来,MathWorks公司一直致力于推广基于模型设计的嵌入式系统开发基本流程,这包括Simulink建模,定点化处理,C/HDL代码自动生成,联合仿真和硬件测试等环节。其中,有关FPGA的设计实现, 即可以把Simulink模型、MATLAB代码和Stateflow框图生成位真、周期精确、可综合的Verilog和VHDL代码,并通过使用工业标准化设计工具,对自动生成的HDL代码进行仿真和综合,并进一步映射到FPGA和ASIC芯片上。这些功能经过多年的不断升级发展,已逐渐获得了工业界和教育界的广泛认可。
本书是何宾老师在已经出版的《FPGA数字信号处理实现原理及方法》基础上,根据读者学习和教师教学反馈的意见,大幅度地修订而成。本书最大特色就是首次全面系统地从硬件描述语言、MATLAB/Simulink模型和C语言三个方面,对Xilinx FPGA数字信号处理的实现原理和方法进行了详细的说明。全书内容涵盖了数字信号处理的主要的理论知识,其中包含通用数字信号处理、数字通信信号处理和数字图像处理等方面。同时,在Xilinx最新的Vivado 2013.3集成开发环境和MathWorks最新的MATLAB R2013A集成开发环境下,通过大量的设计实例对所介绍的理论进行了验证。
在本书编写的过程中,参考了大量最新的设计资料和业界设计标准、内容新颖、理论和应用并重,充分反映了通过MATLAB使用Xilinx FPGA实现数字信号处理的最新方法和技术,可以帮助读者系统地掌握这些方法和技术。因此我相信此书的出版,必将极大方便广大读者的学习,提升读者的工程应用能力。
陈炜
原MathWorks 中国教育业务发展总监
前言
在当今发达的信息社会里,人们所获取的信息量在急剧地增加,因此就需要有高性能的信息处理手段对所获取的海量信息进行高效地处理,以服务于信息社会的快速发展。在对信息进行数字化处理的过程中,基本的数字信号处理理论是非常重要的,这些理论已经为人类社会信息的处理服务了几十年甚至上百年。
随着计算机技术的不断发展,数字信号处理的实现也从传统的使用计算机,向使用高性能数字信号处理器发展; 但本质上,在这些平台上实现数字信号处理还是纯粹的软件处理方法。随着信息量的不断增加,这些处理方法已经远远不能满足诸如实时图像和通信系统等高性能信息处理的要求。近些年来,随着半导体技术的不断发展,一种特殊的半导体器件——现场可编程阵列(Field Programmable Gate Array,FPGA)越来越引起信号处理者的兴趣和高度关注。这是因为,这种器件具有强大的并行信号处理能力、卓越的灵活性以及很高的性价比。但是,由于传统设计方法的限制,使得它的应用受到很大的制约。
作为全球知名的可编程逻辑器件厂商,美国Xilinx公司在FPGA的设计方法和设计手段上不断地进行探索,尤其是在数字信号处理方面,相继推出了基于模型设计的System Generator工具、基于C语言设计的高级综合工具HLS,使得FPGA在数字信号处理方面的应用越来越便捷。数字信号处理应用工程师从传统基于硬件描述语言(Hardware Description Language,HDL)的设计手段,向基于Simulink模型和基于C语言的设计方法转变。未来,设计者将更加专注于系统级的高级建模,而不是只专注于底层的具体实现问题。新设计手段和新设计思想的不断出现,大大降低了FPGA实现高性能数字信号处理的应用门槛,使得设计者能更好更快地设计出满足设计精度和设计性能的数字信号处理系统。
本书是在作者已经出版的《FPGA数字信号处理实现原理及方法》(清华大学出版社,2010)的基础上,根据读者学习和老师教学反馈的意见,历时半年多时间对原书进行了大幅度的修订。在国内,首次全面系统地从HDL、MATLAB Simulink模型设计、C语言三个不同的角度,对数字信号处理基本理论、数字通信信号处理理论、数字图像处理理论和自适应信号处理理论进行了详细的介绍; 同时,在Xilinx最新的Vivado 2013.3集成开发环境和MathWorks最新的MATLAB R2013a集成开发环境下,通过大量的设计实例对所介绍的理论进行了验证。
通过本书的学习,一方面,读者不仅能够系统深入地学习数字信号处理的理论知识,并且可以通过书中大量的设计实例理解如何将数字信号处理的理论知识应用于解决实际的数字信号处理问题; 另一方面,准确把握使用FPGA实现数字信号处理的方法,从而能够灵活地运用不同的设计手段构建满足设计要求的高性能信号处理系统。
在讲授和学习本书内容时,可以根据教学安排以及学习侧重点的不同,适当地选择本书相关的章节内容。为了便于读者能更好地理解和掌握数字信号处理理论知识,本书给出了大量的设计实例; 同时,为了方便教师授课,也提供了教学资源。读者可以通过登录清华大学出版社官方网站(http://www.tup.com.cn),进入该书页面来获取这些设计资源。
本书在编写过程中,得到了许多人的热心帮助,包括Xilinx 大中国区大学经理谢凯年博士,他为本书的编写提供了硬件平台和软件授权; Xilinx亚太区市场传播经理张俊伟女士,她为本书的编写帮助寻找Xilinx技术专家的支持; Xilinx大学计划聘请的全球讲师Bob Stewart教授和Louise Crockett教授,他们为本书编写提供了设计资料; MathWorks中国教育业务发展前任总监陈炜博士,他为本书的编写捐赠了正版的MATLAB R2013a工具; Xilinx全球技术支持Yash Palorkar等人,他们为本书编写过程中遇到的技术问题进行了耐心细致的解答。在本书编写过程中,作者的学生张艳辉通过System Generator和HLS工具对作者提出的很多新的设计目标进行了设计实现和验证,也帮助作者整理了大量的书稿。此外,作者的学生李宝隆也负责整理相关的书稿。清华大学出版社的领导和编辑一如既往地为本书的出版提供了大量的帮助。在此,向他们表示深深的谢意。
由于编者水平有限,编写时间仓促,书中难免有疏漏之处,敬请读者批评指正。
编者
2014年10月于北京
我们生活在一个快速连接的世界中——全球有超过60亿台移动计算设备相互连接,并且每天都持续增加约100万台移动计算设备。预计到2020年,全球移动计算设备总数将达到300亿台。随着物联网(IoT)以及万联网(IoE)的发展,海量大数据的存储、传输、处理、挖掘技术出现了极大的挑战。从处理响应速度来看,计算的处理响应速度从文字时代的秒级,到多媒体时代的百毫秒级、视频时代的十毫秒级,会迅速推进到5G时代的1毫秒级。对海量数据在1毫秒内完成处理,将是未来数十年摆在电子信息系统设计工程师面前的巨大难题。
随着摩尔定律走向深纳米时代,在20nm以下的工艺节点,每个节点的性价比提高幅度会比上一代逐渐减少,而前期的一次性工程费用(NRE)投入巨大,服务客户数量稀少,使得专用集成电路(ASIC)及专用标准集成电路(ASSP)在商业模式上步入绝境,赢利的公司数量锐减直至最后消亡,尚能存活的将是可编程器件。
面对海量的计算任务,多核并行曾是解决方案之一,但受制于算法可并行部分的局限,更多的核并不能带来更高的效率,加速效能也逐渐走到了尽头。此外,受单颗芯片发热量密度限制,即使芯片上集成的晶体管越来越多,但可同时运行的晶体管数目却趋于恒定,多余的晶体管将沦为暗硅 (Dark Silicon)。因此,设计者不得不将目光转向冯·诺依曼架构之外的计算构架,例如领域定制化计算(Domain Specific Computing),它可在保持灵活性的同时,发挥每一个晶体管的计算能力,当然这也离不开可编程器件技术的长足发展。
在系统级别,大数据与软件定义一切,虚拟化一切的趋势,使得系统构架工程师不得不寻求更灵活、更智慧、更快速、更绿色的解决方案。而这些解决方案的核心往往与软件、硬件及I/O均可编程的芯片——赛灵思公司的All Programmable芯片相关。
在教育领域,除了需要培养能够应对未来数十年技术挑战的电子信息系统工程师之外,教学本身也充满了变革和机遇。随着大型开放式网络课程(MOOC)的兴起,在统一平台下通过互联网,以翻转课堂的方式,打破业界与教育界的壁垒,完成软件与硬件、理论与实验、年级与院系的全面贯通,将是很多电子信息类学科教育工作者的更高追求。
赛灵思大学计划将不遗余力地帮助教育工作者应对这些变革,与清华大学出版社合作将All Programmable全面可编程技术系统地引入到新型知识传播体系中去,培养能够应对下一代电子系统设计挑战的卓越工程师,为实现将“中国制造”变成“中国智造”的梦想,提供充足的智力和人才保障。
谢凯年
Xilinx大学计划大中华区经理
序(二)
很荣幸受何宾老师邀请,代表MathWorks公司为其新书《Xilinx FPGA数字信号处理权威指南——从HDL到模型和C的描述》作序。同时,也感谢何老师近年来对MATLAB软件应用,尤其是在数字信号处理方面,所做的持续的推广工作。
近年来,MathWorks公司一直致力于推广基于模型设计的嵌入式系统开发基本流程,这包括Simulink建模,定点化处理,C/HDL代码自动生成,联合仿真和硬件测试等环节。其中,有关FPGA的设计实现, 即可以把Simulink模型、MATLAB代码和Stateflow框图生成位真、周期精确、可综合的Verilog和VHDL代码,并通过使用工业标准化设计工具,对自动生成的HDL代码进行仿真和综合,并进一步映射到FPGA和ASIC芯片上。这些功能经过多年的不断升级发展,已逐渐获得了工业界和教育界的广泛认可。
本书是何宾老师在已经出版的《FPGA数字信号处理实现原理及方法》基础上,根据读者学习和教师教学反馈的意见,大幅度地修订而成。本书最大特色就是首次全面系统地从硬件描述语言、MATLAB/Simulink模型和C语言三个方面,对Xilinx FPGA数字信号处理的实现原理和方法进行了详细的说明。全书内容涵盖了数字信号处理的主要的理论知识,其中包含通用数字信号处理、数字通信信号处理和数字图像处理等方面。同时,在Xilinx最新的Vivado 2013.3集成开发环境和MathWorks最新的MATLAB R2013A集成开发环境下,通过大量的设计实例对所介绍的理论进行了验证。
在本书编写的过程中,参考了大量最新的设计资料和业界设计标准、内容新颖、理论和应用并重,充分反映了通过MATLAB使用Xilinx FPGA实现数字信号处理的最新方法和技术,可以帮助读者系统地掌握这些方法和技术。因此我相信此书的出版,必将极大方便广大读者的学习,提升读者的工程应用能力。
陈炜
原MathWorks 中国教育业务发展总监
前言
在当今发达的信息社会里,人们所获取的信息量在急剧地增加,因此就需要有高性能的信息处理手段对所获取的海量信息进行高效地处理,以服务于信息社会的快速发展。在对信息进行数字化处理的过程中,基本的数字信号处理理论是非常重要的,这些理论已经为人类社会信息的处理服务了几十年甚至上百年。
随着计算机技术的不断发展,数字信号处理的实现也从传统的使用计算机,向使用高性能数字信号处理器发展; 但本质上,在这些平台上实现数字信号处理还是纯粹的软件处理方法。随着信息量的不断增加,这些处理方法已经远远不能满足诸如实时图像和通信系统等高性能信息处理的要求。近些年来,随着半导体技术的不断发展,一种特殊的半导体器件——现场可编程阵列(Field Programmable Gate Array,FPGA)越来越引起信号处理者的兴趣和高度关注。这是因为,这种器件具有强大的并行信号处理能力、卓越的灵活性以及很高的性价比。但是,由于传统设计方法的限制,使得它的应用受到很大的制约。
作为全球知名的可编程逻辑器件厂商,美国Xilinx公司在FPGA的设计方法和设计手段上不断地进行探索,尤其是在数字信号处理方面,相继推出了基于模型设计的System Generator工具、基于C语言设计的高级综合工具HLS,使得FPGA在数字信号处理方面的应用越来越便捷。数字信号处理应用工程师从传统基于硬件描述语言(Hardware Description Language,HDL)的设计手段,向基于Simulink模型和基于C语言的设计方法转变。未来,设计者将更加专注于系统级的高级建模,而不是只专注于底层的具体实现问题。新设计手段和新设计思想的不断出现,大大降低了FPGA实现高性能数字信号处理的应用门槛,使得设计者能更好更快地设计出满足设计精度和设计性能的数字信号处理系统。
本书是在作者已经出版的《FPGA数字信号处理实现原理及方法》(清华大学出版社,2010)的基础上,根据读者学习和老师教学反馈的意见,历时半年多时间对原书进行了大幅度的修订。在国内,首次全面系统地从HDL、MATLAB Simulink模型设计、C语言三个不同的角度,对数字信号处理基本理论、数字通信信号处理理论、数字图像处理理论和自适应信号处理理论进行了详细的介绍; 同时,在Xilinx最新的Vivado 2013.3集成开发环境和MathWorks最新的MATLAB R2013a集成开发环境下,通过大量的设计实例对所介绍的理论进行了验证。
通过本书的学习,一方面,读者不仅能够系统深入地学习数字信号处理的理论知识,并且可以通过书中大量的设计实例理解如何将数字信号处理的理论知识应用于解决实际的数字信号处理问题; 另一方面,准确把握使用FPGA实现数字信号处理的方法,从而能够灵活地运用不同的设计手段构建满足设计要求的高性能信号处理系统。
在讲授和学习本书内容时,可以根据教学安排以及学习侧重点的不同,适当地选择本书相关的章节内容。为了便于读者能更好地理解和掌握数字信号处理理论知识,本书给出了大量的设计实例; 同时,为了方便教师授课,也提供了教学资源。读者可以通过登录清华大学出版社官方网站(http://www.tup.com.cn),进入该书页面来获取这些设计资源。
本书在编写过程中,得到了许多人的热心帮助,包括Xilinx 大中国区大学经理谢凯年博士,他为本书的编写提供了硬件平台和软件授权; Xilinx亚太区市场传播经理张俊伟女士,她为本书的编写帮助寻找Xilinx技术专家的支持; Xilinx大学计划聘请的全球讲师Bob Stewart教授和Louise Crockett教授,他们为本书编写提供了设计资料; MathWorks中国教育业务发展前任总监陈炜博士,他为本书的编写捐赠了正版的MATLAB R2013a工具; Xilinx全球技术支持Yash Palorkar等人,他们为本书编写过程中遇到的技术问题进行了耐心细致的解答。在本书编写过程中,作者的学生张艳辉通过System Generator和HLS工具对作者提出的很多新的设计目标进行了设计实现和验证,也帮助作者整理了大量的书稿。此外,作者的学生李宝隆也负责整理相关的书稿。清华大学出版社的领导和编辑一如既往地为本书的出版提供了大量的帮助。在此,向他们表示深深的谢意。
由于编者水平有限,编写时间仓促,书中难免有疏漏之处,敬请读者批评指正。
编者
2014年10月于北京