【matlab编程代做】QPSK论文_第1页
【matlab编程代做】QPSK论文_第2页
【matlab编程代做】QPSK论文_第3页
【matlab编程代做】QPSK论文_第4页
【matlab编程代做】QPSK论文_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要偏移正交相移键控(OQPSK:Offset Quadrature Phase Shift Keying)调制技术广泛应用于卫星通信和移动通信领域,具有频谱利用率高、频谱特性好等特点。论文设计并实现了基于FPGA的全数字OQPSK调制解调器,论文研究了全数字OQPSK调制解调的基本算法,包括成形滤波器、NCO模型、载波恢复等;完成了整个调制解调算法的MATLAB仿真。在此基础上,采用verilog硬件描述语言在Xilinx公司ISE10.1开发环境下设计并实现了各个算法模块。关键词:OQPSK, FPGA, 成形滤波器, NCO模型, 载波恢复abstractOffset quadratur

2、e phase-shift keying (OQPSK: Offset Quadrature Phase Shift Keying) modulation is widely used in satellite communications and mobile communications field, with the characteristics of high spectrum efficiencyand good spectrum. This paper is designed and implemented FPGA-based all-digital OQPSK modems,

3、 which studied the all-digital OQPSK modulation and demodulation of the basic algorithm, including the shaping filter, NCO model, carrier recovery, etc. the completion of the entire modem MATLAB simulation algorithm. On this basis, we use verilog hardware description language to design and implement

4、 various algorithms module in ISE10.1.Key words: OQPSK, FPGA, shaping filter, NCO model, carrier recovery第一章 课题研究意义和发展前景OQPSK调制技术是一种恒包络调制技术,受系统非线性影响小,具有较高的带宽利用率和功率利用率,在卫星环境、无线环境下得到广泛应用。因此,在通信信号侦收设备所处理的信号中,存在大量的OQPSK信号。在传统的侦收设备中,接收机的解调单元都是采用模拟处理方法和器件实现的。大都使用了模拟滤波器、鉴相器(乘法器)和压控振荡器(VCO)。这种传统的模拟解调单元电路体积大

5、,形式复杂;调试过程复杂、调试周期长;器件内部噪声大,易受环境影响,可靠性差。因此,这种传统的侦收设备不能完全发挥数字通信的优势,实现信号的最佳接收。随着大规模集成电路(VLSI)技术和工艺的进步,数字集成电路的复杂度和功能达到了前所未有的高度,以专用集成电路(ASIC)、数字信号处理器(DSP)、和现场可编程逻辑门阵列(FPGA)为代表的IC,已经在工业生产中得到大规模的应用。这些技术和工艺的快速发展,给侦收设备中解调单元的全数字化提供了可能。全数字化的调制解调器与传统的模拟电路调制解调器相比主要有以下优点:硬件电路稳定、通用、易维护;电路的稳定性好,基本不受环境、器件个体性能差异因素影响,

6、无需复杂的电路调试。算法由软件实现,可以在通用的硬件平台上用不同的算法实现不同的调制解调器。数字调制解调算法通过计算机设计仿真,易于调试。易于实现自适应接收,可以切换或者调整系统软件,加载不同的算法,实现对多种不同体制信号的自适应接收。利于集成,随着数字器件的高速发展,数字接收机的集成度越来越高,使通信设备的小型化成为可能。本课题正是以某型侦收设备中OQPSK解调器的全数字化为背景展开研究,设计并实现全数字OQPSK调制解调器。现今,大多数通信系统的数字化调制解调技术已经相当成熟,可以很好的实现多种数字信号的接收解调。然而在调制解调算法的实现中,大多采用ASIC和DSP,这类器件都有一定的缺陷

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

8、QPSK也称为偏移四相相移键控(offset-QPSK),是QPSK的改进型。它与QPSK有同样的相位关系,也是把输入码流分成两路,然后进行正交调制。不同点在于它将同相和正交两支路的码流在时间上错开了半个码元周期。由于两支路码元半周期的偏移,每次只有一路可能发生极性翻转,不会发生两支路码元极性同时翻转的现象。因此,OQPSK信号相位只能跳变0°、±90°,不会出现180°的相位跳变。OQPSK信号可采用正交相干解调方式解调,其原理如图5-49所示。由图看出,它与QPSK信号的解调原理基本相同,其差别仅在于对Q支路信号抽样判决时间比I支路延迟了/2,这是因

9、为在调制时Q支路信号在时间上偏移了/2,所以抽样判决时刻也应偏移/2,以保证对两支路交错抽样。OQPSK克服了QPSK的l80°的相位跳变,信号通过BPF后包络起伏小,性能得到了改善,因此受到了广泛重视。但是,当码元转换时,相位变化不连续,存在90°的相位跳变,因而高频滚降慢,频带仍然较宽。采用非归零码直接进行调制所得的QPSK信号的幅度非常恒定,但其信号频谱较大。然而,当QPSK进行波形成形时,它们将失去恒包络的性质。偶尔发生的弧度为的相移,会导致信号的包络在瞬间通过零点。任何一种在过零点的硬限幅或非线性放大都会引起旁瓣再生和频谱扩展,必须使用效率较低的线性放大器放大QP

10、SK信号,这将使放大器的效率受到限制,进而影响到终端的小型化。    为了克服QPSK对信道的线性度要求很高,交错QPSK(OQPSK)或参差QPSK虽然在非线性环境下也会产生频谱扩展,但对此已不那么敏感,因此能支持更高效率的放大器。    在OQPSK中,其I支路比特流和Q支路比特流在数据沿上差半个符号周期,其它特性和QPSK信号类似。在QPSK信号中,奇比特流和偶比特流的比特同时跳变,但是在OQPSK信号中,I支路比特流和Q支路比特流,在它们的变化沿的地方错开一比特(半个符号周期)。它们的波形如图下图: 图2-

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

12、包络经过零点。OQPSK包络的变化小多了,因此对OQPSK的硬限幅或非线性放大不会再生出严重的频带扩展现,OQPSK即使在非线性放大后仍能保持其带限的性质,这就非常适合移动通信系统,因为在低功率应用情况下,带宽效率和高效非线性放大器是起决定性作用的。还有,当在接收机端由于参考信号的噪声造成相位抖动时,OQPSK信号表现的性能比QPSK要好。第三章 MATLAB和FPGA简介3.1 MATLAB软件简介Matlab,Matrix Laboratory的简称,是美国Mathworks公司于1984年推出的数值计算机仿真软件,经过不断的发展和完善,如今已成为覆盖多个学科、具有超强数值计算能力和仿真分

13、析能力的软件。Matlab应用较为简单,用大家非常熟悉的数学表达式来表达问题和求解方法。它把计算、图示和编程集成到一个环境中,用起来非常方便。同时,Matlab具有很强的开放性和适应性,在保持内核不变的情况下,Matlab推出了适合不同学科的工具箱,如图像处理工具箱,小波分析工具箱、信号处理工具箱、神经网络工具箱等,极大地方便了不同学科的研究工作。Matlab强大的绘图功能,简单的命令形式,使其越来越受到国内外科技人员的青睐,得到越来越广泛的应用。一. MATLAB的特点一种语言之所以如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其它语言的特点。正如同Fortran和C等高级语言使

14、人们摆脱了需要直接对计算机硬件资源进行操作一样,被称为第4代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。1功能强大MATLAB具有功能强劲的工具箱,其包含两个部分:核心部分和各种可选的工具箱。核心部分中,有数百个核心内部函数。其工具箱又可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能。功能性工具箱能用于多种学科,而学科性工具箱是专业性比较强的,例如control toolbox,image processing toolbox,signal processing too

15、lbox等。这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,就能够直接进行高、精、尖的研究。2. 界面友好,编程效率高MATLAB突出的特点就是简洁。它用更直观的、符合人类思维习惯的代码代替了C和Fortran语言的冗长代码,给用户带来的是最直观、最简洁的程序开发环境。MATLAB语言简洁紧凑,使用方便灵活,库函数极其丰富,程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都是由本领域的专家编写的,因此用户不必担心函数的可靠性。可以说,用MATLAB进行科学开发是站在专家的肩膀上来完成的。3. 开放

16、性强MATLAB有很好的可扩充性,可以把它当成一种更高级的语言去使用。各种工具箱中的函数可以互相调用,也可以由用户更改。MATLAB支持用户对其函数进行二次开发,用户的应用程序可以作为新的函数添加到相应的工具箱中。二 MATLAB的主要功能MATLAB之所以成为世界顶级的科学计算与数学应用软件,是因为它随着版本的升级与不断完善而具有越来越强大的功能。1数值计算功能MATLAB出色的数值计算功能是使之优于其他数学应用软件的决定性因素之一。2符号计算功能MATLAB符号运算的独特之处:无需事先对变量赋值,而所得的结果以标准的符号形式表达,符号计算的整个过程以字符进行。3数据分析功能MATLAB可以

17、将计算数据以二维、三维乃至四维的图形表现。这不仅使数据间的关系清晰、明了,而且对于揭示其内在本质有着非常重要的作用。4动态仿真功能MATLAB提供了一个模拟动态系统的交互程序SIMULINK,用户通过简单的鼠标操作,就可建立起直观的系统模型,并进行仿真。5图形文字统一处理功能MATLAB Notebook成功地将Microsoft Work与MATLAB集成为一个整体,为文字处理、科学计算、工程设计营造了一个完美、统一的工作环境。它既拥有Word强大的文字处理功能,又能通过Word访问MATLAB的数据计算和可视化结果。3.2 FPGA的发展当今社会是数字化的社会,是数字集成电路广泛应用的社会

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

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

20、技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。 PLA器件既有现场可编程的,也有掩膜可编程的。 20世纪80年代中期。 Altera和Xilinx分别推出了类似于PAL结构的扩展型 CPLD(Complex Programmab1e Logic Dvice)和与标准门阵列类似的FPGA,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。 这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC(Ap

21、plication Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。3.3 FPGA产品类型FPGA与 CPLD都是可编程逻辑器件,它们是在PAL、GAL等逻辑器件的基础之上发展起来的。同以往的PAL、GAL等相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片 21,22,23,24,25。表3-1:各大FPGA产品排

22、名公司销售额(亿美金)市场占有率1Altera5.9630.12Xilinx5.7429.03Vantis2.2011.14Lattice2.1811.05Actel1.397.06Luccent0.854.37Cypress0.442.28Atmel0.422.19Philips0.281.410Quicklogic0.241.2经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,它们开发较早,占用了较大的PLD市场。通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则

23、是平分秋色。全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。可以讲Altera和Xilinx共同决定了PLD技术的发展方向。当然还有许多其它类型器件,如:Lattice,Vantis,Actel,Quicklogic,Lucent等。3.4 FPGA设计流程1.设计输入:HDL语言描述:大规模复杂逻辑的推荐输入方式;2.仿真验证:寄存器传输级仿真:对代码的语法和功能进行仿真,无时序信息;门级功能仿真:对综合后的门级网表进行功能仿真,无时序信息;门级后仿真:对门级时序的仿真,体现实际布局布线的延时;3.设计综合:针对特定的FPGA器件,根据给定的约束条件,将设计优化处理,

24、得到满足要求的电路实现方案;可用的工具:Synplify,QUARTUS II,FPGA Compiler等4.设计实现:转换:将多个设计文件进行转换并合并到一个设计库文件中映射:将网表中的逻辑门映射成物理元素,即把逻辑设计分割到构成可编程阵列的LAB(或CLB),I/O和其他资源中去布局布线:确定单元的物理位置,并完成单元连接时序提取:产生一个用于反标的时序文件配置:产生FPGA配置时需要的位流文件,如.sof,.pof5.时序分析:查看关键路径和设计者感兴趣的路径的时序,通过分析优化再次对设计进行约束,使设计满足要求或得到更高的性能6.下载验证: - 将位流文件通过配置电缆下载到FPGA芯

25、片中,看电路是否按预定的方式工作3.5 硬件描述语言Verilog HDL所谓硬件描述语言,就是可以描述硬件电路的功能,信号连接关系及定时关系的语言。其中Verilog HDL是一种应用广泛的硬件描述语言,可用于算法级、门级到开关级的多种抽象层次的数字系统设计。从语法结构来讲,Verilog HDL和C语言有许多相似之处,它能够形式化地表示电路的结构和行为,可以借用高级语言的结构和语句,能够在多个层次上对所设计的系统加以描述。Verilog HDL最大的特点就是易学易用,由于Verilog HDL的各种优越性,使它广泛流行,尤其在ASIC领域,更是处于主流地位。在美国、日本等国家,Verilo

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

27、,与C语言相比缺乏长期大量的使用,可靠性较差,亦有很多缺陷。所以,只有在C语言的配合使用下,Verilog才能更好地发挥作用。 C语言与Verilog语言相辅相成,互相配合使用。这就是既要利用C 语言的完整性,又要结合Verilog对硬件描述的精确性,来更快更好地设计出符合性能要求的硬件电路系统。利用C语言完善的查错和编译环境,设计者可以先设计出一个功能正确的设计单元,以此作为设计比较的标准。然后,把C程序一段一段地改写成用并型结构(类似于Verilog)描述的C程序,此时还是在C的环境里,使用的依然是C语言。如果运行结果都正确,就将C语言关键字用Verilog相应的关键字替换,进入Veril

28、og的环境。将测试输入同时加到C与Verilog两个单元,将其输出做比较。这样很容易发现问题的所在,然后更正,再做测试,直至正确无误。剩下的工作就交给后面的设计工程师继续做。 第四章 利用MATLAB来对OQPSK进行系统仿真OQPSK也称为偏移正交相移键控(offset-QPSK),是QPSK的改进型。它与QPSK有同样的相位关系,也是把输入码流分成两路,然后进行正交调制。不同点在于它将同相和正交两支路的码流在时间上错开了半个码元周期。由于两支路码元半周期的偏移,每次只有一路可能发生极性翻转,不会发生两支路码元极性同时翻转的现象。因此,OQPSK信号相位只能跳变0°、±9

29、0°,不会出现180°的相位跳变,所以频带受限OQPSK的信号包络起伏比频带受限QPSK的信号小,经限幅放大后频带展宽得少,故OQPSK性能优于QPSK。其基本工作过程如下:将信号通过成形滤波器然后将滤波以后的信号和SIN,COS相乘,得到调制信号,然后将两路信号相加,得到混频信号从而完成信号的OQPSK调制部分的设计,而对于解调模块。而对于接收部分,其主要的难点在于信号的频偏的锁定,这里主要采用COSTAS环来实现信号的解调。4.1 OQPSK发送端的设计与仿真4.1.1 OQPSK理论分析OQPSK复基带信号可以表示为:在OQPSK调制解调器设计中成形滤波、数字下变频、

30、载波恢复和定时恢复是实现OQPSK调制解调器的难点和重点。在数字通信系统中,由于基带码元采用矩形波表示,其频谱是无限宽,当信号通过实际带限信道,频域截短,时域变为无限,产生码间串扰,为了克服码间串扰,需要对码元进行成形滤波。实际应用中,大多采用升余弦滤波器作为成形滤波器。具有滚降系数的升余弦滚降特性H()可表示为:而相应的h( t)为:升余弦滚降信号在前后抽样值处的码间串扰为0,满足抽样值无失真传输条件,滚降系数越小,则波形的振荡起伏就越大,但传输频带减小,对接收端的定时要求增加;反之,越大,则波形振荡起伏越小,但频带增加。0时,升余弦滤波器变成了理想低通滤波器,此时信号的频带最窄;1时,升余

31、弦滤波器的频带最宽,为理想低通滤波器的2倍。所以,升余弦滚降滤波器是以频带的增加来换取码间干扰的减少。从工作原理上讲,数字下变频与模拟下变频是一样的,就是输入信号与一个本地振荡信号的乘法运算。与模拟下变频相比,数字下变频的运算速度受DSP处理速度的限制,同时,其运算速度决定了其输入信号的数据流可达到最高速率,相应地也限定了ADC的最高采样速率;另外,数字下变频的数据精度和运算速度也影响着接收机的性能,所以,数字下变频器必须进行优化设计。4.1.2 OQPSK发送端的MATLAB实现 为了便于信号的观察,我们将发送信号定义为1,-1,1,-1这么一种发送模式。这样可以方便的观察信号的发送和接收效

32、果。代码如下:Flag=1;for no=1:N Flag=-Flag; if Flag=1 I_data(no)=1; elseif Flag=-1 I_data(no)=-1; endendfor no=1:N Flag=-Flag; if Flag=1 Q_data(no)=1; elseif Flag=-1 Q_data(no)=-1; end end首先生成连续的信号1,然后对其中的一部分信号赋值-1,这样就完成了信号的1,-1的赋值。具体的波形如下所示:图4-1 生成的1,-1符号然后再将信号与载波进行调制:for n1=1:length(I_data)data_number(sa

33、mples*(n1-1)+1):(samples*(n1-1)+samples)=(I_data(n1)*carriers).*windows;endfor n1=1:length(I_data)data_number(samples*(n1-1)+1):(samples*(n1-1)+samples)=(Q_data(n1)*carriers).*windows;End通过这个模块,我们将生成的+1,-1信号和载波进行调制,可以得到所要生成的调制信号,其波形如下所示:图4-2 调制以后的信号最后将信号进行混频,代码如下:St=Sit+Sqt;其波形如下所示:图4-3 OQPSK的I路Q路叠加

34、信号通过上面的步骤,我们基本完成了信号的OQPSK的调制发送部分。4.2 COSTAS设计与仿真4.1.1 COSTAS理论分析在数字通信系统中,无论是PSK还是QAM调制,接收端通常采用相干解调的方法来取得较好的解调性能。相干解调要求在接收端产生一个与被调制载波同频同相的相干载波,称为载波恢复。相干解调的优势是建立在接收端有着准确相位的参考载波之上的,如果频率或相位有偏差,解调器的性能就会下降,甚至不能正常工作。载波恢复的方法一般有两种:一种是插入导频法,在发送端发送数字信号序列的同时发送载波信号或者与它相关的导频信号,在接收端可以用窄带滤波器或者锁相环直接提取载波;另一种方法是直接提取法,

35、在接收信号为抑制载波的已调信号时,通过对数字接收信号进行非线性变换或者采用特殊的锁相环来获得相干载波。本文主要讨论的是适用于OQPSK调制解调的载波恢复算法。在实际应用中,常用的OQPSK载波恢复锁相环有:四次方环、松尾环和硬判决COSTAS环等。以常用的QPSK信号为例,说明本文中改进COSTAS环的同步解调算法,下图给出实现QPSK信号解调算法的改进COSTAS环结构。图4-2 COSTAS的基本结构同样地,设接收到的QPSK信号为:改进COSTAS环只需要经过3次判决运算就能得到所需要的误差电压:在QPSK信号经过低通滤波器(LPF)之后首先进行2路信号的2次判决;由sgn进行2路信号的

36、2次判决之后经过乘法器再进行2次判决;由加法器进行2路信号的一次判决。整个过程只需要历经6路信号的6次判决就能得到最终所需的误差电压,且只需要2个符号判决器sgn。显然,改进COSTAS环与传统COSTAS环相比减少了运算步骤、高了运算效率、简化了电路结构。本系统采用Costas锁相环方式来实现载波同步,数字锁相环包括数字鉴相器(PD)、数字环路滤波器(LF)和数控振荡器(NCO)三部分,其中鉴相器用于提取锁相环的输入输出信号之间的相位误差信号,环路滤波器则对相位误差进行平滑滤波,之后用于控制数控振荡器产生的相应输出,其基本的原理如下:其中;为中频载波频率;为接收端载波的初始相位;为发送的码元

37、信息。经过数字下变频和匹配滤波后,可以得到: 其中;为锁相环对载波相位的估计。Costas环的鉴相器通过下式得到相位误差:4.1.2 COSTAS的MATLAB实现 上一节我们基本介绍了COSTAS的原理,其主要工作方式为:信号通过COSTAS首先于本地的SIN,COS进行解调,得到的高频信号通过RRC滤波器进入误差检测模块,最后得到的误差通过环路滤波器得到平滑的NCO控制信号,使本地产生一个频率和发送段相同频率的载波进行调制,从而还原出比较完美的波形。 下面就来实现COSTAS的具体实现方法,for frame=1:nf % 产生本地的sin和cos函数expcol = exp(j*(wfc

38、*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); 将得到的信

39、号通过RRC滤波器,可以得到发送的信号。随后对所得到的信号求误差,将所得到的误差通过环路滤波器,然后将环路滤波器的输出作为NCO的控制信号,这样就完成了接收端的COSTAS环的实现。其仿真结果图如下所示:图4-3 COSTAS锁定过程信号同步解调结果如图4-3所示,用改进COSTAS环解调恢复出的I、Q支路信号。可以看出,该环很好地实现了I、Q支路信号的同步解调,整个环路在经过了短暂的失锁过程后迅速的达到锁定状态。I、Q路信号和基带信号达到了同步输出。这样,我们基本完成了利用MATLAB进行OQPSK的基本实现过程,在下面的章节里,我们将利用FPGA进行OQPSK的实现和仿真。第五章 利用FP

40、GA来对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

41、.48724768, 0.28931623, 0.07842133, -0.05305165, -0.07842133, -0.03751318, 0.00743409, 0.02022066;这里是IP核所要调用的COE文件的文件格式,这些数据是FIR滤波器所采用的系数,这些系数是通过MATLAB来得到的。具体IP核参数设置如下所示:图5-1 参数设置一图5-2 参数设置2 通过这个设置,我们可以得到FIR滤波器的基本参数功能如下所示:图5-3 FIR滤波器设置效果 以上我们基本完成了RRC滤波器的设计过程。5.1.2 NCO设计这里要设计一个NCO来完成发送端的调制过程,主要利用ISE的N

42、CO-IP核来完成。这里的参数设置比较简单,就不做具体介绍了,新建一个IP核,打开NCO核生成器。其基本参数的设置如下:图5-4 NOC参数设置1图5-5 NOC参数设置2图5-6 NOC参数设置3 通过以上设置,我们基本完成了NOC模块的设置,通过NCO-IP核可以得到SIN,COS两个载波的波形。5.2 COSTAS设计 接收端COSTAS环的RRC滤波器的设计思路和发送端的设计思路相同。具体参数设置就不做介绍了。接收端COSTAS环的NCO的设计思路和发送端的设计思路相同。具体参数设置就不做介绍了。5.3 基于FPGA的OQPSK发送接收模块的仿真及分析首先,信号通过成形滤波器后得到的波

43、形如下图所示:图5-7 发送的01信号由上图可以看到,1,0,1,0信号通过滤波器后可以得到滤波信号。从而验证了这个模块的正确性。同时发送段产生载波,这里产生SIN,COS载波。图5-8 本地载波同时将信号和载波进行相乘,得到调制信号。图5-9 调制信号下面的波形就是信号通过COSTAS滤波器后的信号。通过COSTAS后,信号基本和原来的信号匹配了,说明COSTAS是正确的。图5-10 解调以后的信号 以上结果表明:信号通过COSTAS后,得到了基本的还原。第六章 结论总结本文首先介绍了OQPSK调制解调技术的原理,并用MATLAB对其算法实现过程进行了仿真。在Xilinx ISE10.1中用verilog语言完成了OQPSK调制解调算法的软件设计,实现了数字上下变频、载波恢复、定时恢复、以太网发送等功能。根据系统设计指标,给出了调制解调器的硬件实现框图,完成了调制解调器的设计。最后将编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论