描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121386435
本书以Altera公司的FPGA为开发平台,以MATLAB及Verilog HDL为开发工具,详细阐述数字调制解调技术的FPGA实现原理、结构、方法和仿真测试过程,并通过大量工程实例分析FPGA实现过程中的具体技术细节。主要内容包括FPGA实现数字信号处理基础、ASK调制解调、PSK调制解调、FSK调制解调、QAM调制解调以及扩频通信等。本书思路清晰、语言流畅、分析透彻,在简明阐述设计原理的基础上,追求对工程实践的指导性,力求使读者在较短的时间内掌握数字调制解调技术的FPGA设计的知识和技能。作者精心设计了与本书配套的FPGA开发板,详细讲解了工程实例的板载测试步骤及方法,形成了从理论到实践的完整学习过程,可以有效加深读者对调制解调技术的理解。本书的配套资料收录了完整的MATLAB及Verilog HDL代码,读者可登录华信教育资源网(www.hxedu.com.cn)免费注册后下载。
第1章 数字通信及FPGA概述 (1)
1.1 数字通信系统概述 (1)
1.1.1 数字通信的一般处理流程 (1)
1.1.2 本书讨论的通信系统模型 (3)
1.1.3 数字通信的特点及优势 (4)
1.1.4 数字通信的发展概述 (6)
1.2 数字通信中的几个基本概念 (7)
1.2.1 与频谱相关的概念 (7)
1.2.2 带宽的定义 (10)
1.2.3 采样与频谱搬移 (13)
1.2.4 噪声与信噪比 (17)
1.3 FPGA的基础知识 (18)
1.3.1 从晶体管到FPGA (18)
1.3.2 FPGA的发展趋势 (21)
1.3.3 FPGA的组成结构 (22)
1.3.4 FPGA的工作原理 (27)
1.4 FPGA与其他处理平台的比较 (29)
1.4.1 ASIC、DSP及ARM的特点 (29)
1.4.2 FPGA的特点及优势 (30)
1.5 Altera公司FPGA简介 (31)
1.6 FPGA开发板CRD500 (33)
1.6.1 CRD500简介 (33)
1.6.2 CRD500典型应用 (35)
1.7 小结 (36)
参考文献 (36)
第2章 设计语言及环境介绍 (38)
2.1 HDL简介 (38)
2.1.1 HDL的特点及优势 (38)
2.1.2 选择VHDL还是Verilog HDL (39)
2.2 Verilog HDL基础 (40)
2.2.1 Verilog HDL的特点 (40)
2.2.2 Verilog HDL程序结构 (41)
2.3 FPGA开发工具及设计流程 (43)
2.3.1 Quartus II开发软件 (43)
2.3.2 ModelSim仿真软件 (46)
2.3.3 FPGA设计流程 (48)
2.4 MATLAB软件 (50)
2.4.1 MATLAB简介、工作界面和优势 (50)
2.4.2 MATLAB中常用的信号处理函数 (53)
2.5 MATLAB与Quartus II的数据交换 (60)
2.6 小结 (60)
参考文献 (61)
第3章 FPGA实现数字信号处理基础 (62)
3.1 FPGA中数的表示 (62)
3.1.1 莱布尼兹与二进制 (62)
3.1.2 定点数表示 (63)
3.1.3 浮点数表示 (64)
3.2 FPGA中数的运算 (67)
3.2.1 加、减法运算 (67)
3.2.2 乘法运算 (70)
3.2.3 除法运算 (71)
3.2.4 有效数据位的计算 (71)
3.3 有限字长效应 (74)
3.3.1 有限字长效应的产生原因 (74)
3.3.2 A/D转换的有限字长效应 (75)
3.3.3 系统运算中的有限字长效应 (76)
3.4 FPGA中的常用处理模块 (78)
3.4.1 加法器模块 (78)
3.4.2 乘法器模块 (80)
3.4.3 除法器模块 (82)
3.4.4 浮点数运算模块 (83)
3.5 小结 (84)
参考文献 (85)
第4章 滤波器的MATLAB与FPGA实现 (86)
4.1 滤波器概述 (86)
4.1.1 滤波器的分类 (86)
4.1.2 滤波器的特征参数 (88)
4.2 FIR滤波器与IIR滤波器的原理 (89)
4.2.1 FIR滤波器原理 (89)
4.2.2 IIR滤波器原理 (90)
4.2.3 IIR滤波器与FIR滤波器的比较 (90)
4.3 FIR滤波器的MATLAB设计 (91)
4.3.1 利用fir1函数设计FIR滤波器 (91)
4.3.2 利用kaiserord函数设计FIR滤波器 (94)
4.3.3 利用fir2函数设计FIR滤波器 (94)
4.3.4 利用firpm函数设计FIR滤波器 (96)
4.4 IIR滤波器的MATLAB设计 (98)
4.4.1 利用butter函数设计IIR滤波器 (98)
4.4.2 利用cheby1函数设计IIR滤波器 (99)
4.4.3 利用cheby2函数设计IIR滤波器 (100)
4.4.4 利用ellip函数设计IIR滤波器 (100)
4.4.5 利用yulewalk函数设计IIR滤波器 (101)
4.4.6 几种滤波器设计函数的比较 (101)
4.5 FIR滤波器的FPGA实现 (103)
4.5.1 FIR滤波器的实现结构 (103)
4.5.2 采用IP核实现FIR滤波器 (107)
4.5.3 MATLAB仿真测试数据 (112)
4.5.4 仿真测试Verilog HDL的设计 (114)
4.5.5 FPGA实现后的仿真测试 (116)
4.6 IIR滤波器的FPGA实现 (118)
4.6.1 IIR滤波器的结构形式 (118)
4.6.2 级联型结构IIR滤波器的系数量化 (120)
4.6.3 级联型结构IIR滤波器的FPGA实现 (124)
4.6.4 FPGA实现后的仿真测试 (127)
4.7 IIR滤波器的板载测试 (128)
4.7.1 硬件接口电路 (128)
4.7.2 板载测试程序 (129)
4.7.3 板载测试验证 (131)
4.8 小结 (132)
参考文献 (132)
第5章 ASK调制解调技术的FPGA实现 (134)
5.1 ASK调制解调原理 (134)
5.1.1 ASK信号的产生 (134)
5.1.2 ASK信号的解调 (136)
5.1.3 ASK解调的性能 (137)
5.1.4 多进制振幅调制 (138)
5.2 ASK信号的MATLAB仿真 (138)
5.3 ASK信号的FPGA实现 (141)
5.3.1 FPGA实现模型及参数说明 (141)
5.3.2 ASK信号的Verilog HDL设计 (143)
5.3.3 FPGA实现ASK信号后的仿真测试 (144)
5.4 非相干解调法的MATLAB仿真 (146)
5.5 非相干解调法的FPGA实现 (148)
5.5.1 非相干解调法的FPGA实现模型及参数说明 (148)
5.5.2 非相干解调法的Verilog HDL设计 (148)
5.5.3 FPGA实现非相干解调法后的仿真测试 (150)
5.6 符号判决门限的FPGA实现 (151)
5.6.1 确定ASK解调信号的判决门限 (152)
5.6.2 判决门限模块的Verilog HDL实现 (152)
5.6.3 FPGA实现判决门限模块后的仿真测试 (154)
5.7 位同步技术的FPGA实现 (154)
5.7.1 位同步技术的工作原理 (154)
5.7.2 位同步模块的Verilog HDL实现 (157)
5.7.3 双相时钟信号的Verilog HDL实现 (159)
5.7.4 微分鉴相模块的Verilog HDL实现 (160)
5.7.5 单稳态触发器的Verilog HDL实现 (162)
5.7.6 控制分频模块的Verilog HDL实现 (164)
5.7.7 FPGA实现及仿真测试 (165)
5.8 ASK信号解调系统的FPGA实现及仿真 (166)
5.8.1 解调系统的Verilog HDL实现 (166)
5.8.2 完整系统的仿真测试 (168)
5.9 ASK调制解调系统的板载测试 (171)
5.9.1 硬件接口电路 (171)
5.9.2 板载测试程序 (171)
5.9.3 板载测试验证 (174)
5.10 小结 (175)
参考文献 (176)
第6章 FSK调制解调技术的FPGA实现 (177)
6.1 FSK调制解调原理 (177)
6.1.1 2FSK信号的时域表示 (177)
6.1.2 相关系数与频谱特性 (178)
6.1.3 非相干解调法的原理 (180)
6.1.4 相干解调法原理 (182)
6.1.5 解调方法的应用条件分析 (183)
6.2 2FSK信号的MATLAB仿真 (184)
6.2.1 不同调制指数的2FSK信号仿真 (184)
6.2.2 2FSK信号非相干解调的仿真 (185)
6.2.3 2FSK信号相干解调的仿真 (191)
6.3 FSK信号的FPGA实现 (194)
6.3.1 FSK信号的产生方法 (194)
6.3.2 2FSK信号的Verilog HDL实现 (195)
6.3.3 FPGA实现后的仿真测试 (196)
6.4 2FSK信号解调的FPGA实现 (197)
6.4.1 解调模型及参数设计 (197)
6.4.2 2FSK信号解调系统的Verilog HDL实现 (198)
6.4.3 FPGA实现后的仿真测试 (203)
6.5 MSK信号的产生原理 (205)
6.5.1 MSK信号的时域特征 (205)
6.5.2 MSK信号的频谱特性 (206)
6.5.3 MSK信号的产生方法 (207)
6.6 MSK信号的FPGA实现 (209)
6.6.1 实例参数及模型设计 (209)
6.6.2 MSK信号的Verilog HDL实现及仿真 (210)
6.7 MSK信号的解调原理 (211)
6.7.1 延迟差分解调法 (211)
6.7.2 平方环相干解调法 (212)
6.8 MSK信号解调的MATLAB仿真 (214)
6.8.1 仿真模型及参数说明 (214)
6.8.2 MSK信号的平方环相干解调的MATLAB仿真 (214)
6.9 平方环的FPGA实现 (217)
6.9.1 锁相环的工作原理 (217)
6.9.2 平方环的工作原理 (220)
6.9.3 平方环性能参数设计 (221)
6.9.4 平方环的Verilog HDL设计 (223)
6.9.5 FPGA实现后的仿真测试 (227)
6.10 MSK信号解调的FPGA实现 (228)
6.10.1 MSK信号解调环路参数设计 (228)
6.10.2 顶层模块的Verilog HDL设计 (230)
6.10.3 脉冲成形及解调模块的Verilog HDL设计 (234)
6.10.4 MSK信号解调环路FPGA实现后的仿真测试 (236)
6.11 2FSK调制解调的板载测试 (237)
6.11.1 硬件接口电路 (237)
6.11.2 板载测试程序 (238)
6.11.3 板载测试验证 (239)
6.12 小结 (240)
参考文献 (241)
第7章 PSK调制解调技术的FPGA实现 (243)
7.1 DPSK调制解调原理 (243)
7.1.1 DPSK信号的调制原理 (243)
7.1.2 采用Costas环解调DPSK信号 (245)
7.1.3 DPSK调制解调的MATLAB仿真 (246)
7.2 DPSK信号解调的FPGA实现 (249)
7.2.1 Costas环的参数设计 (249)
7.2.2 Costas环的Verilog HDL设计 (251)
7.2.3 FPGA实现后的仿真测试 (254)
7.3 DQPSK调制解调原理 (254)
7.3.1 QPSK调制原理 (254)
7.3.2 双比特码元的差分编/解码原理 (256)
7.3.3 DQPSK信号的解调原理 (257)
7.3.4 DQPSK调制解调的MATLAB仿真 (260)
7.4 DQPSK信号的FPGA实现 (264)
7.4.1 差分编/解码的Verilog HDL设计 (264)
7.4.2 DQPSK信号的Verilog HDL设计 (267)
7.5 DQPSK信号解调的FPGA实现 (272)
7.5.1 极性Costas环的Verilog HDL设计 (272)
7.5.2 FPGA实现后的仿真测试 (276)
7.5.3 跟踪策略和解调性能 (277)
7.5.4 DQPSK信号解调系统的设计 (279)
7.5.5 DQPSK信号解调系统的仿真测试 (282)
7.6 ?/4 QPSK调制解调原理 (283)
7.6.1 ?/4 QPSK7
第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)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。
(3)为了便于在CRD500上进行板载测试验证,对部分工程实例参数进行了适当的调整。
(4)在编写板载测试内容时,发现本书第1版中的部分程序还有需要完善的地方,这次改版对这些程序进行了补充及优化。
(5)根据读者的反馈信息,修改了本书第1版中的一些叙述不当或不准确的地方。
限于作者水平,本书的不足之处在所难免,敬请读者批评指正。欢迎大家就相关技术问题进行交流,或对本书提出改进建议。
技术博客:https://blog.csdn.net/qq_37145225。
产品网店:https://shop574143230.taobao.com/。
交流邮箱:[email protected]。
杜勇
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版的写作了,以满足不同读者的需求。
回顾写作这套图书时的想法,作者显然是受了中学时代阅读的金庸先生的武侠小说的影响,金庸先生的几本经典小说在人物和情节的安排上是一脉相承的,因此,在这套图书的内容安排上也考虑了一定的衔接性。《数字滤波器的MATLAB与FPGA实现》的最后一章讨论的是调制解调方面的内容,一方面涉及了调制解调中的滤波器设计,另一方面简单地介绍了载波同步的知识。《数字通信同步技术的MATLAB与FPGA实现》中介绍的滤波器设计的内容多引自《数字滤波器的MATLAB与FPGA实现》,重点对载波同步、位同步、帧同步等经典的同步技术进行了详细的阐述。滤波器及同步技术又是调制解调技术中的核心功能电路。
李开复先生在他的博客中有下面这段话:
西方有一句名言,“听过的我会忘记,看过的我能记得,做过的我才理解”。在学校学习时,一定要做到融会贯通,不能只死背书本,一定要动手实践。不但要学习知识,还要知道应该如何使用知识。融会贯通意味着高校培养出的学生必须善于将学习到的知识应用于实践。在IT领域,许多公司都希望加入公司的毕业生拥有10万行代码以上的编程经验(例如,在Google,很多应聘者都因为实际动手能力不足而没能通过面试),但不少计算机相关专业的中国学生告诉我说,他们在学校的四年时间里,自己真正动手编写过的程序还不超过1000行。这一方面说明了一些学校在教学时不重视对学生实践能力的培养,另一方面也说明了很多学生只知道学习“死”的知识,而不知道去寻找或创造机会来将学到的知识用在具体的实践中。
上面这段话道出了绝大多数刚毕业的大学生的状态。回想自己刚离开大学校园后,在初次从事具体的电路设计时所感觉到的茫然仍然清晰如昨日!
作为一名电子通信领域的技术人员,在从业之初通常都会遇到类似的困惑:如何将从教材中所学到的理论知识与实际中的工程设计结合起来?如何将这些教材中的理论知识转换成实际的电路?绝大多数的数字通信类教材对通信原理的讲解都十分透彻,但理论与实践之间显然需要有一座可以顺利通过的桥梁。一个常用的方法是通过采用MATLAB等工具进行软件仿真来加深对理论知识的理解,但更好的方法显然是直接参与工程的设计与实现。
然而,在校学生极少有机会参与实际工程的设计,在工作中往往感到学校所学的理论知识很难与实际的工程联系起来。教科书上讲解的是原理性的内容,即使可以很好地解答教科书中的习题,或者能够熟练地推导书中的公式,但在进行工程设计时,如何用具体的电路或硬件平台来实现这些理论知识及公式,仍然是广大工程师面临的一个巨大难题。对于数字通信专业来讲,由于其涉及的理论知识比较复杂,在真正进行工程设计时会发现根本无从下手。采用MATLAB、System View等软件对通信理论进行仿真,虽然可以直观地验证算法的正确性,并查看仿真结果,但这类软件的仿真仅仅停留在算法或模型上,与真正的工程设计及实现完全是两个不同的概念。FPGA很好地解决了这一问题。FPGA本来就是基于工程应用的,其仿真技术可以很好地仿真实际的工作情况。尤其是时序仿真技术,在计算机上通过了时序仿真的程序,几乎不再需要修改就可以直接应用到工程中。这种设计、验证、仿真的一体化,可以极好地将理论知识与工程实践完美地结合起来,从而提高学习的兴趣。
FPGA具有快速的并行运算能力,以及独特的组成结构,已成为电子通信领域必不可少的实现平台之一。本书的目的正是架起一座理论知识与工程实践之间的桥梁,通过具体的设计实例,详细讲解从理论到工程实现的方法、步骤和过程,以便工程技术人员能够尽快掌握利用FPGA实现数字通信技术的方法。
目前,市场上已有很多介绍ISE、Quartus II等FPGA开发环境,以及VHDL、Verilog HDL等硬件描述语言的图书。如果我们仅仅使用FPGA来实现一些数字逻辑电路,或者理论性不强的控制电路,掌握FPGA开发工具及VHDL的语法就可以开始工作了。数字通信的理论性要强得多,采用FPGA实现数字通信技术的前提条件是要对理论知识有深刻的理解。在理解理论知识之后,关键的问题是根据这些理论知识,利用FPGA的特点,找到合适的算法实现结构,厘清工程实现的思路,并采用VHDL、Verilog HDL等硬件描述语言进行实现。因此,要想顺利地读懂本书,读者除了要掌握数字通信的理论知识,还需要对FPGA的开发环境和硬件描述语言有一定的了解。
在本书的写作过程中,作者兼顾了数字通信的理论知识和工程设计过程的完整性,重点突出FPGA设计、结构、实现的细节,以及仿真测试方法。在讲解理论知识时,重点从工程应用的角度进行介绍,主要介绍工程设计时必须掌握和理解的理论知识,并且结合FPGA的特点进行讨论,以便读者能够尽快找到理论知识与工程实践之间的结合点。在讲解具体工程实例的FPGA实现时,不仅给出了完整的程序代码,还从思路和结构上对程序代码进行详细的分析和说明。根据作者的理解,针对一些似是而非的概念,结合具体工程实例的仿真测试加以阐述,希望能够为读者提供更多有用的参考。相信读者按照本书讲解的步骤完成一个个具体的工程实例时,会逐步感觉到理论知识与工程实践之间完美结合的畅快,对理论知识的理解也必将越来越深刻,就更容易构建起理论知识与工程实践之间的桥
评论
还没有评论。