数字通信同步技术的MATLAB与FPGA实现
2013-4
电子工业出版社
杜勇
无
《数字通信同步技术的MATLAB与FPGA实现》以Xilinx公司的FPGA为开发平台,采用MATLAB及VHDL语言为开发工具,详细阐述数字通信同步技术的FPGA实现原理、结构、方法以及仿真测试过程,并通过大量工程实例分析FPGA实现过程中的具体技术细节。主要包括FPGA实现数字信号处理基础、锁相环技术原理、载波同步、自动频率控制、位同步、帧同步技术的设计与实现等内容。
杜勇,四川省广安市人,高级工程师。1999年于湖南大学电子工程专业获学士学位,2005年于国防科学技术大学信息与通信工程专业获硕士学位。主要从事数字信号处理、无线通信以及FPGA应用技术研究。发表学术论文十余篇,出版《数字滤波器的MATLAB与FPGA实现》等著作3部。
第1章同步技术的概念及FPGA基础1 1.1数字通信中的同步技术2 1.2同步技术的实现方法4 1.2.1两种不同的实现原理4 1.2.2常用的工程实现途径5 1.3FPGA概念及其在信号处理中的应用6 1.3.1基本概念及发展历程6 1.3.2FPGA的结构和工作原理8 1.3.3FPGA在数字信号处理中的应用14 1.4Xilinx器件简介15 1.4.1Xilinx器件概况15 1.4.2Spartan系列器件17 1.4.3Virtex系列器件18 1.5设计语言及环境简介19 1.5.1VHDL语言19 1.5.2ISE环境及综合仿真工具22 1.5.3FPGA设计流程28 1.5.4MATLAB软件31 1.5.5MATLAB与ISE的数据交互34 1.6小结35 第2章FPGA实现数字信号处理基础37 2.1FPGA中数的表示38 2.1.1莱布尼兹与二进制38 2.1.2定点数表示39 2.1.3浮点数表示40 2.2FPGA中数的运算43 2.2.1加/减法运算43 2.2.2乘法运算46 2.2.3除法运算48 2.2.4有效数据位的计算49 2.3有限字长效应51 2.3.1字长效应的产生因素51 2.3.2A/D变换的字长效应52 2.3.3系统运算中的字长效应53 2.4FPGA中的常用处理模块55 2.4.1乘法器模块55 2.4.2除法器模块60 2.4.3浮点运算模块62 2.4.4滤波器模块64 2.4.5数字频率器模块67 2.5小结68 第3章锁相技术原理及应用71 3.1锁相环的工作原理72 3.1.1锁相环路的模型72 3.1.2锁定与跟踪的概念73 3.1.3环路的基本性能要求74 3.2锁相环的组成75 3.2.1鉴相器75 3.2.2环路滤波器76 3.2.3压控振荡器77 3.3锁相环路的动态方程77 3.3.1非线性相位模型77 3.3.2线性相位模型79 3.3.3环路的传递函数80 3.4锁相环路的性能分析82 3.4.1暂态信号响应82 3.4.2环路的频率响应84 3.4.3环路的稳定性86 3.4.4非线性跟踪性能87 3.4.5环路的捕获性能89 3.4.6环路的噪声性能90 3.5锁相环路的应用92 3.5.1环路的两种跟踪状态92 3.5.2调频解调器93 3.5.3调相解调器94 3.5.4调幅信号的相干解调94 3.5.5锁相调频器95 3.5.6锁相调相器95 3.6小结96 第4章载波同步的FPGA实现97 4.1载波同步的原理98 4.1.1载波同步的概念及实现方法98 4.1.2锁相环的工作方式99 4.2锁相环路的数字化模型100 4.2.1数字鉴相器100 4.2.2数字环路滤波器101 4.2.3数字控制振荡器102 4.2.4数字环路的动态方程103 4.3输入信号建模与仿真104 4.3.1工程实例需求104 4.3.2输入信号模型105 4.3.3输入信号的MATLAB仿真107 4.4载波同步环的参数设计109 4.4.1总体性能参数设计110 4.4.2数字鉴相器设计111 4.4.3环路滤波器及数控振荡器设计114 4.5载波同步环的FPGA实现116 4.5.1顶层模块的VHDL实现116 4.5.2IIR低通滤波器的VHDL实现119 4.5.3环路滤波器的VHDL实现123 4.5.4同步环路的FPGA实现125 4.6载波同步环的仿真测试126 4.6.1测试激励的VHDL设计126 4.6.2单载波输入信号的仿真测试129 4.6.3调幅波输入信号的仿真测试133 4.6.4关于载波环路参数的讨论136 4.7小结138 第5章抑制载波同步的FPGA实现139 5.1抑制载波同步的原理140 5.1.1平方环工作原理140 5.1.2同相正交环工作原理141 5.1.3判决反馈环工作原理142 5.2输入信号建模与仿真144 5.2.1工程实例需求144 5.2.2DPSK调制原理及信号特征144 5.2.3DPSK信号传输模型及仿真145 5.3平方环的FPGA实现147 5.3.1改进的平方环原理147 5.3.2环路性能参数设计148 5.3.3带通滤波器设计149 5.3.4顶层模块的VHDL实现151 5.3.5带通滤波器的VHDL实现155 5.3.6其他模块的VHDL实现159 5.3.7FPGA实现后的仿真测试160 5.4同相正交环的FPGA实现162 5.4.1环路性能参数设计162 5.4.2低通滤波器VHDL实现163 5.4.3其他模块的VHDL实现165 5.4.4顶层模块的VHDL实现165 5.4.5FPGA实现后的仿真测试168 5.4.6同相支路的判决及码型变换169 5.5判决反馈环的FPGA实现171 5.5.1环路性能参数设计171 5.5.2顶层模块的VHDL实现172 5.5.3积分判决模块的VHDL实现176 5.5.4FPGA实现后的仿真测试178 5.6小结179 第6章自动频率控制的FPGA实现181 6.1自动频率控制的概念182 6.2最大似然频偏估计的FPGA实现183 6.2.1最大似然频偏估计的原理183 6.2.2最大似然频偏估计的MATLAB仿真185 6.2.3频偏估计的FPGA实现方法187 6.2.4CORDIC核的使用189 6.2.5顶层文件的VHDL实现192 6.2.6频偏估计模块的VHDL实现195 6.2.7FPGA实现及仿真测试198 6.3基于FFT载频估计的FPGA实现200 6.3.1离散傅里叶变换200 6.3.2FFT算法原理及MATLAB仿真202 6.3.3FFT核的使用204 6.3.4输入信号建模与MATLAB仿真207 6.3.5基于FFT载频估计的VHDL实现208 6.3.6FPGA实现及仿真测试211 6.4FSK信号调制解调原理212 6.4.1数字频率调制213 6.4.2FSK信号的MATLAB仿真214 6.4.3FSK相干解调原理217 6.4.4AFC环解调FSK信号的原理218 6.5AFC环的FPGA实现220 6.5.1环路参数设计220 6.5.2顶层模块的VHDL实现222 6.5.3鉴频器模块的VHDL实现225 6.5.4FPGA实现及仿真测试226 6.6小结227 第7章位同步技术的FPGA实现229 7.1位同步的概念及实现方法230 7.1.1位同步的概念230 7.1.2滤波法提取位同步231 7.1.3数字锁相环位同步法232 7.2微分型位同步的FPGA实现234 7.2.1微分型位同步的原理234 7.2.2顶层模块的VHDL实现235 7.2.3双相时钟信号的VHDL实现238 7.2.4微分鉴相模块的VHDL实现240 7.2.5单稳触发器的VHDL实现241 7.2.6控制及分频模块的VHDL实现243 7.2.7位同步形成及移相模块的VHDL实现244 7.2.8FPGA实现及仿真测试246 7.3积分型位同步的FPGA实现248 7.3.1积分型位同步的原理248 7.3.2顶层模块的VHDL实现250 7.3.3积分模块的VHDL实现254 7.3.4鉴相模块的VHDL实现255 7.3.5FPGA实现及仿真测试256 7.4改进位同步技术的FPGA实现258 7.4.1正交支路积分输出门限判决法258 7.4.2数字式滤波器法的工作原理260 7.4.3随机徘徊滤波器的VHDL实现260 7.4.4随机徘徊滤波器的仿真测试262 7.4.5改进的数字滤波器工作原理263 7.4.6改进滤波器的VHDL实现264 7.5小结266 第8章帧同步技术的FPGA实现267 8.1异步传输与同步传输的概念268 8.1.1异步传输的概念268 8.1.2同步传输的概念269 8.1.3异步传输与同步传输的区别269 8.2起止式同步的FPGA实现270 8.2.1RS—232串口通信协议270 8.2.2顶层模块的VHDL实现272 8.2.3时钟模块的VHDL实现274 8.2.4数据接收模块的VHDL实现276 8.2.5数据发送模块的VHDL实现278 8.2.6FPGA实现及仿真测试280 8.3帧同步码组及其检测原理283 8.3.1帧同步码组的选择283 8.3.2间隔式插入法的检测原理284 8.3.3连贯式插入法的检测原理285 8.3.4帧同步的几种状态286 8.4连贯式插入法帧同步的FPGA实现287 8.4.1实例要求及总体模块设计287 8.4.2搜索模块的VHDL实现及仿真290 8.4.3校核模块的VHDL实现及仿真293 8.4.4同步模块的VHDL实现及仿真298 8.4.5帧同步系统的FPGA实现及仿真303 8.5小结304 参考文献305
版权页: 插图: 对于环路滤波器来说,与例4—1不同的是其输入数据位宽由25比特增加到了29比特,程序中的相应信号变量的数据位宽也需要相应增加4比特。 由于低通滤波器及环路滤波器的VHDL程序代码与例4—1中的代码只有少许改动,因此本节不再给出完整的程序清单,读者可以在本书配套光盘的“Chapter_5\E5_Dpsk\E5 1SquareLoop”目录下查阅平方环载波提取系统的完整FPGA工程文件。 5.3.7 FPGA实现后的仿真测试 编写完整个平方环载波提取系统的VHDL代码,经测试后就可以进行FPGA实现了。在ISE环境中为工程添加时序约束文件SquareLoop.ucf,并在约束文件中添加clk的约束条件为32 Mnz。FPGA实现后,可以在ISE界面十分方便地查看整个平方环系统所占用的硬件资源及最高系统运算速度。其中,寄存器资源(Slice Registers)占用了823个(7%);查找表资源(Slice LUTs)占用了1322个(23%);存储块资源(RAMB8BWERs)占用了1个(1%);乘法器DSP资源(DSP48Als)占用了3个(18%);全局时钟资源(BuFG/BuFGMuxs)占用了1个(6%)。最高系统时钟频率(Maximum frequency)可达44.5 MHz,显然满足工程实例中要求的32 MHz。 进行平方环路的FPGA测试之前,首先需要编写测试激励文件代码,测试文件的功能主要有产生32 MHz的系统时钟信号clk,产生复位信号rst,并通过读取由E5 DPSKSignalProduce.m程序生成的外部测试数据文件,产生输入信号din。最后将平方环中的频差信号df、本地振荡器输出的正弦信号sine转换成十进制数据后,写入外部文本文件中,供MATLAB分析程序E5_1_SigAnalysis.M来分析处理。 本工程实例中的测试激励文件tst.vhd结构及代码与例4—1中的测试文件十分相似,不再给出程序清单,读者可以在本书配套光盘中查阅完整的FPGA工程文件。 编写好测试激励文件后,直接运行Modelsim软件,即可进行行为仿真或时序仿真。由于测试激励文件中已编写代码,并将系统的频差信号df以及NCO输出的正弦信号sine写入外部TXT文件中,因此可以采用MATLAB对Modelsim仿真出的数据进行分析处理。 MATLAB分析处理程序的功能与例4—1中的处理程序相似。主要完成从外部文件中读取Modelsim仿真出的数据文件,以及E5_DPSKSignalProduce.M产生的载波数据文件E5_carrier.txt,并对FPGA仿真产生的频差数据绘图;计算出锁定后的平均频差;计算锁定后频差的最大波动范围;绘图比较载波信号及NCO输入正弦信号的相位关系。读者可以在本书配套的光盘中查阅分析处理文件E5_1_SigAnalysis.M的程序清单。图5—12、图5.13是信噪比分别为100 dB和6 dB时MATLAB对FPGA仿真数据的分析处理结果。
《数字通信同步技术的MATLAB与FPGA实现》思路清晰、语言流畅、分析透彻,在简明阐述设计原理的基础上,追求对工程实践的指导性,力求使读者在较短的时间内掌握数字通信同步技术的FPGA设计知识和技能。《数字通信同步技术的MATLAB与FPGA实现》的配套光盘收录了完整的MATLAB及VHDL实例工程代码,有利于工程技术人员学习参考。
无
数字通信同步技术的MATLAB与FPGA实现 PDF格式下载
内容很有用,直接受益!