FPGA代做-基于FPGA的QPSK实现

FPGA代做-基于FPGA的QPSK实现FPGA代做-基于FPGA的QPSK实现第一章课题研究意义和发展前景OQPSK调制技术是一种恒包络调制技术,受系统非线性影响小,具有较高的带宽利用率和功率利用率,在卫星环境、无线环境下得到广泛应用。因此,在通信信号侦收设备所处理的信号中,存在大量的OQPSK信号。在传统的侦收设备中,接收机的解调单元都是采用模拟处理方法和器件实现的。大都使用了模拟滤波器、鉴相器(乘法器)和压控振荡器(VCO)。这种传统的模拟解调单元电路体积大,形式复杂;调试过程复杂、调试周期长;器件内部噪声大,易受环境影响,可靠性差。因

FPGA代做-基于FPGA的QPSK实现

第一章 课题研究意义和发展前景

OQPSK调制技术是一种恒包络调制技术,受系统非线性影响小,具有较高的带宽利用率和功率利用率,在卫星环境、无线环境下得到广泛应用。因此,在通信信号侦收设备所处理的信号中,存在大量的OQPSK信号。在传统的侦收设备中,接收机的解调单元都是采用模拟处理方法和器件实现的。大都使用了模拟滤波器、鉴相器(乘法器)和压控振荡器(VCO)。这种传统的模拟解调单元电路体积大,形式复杂;调试过程复杂、调试周期长;器件内部噪声大,易受环境影响,可靠性差。因此,这种传统的侦收设备不能完全发挥数字通信的优势,实现信号的最佳接收。随着大规模集成电路(VLSI)技术和工艺的进步,数字集成电路的复杂度和功能达到了前所未有的高度,以专用集成电路(ASIC)、数字信号处理器(DSP)、和现场可编程逻辑门阵列(FPGA)为代表的IC,已经在工业生产中得到大规模的应用。这些技术和工艺的快速发展,给侦收设备中解调单元的全数字化提供了可能。

全数字化的调制解调器与传统的模拟电路调制解调器相比主要有以下优点:硬件电路稳定、通用、易维护;电路的稳定性好,基本不受环境、器件个体性能差异因素影响,无需复杂的电路调试。算法由软件实现,可以在通用的硬件平台上用不同的算法实现不同的调制解调器。数字调制解调算法通过计算机设计仿真,易于调试。易于实现自适应接收,可以切换或者调整系统软件,加载不同的算法,实现对多种不同体制信号的自适应接收。利于集成,随着数字器件的高速发展,数字接收机的集成度越来越高,使通信设备的小型化成为可能。本课题正是以某型侦收设备中OQPSK解调器的全数字化为背景展开研究,设计并实现全数字OQPSK调制解调器。

现今,大多数通信系统的数字化调制解调技术已经相当成熟,可以很好的实现多种数字信号的接收解调。然而在调制解调算法的实现中,大多采用ASIC和DSP,这类器件都有一定的缺陷。ASIC处理速度快,但是开发成本高,而且内部功能不可改变,这样使得系统的可重构性很低,当设备兼容的无线接口增加时,就必须增加执行相应信号处理的ASIC,使得设备的体积和成本随无线接口的增加而不断增大。DSP可以通过更改软件来变更其功能,可重构性好,但它的处理速度慢,逐渐跟不上越来越高的信号处理速度的需求。FPGA可以看作是介于ASIC和DSP之间的一种实现手段。它既具有ASIC的高速处理能力,又拥有很好的可重构性能,而且开发成本低,开发周期短,优势十分明显。FPGA技术打破了软硬件之间最后的屏障,虽然其功能开发是通过EDA软件实现的,但其物理机制属于纯硬件电路。

第二章 OQPSK的基本原理

OQPSK也称为偏移四相相移键控(offset-QPSK),是QPSK的改进型。它与QPSK有同样的相位关系,也是把输入码流分成两路,然后进行正交调制。不同点在于它将同相和正交两支路的码流在时间上错开了半个码元周期。由于两支路码元半周期的偏移,每次只有一路可能发生极性翻转,不会发生两支路码元极性同时翻转的现象。因此,OQPSK信号相位只能跳变0?、?90?,不会出现180?的相位跳变。

OQPSK信号可采用正交相干解调方式解调,其原理如图5-49所示。由图看出,它与QPSK信号的解调原理基本相同,其差别仅在于对Q支路信号抽样判决时间比I支路延迟了/2,这是因为在调制时Q支路信号在时间上偏移了/2,所以抽样判决时刻也应偏移/2,以保证对两支路交错抽样。

OQPSK克服了QPSK的l80?的相位跳变,信号通过BPF后包络起伏小,性能得到了改善,因此受到了广泛重视。但是,当码元转换时,相位变化不连续,存在90?的相位跳变,因而高频滚降慢,频带仍然较宽。

采用非归零码直接进行调制所得的QPSK信号的幅度非常恒定,但其信号频谱较大。然而,当QPSK进行波形成形时,它们将失去恒包络的性质。偶尔发生的弧度为π的相移,会导致信号的包络在瞬间通过零点。任何一种在过零点的硬限幅或非线性放大都会引起旁瓣再生和频谱扩展,必须使用效率较低的线性放大器放大QPSK信号,这将使放大器的效率受到限制,进而影响到终端的小型化。

为了克服QPSK对信道的线性度要求很高,交错QPSK(OQPSK)或参差QPSK虽然在非线性环境下也会产生频谱扩展,但对此已不那么敏感,因此能支持更高效率的放大器。

在OQPSK中,其I支路比特流和Q支路比特流在数据沿上差半个符号周期,其它特性和QPSK信号类似。在QPSK信号中,奇比特流和偶比特流的比特同时跳变,但是在OQPSK信号中,I支路比特流和Q支路比特流,在它们的变化沿的地方错开一比特(半个符号周期)。它们的波形如图下图:

FPGA代做-基于FPGA的QPSK实现

图2-1

由于在标准QPSK中,相位跳变仅在每个Ts=2TB秒时发生,并且存在180?的最大相移。可是在OQPSK信号中,比特跳变(从而相位跳变)每Tb秒发生一次。因为I支路和Q支路的跳变瞬时被错开了,所以在任意给定时刻只有两个比特流中的一个改变它的值。这意味着,在任意时刻发送信号的最大相移都限制在?90?。因此OQPSK信号消除了180?相位跳变,改善了其包括特性。

FPGA代做-基于FPGA的QPSK实现

图2-2

从上图中的星座图看出,180?相位跳变消除了,所以OQPSK信号的带限不会导致信号包络经过零点。OQPSK包络的变化小多了,因此对OQPSK的硬限幅或非线性放大不会再生出严重的频带扩展现,OQPSK即使在非线性放大后仍能保持其带限的性质,这就非常适合移动通信系统,因为在低功率应用情况下,带宽效率和高效非线性放大器是起决定性作用的。还有,当在接收机端由于参考信号的噪声造成相位抖动时,OQPSK信号表现的性能比QPSK要好。

第三章 MATLAB和FPGA简介

3.1 MATLAB软件简介

Matlab,Matrix Laboratory的简称,是美国Mathworks公司于1984年推出的数值计算机仿真软件,经过不断的发展和完善,如今已成为覆盖多个学科、具有超强数值计算能力和仿真分析能力的软件。Matlab应用较为简单,用大家非常熟悉的数学表达式来表达问题和求解方法。它把计算、图示和编程集成到一个环境中,用起来非常方便。同时,Matlab具有很强的开放性和适应性,在保持内核不变的情况下,Matlab推出了适合不同学科的工具箱,如图像处理工具箱,小波分析工具箱、信号处理工具箱、神经网络工具箱等,极大地方便了不同学科的研究工作。Matlab强大的绘图功能,简单的命令形式,使其越来越受到国内外科技人员的青睐,得到越来越广泛的应用。

一. MATLAB的特点

一种语言之所以如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其它语言的特点。正如同Fortran和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称为第4代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。

1(功能强大

MATLAB具有功能强劲的工具箱,其包含两个部分:核心部分和各种可选的工具箱。核心部分中,有数百个核心内部函数。其工具箱又可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能。功能性工具箱能用于多种学科,而学科性工具箱是专业性比较强的,例如control toolbox,image processing toolbox,signal processing toolbox等。这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,就能够直接进行高、精、尖的研究。

2. 界面友好,编程效率高

MATLAB突出的特点就是简洁。它用更直观的、符合人类思维习惯的代码代替了C和Fortran语言的冗长代码,给用户带来的是最直观、最简洁的程序开发环境。MATLAB语言简洁紧凑,使用方便灵活,库函数极其丰富,程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都是由本领域的专家编写的,因此用户不必担心函数的可靠性。可以说,用MATLAB进行科学开发是站在专家的肩膀

上来完成的。

3. 开放性强

MATLAB有很好的可扩充性,可以把它当成一种更高级的语言去使用。各种工具箱中的函数可以互相调用,也可以由用户更改。MATLAB支持用户对其函数进行二次开发,用户的应用程序可以作为新的函数添加到相应的工具箱中。

二( MATLAB的主要功能

MATLAB之所以成为世界顶级的科学计算与数学应用软件,是因为它随着版本的升级与不断完善而具有越来越强大的功能。

1(数值计算功能

MATLAB出色的数值计算功能是使之优于其他数学应用软件的决定性因素之一。

2符号计算功能

MATLAB符号运算的独特之处:无需事先对变量赋值,而所得的结果以标准的符号形式表达,符号计算的整个过程以字符进行。

3数据分析功能

MATLAB可以将计算数据以二维、三维乃至四维的图形表现。这不仅使数据间的关系清晰、明了,而且对于揭示其内在本质有着非常重要的作用。

4动态仿真功能

MATLAB提供了一个模拟动态系统的交互程序SIMULINK,用户通过简单的鼠标操作,就可建立起直观的系统模型,并进行仿真。

5图形文字统一处理功能

MATLAB Notebook成功地将Microsoft Work与MATLAB集成为一个整体,为文字处理、科学计算、工程设计营造了一个完美、统一的工作环境。它既拥有Word强大的文字处理功能,又能通过Word访问MATLAB的数据计算和可视化结果。

3.2 FPGA的发展

当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件

(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。

早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可删除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与-或”表达式来描述,所以, PLD能以乘积、和的形式完成大量的组合逻辑功能。这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。 PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。 PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。 PLA器件既有现场可编程的,也有掩膜可编程的。

20世纪80年代中期。 Altera和Xilinx分别推出了类似于PAL结构的扩展型 CPLD(Complex Programmab1e Logic Dvice)和与标准门阵列类似的FPGA,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。 这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC(Application Specific

IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。

3.3 FPGA产品类型

FPGA与 CPLD都是可编程逻辑器件,它们是在PAL、GAL等逻辑器件的基础之上发展起来的。同以往的PAL、GAL等相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通

[21,22,23,24,25] 用IC芯片。

表3-1:各大FPGA产品

排名 公司 销售额(亿美金) 市场占有率

1 Altera 5.96 30.1

2 Xilinx 5.74 29.0

3 Vantis 2.20 11.1

4 Lattice 2.18 11.0

5 Actel 1.39 7.0

6 Luccent 0.85 4.3

7 Cypress 0.44 2.2

8 Atmel 0.42 2.1

9 Philips 0.28 1.4

10 Quicklogic 0.24 1.2

经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,它们开发较早,占用了较大的PLD市场。通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。可以讲Altera和Xilinx共同决定了PLD技术的发展方向。当然还有许多其它类型器件,如:Lattice,Vantis,Actel,Quicklogic,Lucent等。

3.4 FPGA设计流程

1.设计输入:–HDL语言描述:大规模复杂逻辑的推荐输入方式;

2.仿真验证:–寄存器传输级仿真:对代码的语法和功能进行仿真,无时序信息;

–门级功能仿真:对综合后的门级网表进行功能仿真,无时序信息;

–门级后仿真:对门级时序的仿真,体现实际布局布线的延时; 3.设计综合:–针对特定的FPGA器件,根据给定的约束条件,将设计优化处理,得到满足要求

的电路实现方案;

–可用的工具:Synplify,QUARTUS II,FPGA Compiler等

4.设计实现:–转换:将多个设计文件进行转换并合并到一个设计库文件中

–映射:将网表中的逻辑门映射成物理元素,即把逻辑设计分割到构成可编程阵

列的LAB(或CLB),I/O和其他资源中去

–布局布线:确定单元的物理位置,并完成单元连接

–时序提取:产生一个用于反标的时序文件

–配置:产生FPGA配置时需要的位流文件,如.sof,.pof 5.时序分析:–查看关键路径和设计者感兴趣的路径的时序,通过分析优化再次对设计进行约

束,使设计满足要求或得到更高的性能

6.下载验证: – 将位流文件通过配置电缆下载到FPGA芯片中,看电路是否按预定的方式工作 3.5 硬件描述语言——Verilog HDL

所谓硬件描述语言,就是可以描述硬件电路的功能,信号连接关系及定时关系的语言。其中是一种应用广泛的硬件描述语言,可用于算法级、门级到开关级的多种抽Verilog HDL

象层次的数字系统设计。

从语法结构来讲,和语言有许多相似之处,它能够形式化地表示电路的Verilog HDLC

结构和行为,可以借用高级语言的结构和语句,能够在多个层次上对所设计的系统加以描述。

Verilog HDL最大的特点就是易学易用,由于Verilog HDL的各种优越性,使它广泛流行,尤其在ASIC领域,更是处于主流地位。在美国、日本等国家,Verilog HDL语言一直是使用最为广泛的硬件描述语言。

那么为什么要使用Verilog HDL呢,首先,考虑到Verilog HDL与C语言有着密切的联系,而C语言很灵活,查错功能强,可以通过PLI(编程语言接口)编写自己的系统任务直接与硬件仿真器(如Verilog-XL)结合使用。C语言是目前世界上应用最为广泛的一种编程语言,因而C程序的设计环境比Verilog HDL的完整。此外,C语言可应用于许多领域,有可靠的编译环境,语法完备,缺陷较少。 比较起来, Verilog 语言只是针对硬件描述的,在别处使用(如用于算法表达等)并不方便。而且Verilog的仿真、综合、查错工具等大部分软件都是商业软件,与C语言相比缺乏长期大量的使用,可靠性较差,亦有很多缺陷。所以,只有在C语言的配合使用下,Verilog才能更好地发挥作用。

语言的完整性,又C语言与Verilog语言相辅相成,互相配合使用。这就是既要利用C 要结合Verilog对硬件描述的精确性,来更快更好地设计出符合性能要求的硬件电路系统。利用C语言完善的查错和编译环境,设计者可以先设计出一个功能正确的设计单元,以此作为设计比较的标准。然后,把C程序一段一段地改写成用并型结构(类似于Verilog)描述的C程序,此时还是在C的环境里,使用的依然是C语言。如果运行结果都正确,就将C语言关键字用Verilog相应的关键字替换,进入Verilog的环境。将测试输入同时加到C与Verilog两个单元,将其输出做比较。这样很容易发现问题的所在,然后更正,再做测试,直至正确无误。剩下的工作就交给后面的设计工程师继续做。

第四章 利用MATLAB来对OQPSK进行系统仿真

OQPSK也称为偏移正交相移键控(offset-QPSK),是QPSK的改进型。它与QPSK有同样的相位关系,也是把输入码流分成两路,然后进行正交调制。不同点在于它将同相和正交两支路的码流在时间上错开了半个码元周期。由于两支路码元半周期的偏移,每次只有一路可能发生极性翻转,不会发生两支路码元极性同时翻转的现象。因此,OQPSK信号相位只能跳变0?、?90?,不会出现180?的相位跳变,所以频带受限OQPSK的信号包络起伏比频带受限QPSK的信号小,经限幅放大后频带展宽得少,故OQPSK性能优于QPSK。

其基本工作过程如下:将信号通过成形滤波器然后将滤波以后的信号和SIN,COS相乘,得到调制信号,然后将两路信号相加,得到混频信号从而完成信号的OQPSK调制部分的设计,而对于解调模块。

而对于接收部分,其主要的难点在于信号的频偏的锁定,这里主要采用COSTAS环来实现信号的解调。

4.1 OQPSK发送端的设计与仿真

4.1.1 OQPSK理论分析

OQPSK复基带信号可以表示为:

FPGA代做-基于FPGA的QPSK实现

在OQPSK调制解调器设计中成形滤波、数字下变频、载波恢复和定时恢复是实现OQPSK调制解调器的难点和重点。

在数字通信系统中,由于基带码元采用矩形波表示,其频谱是无限宽,当信号通过实际带限信道,频域截短,时域变为无限,产生码间串扰,为了克服码间串扰,需要对码元进行成形滤波。实际应用中,大多采用升余弦滤波器作为成形滤波器。

具有滚降系数α的升余弦滚降特性H(ω)可表示为:

FPGA代做-基于FPGA的QPSK实现

而相应的h( t)为:

FPGA代做-基于FPGA的QPSK实现

升余弦滚降信号在前后抽样值处的码间串扰为0,满足抽样值无失真传输条件,滚降系数α越小,则波形的振荡起伏就越大,但传输频带减小,对接收端的定时要求增加;反之,α越大,则波形振荡起伏越小,但频带增加。α,0时,升余弦滤波器变成了理想低通滤波器,此时信号的频带最窄;α,1时,升余弦滤波器的频带最宽,为理想低通滤波器的2倍。所以,升余弦滚降滤波器是以频带的增加来换取码间干扰的减少。

从工作原理上讲,数字下变频与模拟下变频是一样的,就是输入信号与一个本地振荡信号的乘法运算。与模拟下变频相比,数字下变频的运算速度受DSP处理速度的限制,同时,

其运算速度决定了其输入信号的数据流可达到最高速率,相应地也限定了ADC的最高采样速率;另外,数字下变频的数据精度和运算速度也影响着接收机的性能,所以,数字下变频器必须进行优化设计。

4.1.2 OQPSK发送端的MATLAB实现

为了便于信号的观察,我们将发送信号定义为1,-1,1,-1这么一种发送模式。这样可以方便的观察信号的发送和接收效果。

代码如下:

I_Data = ones(len,1);

for i = 1 : 2 : len

I_Data(i) = -1;

end

Q_Data = I_Data;

首先生成连续的信号1,然后对其中的一部分信号赋值-1,这样就完成了信号的1,-1的赋值。

然后将信号通过成形滤波器,代码如下:

I_D = u_rrcsend(I_Data,len,nsamp,0,Ts);

Q_D = u_rrcsend(Q_Data,len,nsamp,0,Ts);

然后再将信号与载波进行调制:

I_MOD = I_D.*I_Carrier;

Q_MOD = Q_D.*Q_Carrier;

最后将信号进行混频,代码如下:

send = I_MOD + Q_MOD;

通过上面的步骤,我们基本完成了信号的OQPSK的调制发送部分,下面就对该部分进行仿真。

FPGA代做-基于FPGA的QPSK实现

图4-1

如上图所示,这个就是OQPSK信号的发送出去的混频信号。

4.2 COSTAS设计与仿真

4.1.1 COSTAS理论分析

在数字通信系统中,无论是PSK还是QAM调制,接收端通常采用相干解调的方法来取得较好的解调性能。相干解调要求在接收端产生一个与被调制载波同频同相的相干载波,称为载波恢复。相干解调的优势是建立在接收端有着准确相位的参考载波之上的,如果频率或相位有偏差,解调器的性能就会下降,甚至不能正常工作。载波恢复的方法一般有两种:一种是插入导频法,在发送端发送数字信号序列的同时发送载波信号或者与它相关的导频信号,在接收端可以用窄带滤波器或者锁相环直接提取载波;另一种方法是直接提取法,在接收信号为抑制载波的已调信号时,通过对数字接收信号进行非线性变换或者采用特殊的锁相环来获得相干载波。本文主要讨论的是适用于OQPSK调制解调的载波恢复算法。在实际应用中,常用的OQPSK载波恢复锁相环有:四次方环、松尾环和硬判决COSTAS环等。

以常用的QPSK信号为例,说明本文中改进COSTAS环的同步解调算法,下图给出实现QPSK信号解调算法的改进COSTAS环结构。

FPGA代做-基于FPGA的QPSK实现

图4-2 COSTAS的基本结构

同样地,设接收到的QPSK信号为:

FPGA代做-基于FPGA的QPSK实现

改进COSTAS环只需要经过3次判决运算就能得到所需要的误差电压:?在QPSK信号经过低通滤波器(LPF)之后首先进行2路信号的2次判决;?由sgn进行2路信号的2次判决之后经过乘法器再进行2次判决;?由加法器进行2路信号的一次判决。整个过程只需要历经6路信号的6次判决就能得到最终所需的误差电压,且只需要2个符号判决器sgn。显然,改进COSTAS环与传统COSTAS环相比减少了运算步骤、高了运算效率、简化了电路结构。 4.1.2 COSTAS的MATLAB实现

下面就来实现COSTAS的具体实现方法,

for frame=1:nf

% 产生本地的sin和cos函数

expcol = exp(j*(wfc*ts*nn+phase));

sine = imag(expcol);

cosine = real(expcol);

这段代码,主要是通过调整phase来实现本地载波的产生,通过调整phase,可以实现本地载波的产生,并且锁定频偏。

%发送的数据,将IQ两路信号进行混频

x = data((1:n)+((frame-1)*n));

%将数据转换到基带

x_sine = x.*sine;

x_cosine = x.*cosine;

将接收到的信号进行解调,将信号和锁定频偏的SIN,COS进行相乘,得到原始的I,Q两路信号。

%经过滤波器

Q = sum(x_sine);

I = sum(x_cosine);

将得到的信号通过RRC滤波器,可以得到发送的信号。随后对所得到的信号求误差,将所得到的误差通过环路滤波器,然后将环路滤波器的输出作为NCO的控制信号,这样就完成了接收端的COSTAS环的实现。其仿真结果图如下所示:

FPGA代做-基于FPGA的QPSK实现

图4-3 COSTAS锁定过程

信号同步解调结果如图4所示,用改进COSTAS环解调恢复出的I、Q支路信号。可以看出,该环很好地实现了I、Q支路信号的同步解调,整个环路在经过了短暂的失锁过程后迅速

、Q路信号和基带信号达到了同步输出。这样,我们基本完成了利用MATLAB的达到锁定状态。I

进行OQPSK的基本实现过程,在下面的章节里,我们将利用FPGA进行OQPSK的实现和仿真。

第五章 利用FPGA来对OQPSK进行系统仿真

5.1 OQPSK发送段设计

发送端主要工作过程如下:将信号通过成形滤波器,然后将信号和SIN,COS相乘,然后

进行混频处理,将信号发送出去。

5.1.1 成形滤波器设计

这里成形滤波器的设计主要通过IP核来设计,通过MATLAB我们可以得到滤波器的系数:

Radix = 10;

Coefficient_Width = 18;

CoefData = 0.02022066,

0.00443409,

-0.03751318,

-0.07842133,

-0.05305165,

0.07842133,

0.28931623,

0.48724768,

0.56830989,

0.48724768,

0.28931623,

0.07842133,

-0.05305165,

-0.07842133,

-0.03751318,

0.00743409,

0.02022066;

这里是IP核所要调用的COE文件的文件格式,这些数据是FIR滤波器所采用的系数,这

些系数是通过MATLAB来得到的。

具体IP核参数设置如下所示:

FPGA代做-基于FPGA的QPSK实现

图5-1 参数设置一

FPGA代做-基于FPGA的QPSK实现

图5-2 参数设置2

通过这个设置,我们可以得到FIR滤波器的基本参数功能如下所示:

FPGA代做-基于FPGA的QPSK实现

图5-3 FIR滤波器设置效果

以上我们基本完成了RRC滤波器的设计过程。 5.1.2 NCO设计

这里要设计一个NCO来完成发送端的调制过程,主要利用ISE的NCOIP核来完成。这里

的参数设置比较简单,就不做具体介绍了。

其基本参数的设置如下:

FPGA代做-基于FPGA的QPSK实现

图5-4 NOC参数设置

FPGA代做-基于FPGA的QPSK实现

图5-5 NOC参数设置效果

5.2 COSTAS设计

接收端COSTAS环的RRC滤波器的设计思路和发送端的设计思路相同。具体参数设置就不做介绍了。接收端COSTAS环的NCO的设计思路和发送端的设计思路相同。具体参数设置就不做介绍了。

5.3 基于FPGA的OQPSK发送接收模块的仿真及分析

首先,信号通过成形滤波器后得到的波形如下图所示:

FPGA代做-基于FPGA的QPSK实现

图5-4 滤波信号

由上图可以看到,1,0,1,0信号通过滤波器后可以得到滤波信号。从而验证了这个模块的正确性。

下面的波形就是信号通过COSTAS滤波器后的信号。通过COSTAS后,信号基本和原来的信号匹配了,说明COSTAS是正确的。

FPGA代做-基于FPGA的QPSK实现

图5-5 COTAS锁定以后的信号

以上结果表明:信号通过COSTAS后,得到了基本的还原。

第六章 结论总结

本文首先介绍了OQPSK调制解调技术的原理,并用MATLAB对其算法实现过程进行了仿真。在Xilinx ISE10.1中用verilog语言完成了OQPSK调制解调算法的软件设计,实现了数字上下变频、载波恢复、定时恢复、以太网发送等功能。根据系统设计指标,给出了调制解调器的硬件实现框图,完成了调制解调器的设计。最后将编译好的程序下载到FPGA芯片以及电路调试,测试结果证明该调制解调器可正常工作。在实际侦收环境下,通过了现场测试。

在近一年的课题研究中,本人对数字通信系统有了比较深刻的认识,对各种同步算法有了较深入的了解;掌握了运用VHDL语言进行FPGA开发的方法,对Xilinx公司的Spartan 3AN系列FPGA有了一定程度的了解,能够较熟练的使用ISE、和Modelsim的开发工具。在硬件电路设计过程中,对理论和实际设计之间的差别也有了一定的认识,对今后的学习和工作必将会起到很多积极作用,为进一步研究打下了较坚实的基础。

今天的文章FPGA代做-基于FPGA的QPSK实现分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/32471.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注