第2版前言
自2012年出版《数字滤波器的MATLAB与FPGA实现》后,根据广大读者的反馈和需求,作者从滤波器、同步技术和调制解调三个方面,出版了数字通信技术的MATLAB与FPGA实现系列图书。根据采用的FPGA和硬件描述语言的不同,这套图书分为了Xilinx/VHDL版(采用Xilinx公司的FPGA和VHDL)和Altera/Verilog版(采用Altera公司的FPGA与VerilogHDL)。这套图书能够给广大工程师及在校学生的工作和学习有所帮助,是作者莫大的欣慰。
作者在2015年出版了Altera/Verilog版,在2017年出版Xilinx/VHDL版。针对Xilinx/VHDL版,作者精心设计了FPGA开发板CXD301,并在Xilinx/VHDL版中增加了板载测试内容,取得了良好效果,对读者的帮助很大。
根据广大读者的建议,以及Xilinx/VHDL版的启发,作者从2018年开始着手Altera/Verilog版的改版工作。但限于时间及精力,以及对应的开发板CRD500的研制进度,迟迟没有完稿,一晃竟推迟了近两年的时间。
与本书第1版相比,这次改版主要涉及以下几个方面:
(1)对涉及FPGA工程实例的章节,增加了主要工程实例的板载测试内容(基于开发板CRD500进行板载测试),给出了测试程序代码,并对测试结果进行了分析。
(2)增加了第8章“插值算法位同步技术的FPGA实现”,并将原来的第8章“帧同步技术的FPGA实现”移至第9章。
(3)Quartus软件更新很快,几乎每年都会推出新的版本。2014及以前的版本均为Quartus II,2015年后推出的版本更名为Quartus Prime,目前最新的版本是Quartus Prime 18.1。Quartus II和Quartus Prime的设计界面相差不大,设计流程也几乎完全相同。其中Quartus 13是最后同时支持32 bit及64 bit系统的软件版本,后续版本仅支持64 bit系统。为了兼顾更广泛的设计平台,同时考虑到软件版本的稳定性,本书及开发板配套例程均采用Quartus 13.1。本书第1版采用的是MATLAB 7.0,这次改版采用的是MATLAB R2014a。
(4)为了便于在开发板CRD500上进行板载测试验证,对部分工程实例参数进行了适当的调整。
(5)在编写板载测试的内容时,发现本书第1版中的部分程序还有需要完善的地方,这次改版对这些程序进行了补充及优化。
(6)根据读者的反馈信息,修改了本书第1版中的一些叙述不当或不准确的地方。
限于作者水平,本书的不足之处在所难免,敬请读者批评指正。欢迎大家就相关技术问题进行交流,或对本书提出改进建议。
技术博客:https://blog.csdn.net/qq_37145225。
产品网店:https://shop574143230.taobao.com/。
交流邮箱:duyongcn@sina.cn。
杜勇
2020年1月
第1版前言
为什么要写这本书
为什么要写这本书呢?或者说为什么要写数字通信技术的MATLAB与FPGA实现相关内容的书呢?记得在电子工业出版社出版《数字滤波器的MATLAB与FPGA实现》时,我在前言中提到写作的原因主要有三条:其一是FPGA在电子通信领域得到了越来越广泛的应用,并已逐渐成为电子产品实现的首选方案;其二是国内市场上专门讨论如何采用FPGA实现数字通信技术的书籍相对欠缺;其三是数字通信技术本身十分复杂,关键技术较多,在一本书中全面介绍数字通信技术的FPGA实现时难免有所遗漏,且内容难以翔实。因此,根据自己从业经验,将数字通信的关键技术大致分为滤波器技术、同步技术和调制解调技术三种,并尝试着先写滤波器技术,再逐步完成其他两种技术的写作。在广大读者的支持和鼓励下,先后又出版了《数字通信同步技术的MATLAB与FPGA实现》和《数字调制解调技术的MATLAB与FPGA实现》。这样,关于数字通信技术的MATLAB与FPGA实现的系列著作总算得以完成,多年前的构想总算成为现实!
自数字通信技术的MATLAB与FPGA实现的系列著作出版后,陆续通过邮件或博客的方式收到广大读者的反馈意见。一些读者直接通过邮件告知书中的内容对工作的帮助;一些读者提出了很多中肯的、有建设性的意见和建议;更多的读者通过邮件交流书中的相关设计问题。《数字滤波器的MATLAB与FPGA实现》采用Xilinx公司的FPGA和VHDL作为开发平台(Xilinx/VHDL版),该书出版后,不少读者建议出版采用Verilog HDL作为开发平台的版本。这是个很好的建议。在Xilinx/VHDL版顺利出版之后,终于可以开始Altera/Verilog版的写作了,以满足不同读者的需求。
本书的内容安排
第1章对数字通信同步技术的概念及FPGA基础知识进行简要介绍。通信技术的实现方法和平台很多。其中,FPGA因其强大的运算能力,以及灵活方便的应用特性,在现代通信、数字信号处理等领域得到越来越广泛的应用,并大有替代DSP等传统数字信号处理平台的趋势。为了更好地理解本书后续章节的内容,本章简要介绍了Altera公司的FPGA,以及Quartus II开发环境、MATLAB软件等内容。如果读者已经具备一定的FPGA设计经验,也可以跳过本章,直接阅读后续章节的内容。
第2章介绍FPGA中数的表示方法、数的运算、有限字长效应及常用的数字信号处理模块。在FPGA等硬件系统中实现数字信号时,因受寄存器长度的限制,不可避免地会产生有效字长效应。工程师必须了解字长效应对数字系统可能带来的影响,并在实际设计中通过仿真来确定最终的量化位宽、寄存器长度等内容。本章还对几种常用的运算模块IP核进行介绍,详细阐述各IP核控制参数的设置方法。IP核在FPGA设计中应用得十分普遍,尤其在数字信号处理领域,采用设计工具提供的IP核进行设计,不仅可以提高设计效率,还可以保证设计的性能。因此,在进行FPGA设计时,工程师可以先浏览一下选定的目标器件所能提供的IP核,以便通过使用IP核来减少设计的工作量并提高系统的性能。当然,工程师也可以从设计需要出发,根据是否具有相应的IP核来选择目标器件。本章介绍的都是一些非常基础的知识,但正因为基础,所以显得尤其重要。其中有效数据位运算,以及有效字长效应等内容在后续的工程实例讲解中都会多次涉及,建议读者不要急于阅读后续章节的工程实例讲解,先切实练好基本功,才可以达到事半功倍的效果。
第3章主要讨论锁相环技术的基本理论,这也是本书阅读起来最为乏味的章节。本章有一大堆理论和公式,很容易让人感到厌烦。对于数字通信技术来说,锁相环技术的工作原理大概是最难以弄清的知识点之一。但是,要想设计出完美的同步环路,对理论的透彻理解是必须具备的能力,而且一旦理解透了,在工程设计时就会有得心应手的感觉。本章从工程应用的角度,全面介绍锁相环的原理、组成及工程应用中需要经常使用的公式和参数设计方法。建议读者先耐心地对本章所介绍的内容进行深入的推敲理解,因为在后续章节讲解同步技术的FPGA实现时,可能会需要反复翻阅本章的内容。通过在工程设计实践中反复体会锁相环技术的原理及工作过程,当读者真正理解锁相环技术的基本理论及分析方法后,就会发现设计出性能优良的锁相环也不是一件多么困难的事。
第4章讨论载波同步技术的FPGA实现。这一章仍然有一些概念及工作原理的介绍,主要目的是讲清楚数字化载波锁相环的参数设计及计算方法。实现数字锁相环的关键步骤在于构造合适的数字化实现结构及模型。本章以一个完整的载波同步环工程设计实例,详细讲解数字载波锁相环系统的设计步骤、方法,并进行全面的性能仿真测试。载波同步环的数字化设计与实现比较复杂,初学者往往难以理解数字化模型与模拟电路之间的对应关系。数字化实现方法中各组成部件、参数的设计比较灵活。本章最后对载波同步环的一般设计步骤、环路参数对系统性能的影响进行归纳整理。读者可以完全按照本章所讨论的流程进行系统的设计及仿真,并反复理解载波同步技术的数字化实现方法,以及Verilog HDL编程的思路,必要时可以重复阅读第3章的内容,切实掌握锁相环技术的工作原理及实现过程。同时,本章用较大的篇幅详细讲解工程设计时的仿真测试步骤,读者尤其要切实掌握Quartus II与MATLAB联合应用的方法,以便提高设计效率。
第5章首先简要介绍三种抑制载波同步环的工作原理,随后对三种同步环的FPGA设计方法、结构、仿真测试过程进行详细讨论。从抑制载波同步环的FPGA实现过程中可以看出,设计三种同步环时所采用的环路模型、参数设计方式均十分相似,其中的环路滤波器只需简单修改即可通用。平方环与同相正交环的性能是等价的,但同相正交环(Costas环)在解调BPSK等抑制载波调制信号时更具优势。判决反馈环比其他两种环路的噪声性能更好,环路锁定后的稳态相差更小,但载波同步环需要以位同步作为前提条件,位同步会影响环路的稳定性。因此,对于抑制载波调制信号来讲,工程上通常采用同相正交环来实现信号的载波同步及数字解调。
第6章首先介绍自动频率控制的基本概念,然后分别对最大似然频差估计及基于FFT载波频率估计两种算法的原理、MATLAB仿真进行讨论,并详细阐述基于FFT载波频率估计算法的FPGA实现方法。FSK是数字通信中常用的一种调制方式,本章对频率调制的原理及信号特征进行介绍,并采用MATLAB对FSK信号进行仿真。FSK信号的解调方法很多,非相干解调法因为实现简单,性能优良而得到更为广泛的应用。为了便于读者更好地理解锁相环与AFC环的差别,本章将对常规二阶锁相环无法实现FSK信号解调的原因进行分析,并采用与锁相环类似的分析方法,对AFC环的模型进行讨论。这也进一步说明,读者在进行FPGA工程设计之前,必须充分理解系统的工作原理等理论知识,才能