新書推薦:
《
简帛时代与早期中国思想世界(上下册)(王中江著作系列)
》
售價:NT$
1400.0
《
进化主义在中国的兴起(王中江著作系列)
》
售價:NT$
950.0
《
不废风雅 生活的意趣(汪曾祺风雅意趣妙文)
》
售價:NT$
280.0
《
东亚世界形成史论(新版)
》
售價:NT$
490.0
《
奶奶的半个心愿 “课本里的作家” 中考热点作家孙道荣2024年全新散文集
》
售價:NT$
190.0
《
天生坏种:罪犯与犯罪心理分析
》
售價:NT$
445.0
《
新能源材料
》
售價:NT$
290.0
《
传统文化有意思:古代发明了不起
》
售價:NT$
199.0
|
內容簡介: |
本书以Xilinx公司的FPGA为开发平台,采用MATLAB及VHDL语言为开发工具,详细阐述数字通信调制解调技术的FPGA实现原理、结构、方法以及仿真测试过程,并通过大量工程实例分析FPGA实现过程中的具体技术细节。主要包括设计语言及环境介绍、FPGA实现数字信号处理基础、滤波器的FPGA实现、ASK调制解调技术的FPGA实现、FSK调制解调技术的FPGA实现、PSK调制解调技术的FPGA实现、QAM调制解调技术的FPGA实现以及DSSS信号调制解调技术的FPGA实现等内容。
|
關於作者: |
杜勇,四川省广安市人,高级工程师。1999年于湖南大学获电子工程专业学士学位,2005年于国防科学技术大学获信息与通信工程专业硕士学位。主要从事数字信号处理、无线通信以及FPGA应用技术研究。发表学术论文十余篇,出版数字滤波器的MATLAB与FPGA实现、数字通信同步技术的MATLAB与FPGA实现、数字调制解调技术的MATLAB与FPGA实现、锁相环技术原理及FPGA实现等多部著作。
|
目錄:
|
第1章 数字通信及FPGA概述(1)
1.1 数字通信系统概述(2)
1.1.1 数字通信的一般处理流程(2)
1.1.2 本书讨论的通信系统模型(4)
1.1.3 数字通信的特点及优势(5)
1.1.4 数字通信的发展概述(7)
1.2 数字通信中的几个基本概念(9)
1.2.1 与频谱相关的概念(9)
1.2.2 带宽是如何定义的(12)
1.2.3 采样与频谱搬移(15)
1.2.4 噪声与信噪比(19)
1.3 FPGA的基础知识(21)
1.3.1 从晶体管到FPGA(21)
1.3.2 FPGA的发展趋势(24)
1.3.3 FPGA的组成结构(26)
1.3.4 FPGA的工作原理(30)
1.4 FPGA与其他处理平台的比较(31)
1.4.1 ASIC、DSP及ARM的特点(32)
1.4.2 FPGA的特点及优势(33)
1.5 Xilinx器件简介(34)
1.5.1 Xilinx器件概况(34)
1.5.2 Spartan系列器件(36)
1.5.3 Virtex系列器件(37)
1.6 FPGA信号处理板CXD301(39)
1.7 小结(40)
参考文献(40)
第2章 设计语言及环境介绍(43)
2.1 HDL语言简介(44)
2.1.1 HDL语言的特点及优势(44)
2.1.2 选择VHDL还是Verilog(45)
2.2 VHDL语言基础(46)
2.2.1 程序结构(47)
2.2.2 数据类型(49)
2.2.3 数据对象(52)
2.2.4 运算符(52)
2.2.5 VHDL语句(57)
2.3 FPGA开发工具及设计流程(63)
2.3.1 ISE开发套件(63)
2.3.2 ModelSim仿真软件(67)
2.3.3 Synplicity综合软件(69)
2.3.4 FPGA设计流程(70)
2.4 MATLAB软件(72)
2.4.1 MATLAB软件简介(72)
2.4.2 常用的信号处理函数(75)
2.5 MATLAB与ISE的数据交换(81)
2.6 小结(82)
参考文献(82)
第3章 FPGA实现数字信号处理基础(83)
3.1 FPGA中数的表示(84)
3.1.1 莱布尼兹与二进制(84)
3.1.2 定点数表示(85)
3.1.3 浮点数表示(86)
3.2 FPGA中数的运算(89)
3.2.1 加减法运算(89)
3.2.2 乘法运算(92)
3.2.3 除法运算(94)
3.2.4 有效数据位的计算(95)
3.3 有限字长效应(97)
3.3.1 字长效应的产生因素(97)
3.3.2 AD转换的字长效应(98)
3.3.3 系统运算中的字长效应(99)
3.4 FPGA中的常用处理模块(101)
3.4.1 乘法器模块(101)
3.4.2 除法器模块(106)
3.4.3 浮点运算模块(109)
3.4.4 滤波器模块(111)
3.4.5 数字频率器模块(113)
3.5 小结(115)
参考文献(116)
第4章 滤波器的MATLAB与FPGA实现(117)
4.1 滤波器概述(118)
4.1.1 滤波器的分类(118)
4.1.2 滤波器的特征参数(120)
4.2 FIR与IIR滤波器的原理(120)
4.2.1 FIR滤波器原理(120)
4.2.2 IIR滤波器原理(122)
4.2.3 IIR与FIR滤波器的比较(122)
4.3 FIR滤波器的MATLAB设计(123)
4.3.1 采用fir1函数设计(123)
4.3.2 采用kaiserord函数设计(126)
4.3.3 采用fir2函数设计(126)
4.3.4 采用firpm函数设计(128)
4.4 IIR滤波器的MATLAB设计(130)
4.4.1 采用butter函数设计(130)
4.4.2 采用cheby1函数设计(131)
4.4.3 采用cheby2函数设计(132)
4.4.4 采用ellip函数设计(132)
4.4.5 采用yulewalk函数设计(133)
4.4.6 几种设计函数的比较(133)
4.5 滤波器设计分析工具(135)
4.6 FIR滤波器的FPGA实现(136)
4.6.1 量化滤波器系数(136)
4.6.2 FIR滤波器的实现结构(138)
4.6.3 采用IP核实现FIR滤波器(142)
4.6.4 MATLAB仿真测试数据(148)
4.6.5 测试激励的VHDL设计(149)
4.6.6 FPGA实现后的仿真测试(151)
4.7 IIR滤波器的FPGA实现(152)
4.7.1 IIR滤波器的结构形式(152)
4.7.2 量化级联型结构的系数(155)
4.7.3 级联型结构的FPGA实现(158)
4.7.4 FPGA实现后的测试仿真(162)
4.8 滤波器的板载测试(162)
4.8.1 硬件接口电路(162)
4.8.2 板载测试程序(163)
4.8.3 板载测试验证(169)
4.9 小结(170)
参考文献(170)
第5章 ASK调制解调技术的实现(171)
5.1 ASK信号的调制解调原理(172)
5.1.1 二进制振幅调制信号的产生(172)
5.1.2 二进制振幅调制信号的解调(173)
5.1.3 二进制振幅调制系统的性能(175)
5.1.4 多进制振幅调制(175)
5.2 ASK调制信号的MATLAB仿真(176)
5.3 ASK调制信号的FPGA实现(179)
5.3.1 FPGA实现模型及参数说明(179)
5.3.2 ASK调制信号的VHDL设计(181)
5.3.3 FPGA实现后的仿真测试(182)
5.4 ASK解调技术的MATLAB仿真(184)
5.5 ASK解调技术的FPGA实现(186)
5.5.1 FPGA实现模型及参数说明(186)
5.5.2 ASK信号解调的VHDL设计(186)
5.5.3 FPGA实现后的仿真测试(188)
5.6 符号判决门限的FPGA实现(190)
5.6.1 确定ASK解调后的判决门限(190)
5.6.2 判决门限模块的VHDL设计(191)
5.6.3 FPGA实现后的仿真测试(193)
5.7 锁相环位同步技术的FPGA实现(194)
5.7.1 位同步技术的工作原理(194)
5.7.2 位同步顶层模块的VHDL设计(196)
5.7.3 双相时钟信号的VHDL设计(198)
5.7.4 鉴相模块的VHDL设计(199)
5.7.5 控制模块的VHDL设计(201)
5.7.6 分频模块的VHDL设计(203)
5.7.7 FPGA实现后的仿真测试(204)
5.8 ASK解调系统的FPGA实现及仿真(204)
5.8.1 完整解调系统的VHDL设计(204)
5.8.2 完整系统的仿真测试(207)
5.9 ASK调制解调的板载测试(209)
5.9.1 硬件接口电路(209)
5.9.2 板载测试程序(209)
5.9.3 板载测试验证(214)
5.10 小结(215)
参考文献(215)
第6章 FSK调制解调技术的实现(217)
6.1 FSK信号的调制解调原理(218)
6.1.1 FSK信号的时域表示(218)
6.1.2 相关系数与频谱特性(219)
6.1.3 非相干解调原理(221)
6.1.4 相干解调原理(222)
6.1.5 解调方法的应用条件分析(224)
6.2 FSK调制解调的MATLAB仿真(225)
6.2.1 不同调制度的FSK信号仿真(225)
6.2.2 非相干解调FSK仿真(226)
6.2.3 相干解调FSK仿真(231)
6.3 FSK调制信号的FPGA实现(234)
6.3.1 FSK信号的产生方法(234)
6.3.2 FSK调制信号的VHDL设计(235)
6.3.3 FPGA实现后的仿真测试(237)
6.4 FSK解调的FPGA实现(238)
6.4.1 解调模型及参数设计(238)
6.4.2 解调FSK信号的VHDL设计(239)
6.4.3 FPGA实现后的仿真测试(243)
6.5 MSK信号产生原理(246)
6.5.1 MSK信号时域特征(246)
6.5.2 MSK信号频谱特性(246)
6.5.3 MSK信号的产生方法(248)
6.6 MSK调制信号的FPGA实现(249)
6.6.1 实例参数及模型设计(249)
6.6.2 MSK调制信号的VHDL设计及仿真(250)
6.7 MSK解调原理(255)
6.7.1 延迟差分解调(255)
6.7.2 平方环相干解调(257)
6.8 MSK解调的MATLAB仿真(258)
6.8.1 仿真模型及参数说明(258)
6.8.2 平方环解调MSK的MATLAB仿真(258)
6.9 平方环的FPGA实现(261)
6.9.1 锁相环的工作原理(261)
6.9.2 平方环的工作原理(264)
6.9.3 平方环路性能参数设计(265)
6.9.4 平方环的VHDL设计(268)
6.9.5 FPGA实现后的仿真测试(272)
6.10 MSK解调的FPGA实现(273)
6.10.1 MSK解调环路参数设计(273)
6.10.2 顶层模块的VHDL设计(275)
6.10.3 脉冲成形及解调模块的VHDL设计(279)
6.10.4 FPGA实现后的仿真测试(281)
6.11 MSK调制解调的板载测试(283)
6.11.1 硬件接口电路(283)
6.11.2 板载测试程序(283)
6.11.3 板载测试验证(287)
6.12 小结(288)
参考文献(289)
第7章 PSK调制解调技术的实现(291)
7.1 DPSK信号的调制解调原理(292)
7.1.1 DPSK信号的调制原理(292)
7.1.2 Costas环解调DPSK信号(293)
7.1.3 DPSK调制解调的MATLAB仿真(295)
7.2 DPSK解调的FPGA实现(298)
7.2.1 环路性能参数设计(298)
7.2.2 Costas环的VHDL设计(300)
7.2.3 FPGA实现后的仿真测试(303)
7.3 DQPSK信号的调制解调原理(303)
7.3.1 QPSK信号的调制原理(303)
7.3.2 双比特码元差分编解码原理(305)
7.3.3 DQPSK信号解调原理(306)
7.3.4 DQPSK调制解调的MATLAB仿真(309)
7.4 DQPSK调制信号的FPGA实现(313)
7.4.1 差分编解码的VHDL设计(313)
7.4.2 DQPSK调制信号的VHDL设计(316)
7.5 DQPSK解调的FPGA实现(321)
7.5.1 极性Costas环的VHDL设计(321)
7.5.2 FPGA实现后的仿真测试(326)
7.5.3 调整跟踪策略获取良好的跟踪性能(327)
7.5.4 完整的DQPSK解调系统设计(328)
7.5.5 DQPSK解调系统的仿真测试(331)
7.6 ?4 QPSK调制解调原理(332)
7.6.1 ?4 QPSK信号的调制原理(332)
7.6.2 匹配滤波器与成形滤波器(334)
7.6.3 ?4 QPSK信号的差分解调原理(339)
7.6.4 ?4 QPSK调制解调的MATLAB仿真(340)
7.7 ?4 QPSK调制解调的FPGA实现(344)
7.7.1 基带编码的VHDL设计(344)
7.7.2 差分解调的VHDL设计(346)
7.7.3 FPGA实现后的仿真测试(351)
7.8 PS
|
內容試閱:
|
为什么要写这本书
为什么要写这本书?或者说,为什么要写数字通信的MATLAB与FPGA实现技术相关内容的书?记得几年前电子工业出版社首次出版《数字滤波器的MATLAB与FPGA实现》一书时,我在前言中提到写作的原因主要有三条:其一,是FPGA技术在电子通信领域得到了越来越广泛的应用,并已逐渐成为电子产品实现的首选方案;其二,是国内市场上专门讨论如何采用FPGA实现数字通信技术的书籍相对欠缺;其三,是数字通信技术本身十分复杂,关键技术较多,在一本书中全面介绍数字通信技术的FPGA实现难免有所遗漏,且内容难以翔实。因此,根据作者的从业经验,将数字通信技术的关键技术大致分为滤波器技术、同步技术和解调技术三种,并尝试着先写滤波器技术,再逐渐完成其他两项关键技术的写作。在广大读者的支持和鼓励下,总算完成了《数字通信同步技术的MATLAB与FPGA实现》、《数字调制解调技术的MATLAB与FPGA实现》两本书。后来又根据读者的反馈要求,先后出版了数字滤波器、数字通信同步技术、数字调制解调技术几本书的AlteraVerilog版,以及专门讨论锁相环技术的《锁相环技术原理及FPGA实现》。
数字通信的MATLAB与FPGA实现的系列著作出版后,陆续通过邮件或博客的方式收到广大读者的反馈意见。一些读者直接通过邮件告知书中的内容对工作中提供的直接或间接的帮助;一些读者提出了很多中肯的有建设性的意见和建议;更多的读者通过邮件交流书中的相关设计问题;还有一些读者直接指出了书中一些描述不准确的地方,以及部分文字上的错误(这些勘误都已在我的技术博客中发布)。
由于最初用Xilinx VHDL平台(相对于AlteraVerilog,我更早熟悉Xilinx VHDL平台)写数字通信的MATLAB与FPGA实现的系列著作时,并没有规划要写这个系列的AlteraVerilog版本,因此并没有在书名上增加XilinxVHDL版的字样,后来写AlteraVerilog版本时,为以示区别,在书名上增加了AlteraVerilog版的字样。时间过得很快,五年多的时间过去了,应读者需求,为进一步提高广大读者学习的效率,作者精心设计了与XilinxVHDL版本系列图书配套使用的FPGA信号处理板CXD301,并利用这次改版的时机增加了书中实例的板载测试内容,同时将书名增加了XilinxVHDL版的字样。
与《数字调制解调技术的MATLAB与FPGA实现》前一版相比,此次改版主要涉及以下几个方面:
(1)对有FPGA工程实例的章节,增加了主要工程实例的CXD301板载测试内容。
(2)FPGA工具更换为ISE 14.7,仿真工具更换为ModelsimSE 10.1,MATLAB软件更换为Matlab_R2014a版本。
(3)为便于在CXD301处理板上进行板载测试验证,对部分工程实例参数进行了适当调整。
(4)在编写板载测试内容时,发现原书中的部分程序还有需要完善的地方,改版过程中对配套开发资源包中的程序文件进行了补充及优化。
(5)改写了第6章MSK调制信号的FPGA实现方法。
(6)更正了书中一些叙述不当的地方,大多是读者反馈回来的问题。
(7)对读者提问较多的地方叙述得更加详细。
通常来讲,一名电子通信专业的技术人员,在从业之初都会遇到类似的困惑:如何将从教材中学到的理论与实际中的工程设计结合起来?如何能够将这些教材中的理论转换成实际的电路?绝大多数数字通信类教材对通信的原理讲解十分透彻,但理论与实践之间显然需要有一座可以顺利通过的桥梁。一个常用的方法是通过采用MATLAB等工具进行软件仿真的方法来加深对理论的理解,但更好的方法显然是直接参与工程的设计与实现。
然而,刚毕业的工科院校学生极少有机会参加实际工程设计,工作中往往感到学校所学的理论知识很难与实际工程产品的实现联系起来。教科书上多是讲解通信原理性的内容,即使可以很好地解答教材后面的习题,或者说能够熟练地对书中的基本公式进行推导,在实际进行产品设计时,如何将这些理论及公式用具体的电路或硬件平台实现出来,仍然是摆在广大工程师面前的一道难关。尤其对于数字通信专业来讲,由于涉及的理论知识比较复杂,真正进行工程设计时才发现根本无从下手。采用MATLAB、System View等软件对通信理论进行仿真,虽然可以直观地验证算法的正确性,并查看仿真结果,但这类软件的仿真毕竟只停留在算法或模型的仿真上,与真正的工程设计及实现完全是两个不同的概念。FPGA技术很好地解决了这一问题。FPGA技术本来就是基于工程应用的技术,其仿真技术可以很好地仿真产品实际的工作情况,尤其是时序仿真技术,在计算机上通过了时序仿真的程序设计,几乎不再需要修改就可以直接应用到工程中。这种设计、验证、仿真的一体化方式可以极好地将理论与工程应用结合起来,从而提高学习的兴趣。
FPGA技术因其快速的并行运算能力,以及独特的组成结构,在电子通信领域已成为必不可少的实现平台之一。本书的目的正是架起一座教科书理论与工程设计实践之间的桥梁,通过具体的设计实例,详细讲解从理论到工程实现的方法、步骤和过程,以便于工程技术人员尽快掌握利用FPGA平台实现数字通信技术的方法。
目前,市场上已有很多介绍ISE、QuartusⅡ等FPGA开发环境,以及VHDL、Verilog HDL等硬件编程语言的书籍。当然,我们仅仅使用FPGA来实现一些数字逻辑电路,或者理论性不强的控制电路设计,掌握FPGA开发工具及VHDL语法就可以开始工作了。但是数字通信技术的理论性要强得多,采用FPGA平台实现数字通信技术的前提条件是对理论知识首先要有深刻的理解。在理解理论知识的基础上,关键的问题是根据这些通信理论或公式,利用FPGA的特点,找到合适的算法实现结构,理清工程实现的思路,并采用VHDL等硬件编程语言对其进行正确的实现。因此,要顺利地读懂本书,掌握用FPGA实现数字通信技术的知识和技能,读者还需要对FPGA的开发环境和设计语言有一定的了解。
作者在写作本书的过程中,兼顾数字通信技术的基础理论,以及工程设计过程的完整性,重点突出FPGA设计方法、结构、实现细节和仿真测试方法。在讲解理论知识的时候,重点从工程应用的角度进行介绍,主要介绍工程设计时必须掌握和理解的知识点,并且结合FPGA的特点进行讨论,便于读者尽快地找到理论与工程实现之间的结合点。在讲解实例的FPGA实现时,不仅绝大多数实例给出了完整的VHDL程序代码,并且从思路和结构上对每段代码均进行了详细的分析和说明。根据作者的理解,针对一些似是而非的概念,结合工程实例的仿真测试加以阐述,希望能够对读者提供更多有用的参考。相信读者按照书中讲解的步骤完成一个个工程实例时,会逐步感觉到理论与工程实现之间完美结合的畅快。随着读者掌握的工程实现技能的提高,对数字通信技术理论知识的理解也必将越来越深刻,重新阅读以前学过的数字通信原理时,头脑里就更容易构建起理论与工程实现之间的桥梁。
本书的内容安排
第1章首先对数字通信技术的概念及FPGA基础知识进行了简要介绍。本章耗费一些笔墨来讲述一些最基本的概念,一则是为了使全书所讲述的内容更成体系,二则想重申一个老掉牙的理由基本的概念永远是最重要的。在介绍这些基本概念时,尽量避免使用一些复杂的公式及理论推导,更多地从直观角度来讨论。根据作者自身的经历和对数字通信的理解,对频谱、带宽、采样、信噪比等最基本的定义做了较为全面的阐述,希望能够对读者加深数字通信系统原理的理解有所帮助。大概是由于职业的原因,长期以来都对那些伟大的技术创新者备感敬意,因此在写FPGA发展历程时,更多地从人物的角度去描述那些科技创新的故事,这些故事确实非常有趣,那些伟大的科学家和技术创新者从来都不缺乏鲜明的个性。
采用MATLAB及FPGA来实现数字通信的相关技术,设计工程师首先需要熟练掌握一整套设计工具。设计语言及开发环境就是工程师手中的装备,要设计出完美的产品需要很多因素之间的相互配合,而掌握好手中的开发工具无疑是最基本的因素之一。第2章主要对本书所使用的设计语言和开发环境进行简要介绍。之所以说是简要介绍,因为这一整套的开发工具本身的功能十分强大,每一种工具都有种类繁多的专门著述进行详细阐述。随着工程师设计经验的积累,设计水平的提高,越能更全面地掌握设计工具的特点,从而更好地发挥设计工具的性能,以最小的代价设计出理想的产品。好比一把宝剑,只有握在高手的手中才能发挥出最大的威力。
第3章介绍FPGA中数的表示方法、数的运算、有限字长效应及常用的数字信号处理模块。数字信号在FPGA等硬件系统中实现时,因受寄存器长度的限制,不可避免地产生了有效字长效应。设计工程师必须了解字长效应对数字系统可能带来的影响,并在实际设计中通过仿真来确定最终的量化位数、寄存器长度等内容。本章最后对几种常用的运算模块IP核进行介绍,详细阐述了各IP核控制参数的设置方法,并给出了几个简单的模块应用实例。IP核的应用在FPGA设计中十分普遍,尤其在数字信号处理领域,采用设计工具提供的IP核进行设计,不仅可以提高设计效率,而且可以保证设计的性能。在进行FPGA工程设计时,工程师可以先浏览一下选定目标器件所能提供的IP核,便于通过使用IP核来减少设计工作量并提高系统性能。当然,工程师也可以根据设计需要,根据是否具有相应的IP核来选择目标器件。这一章讨论的都是一些非常基础的知识,但正因为是基础,所以显得尤其重要。其中讨论的有效数据位运算,以及字长效应等内容在后续的工程实例讲解中都会多次涉及,因此建议读者不要急于阅读后续章节的工程实例讲解,先切实练好基本功,才可以达到事半功倍的效果。
对于从事电子通信行业的技术人员来说,滤波器是一个再普通不过的概念了。数字滤波器本身已成为一个专业性很强的研究方向,第4章所要讲述的仅仅是最常用的FIR(Finite Impu
|
|