版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 第一章 緒論1</b></p><p> 1.1 研究背景1</p><p> 1.2 研究思路和方案分析1</p><p> 1.3 論文的主要工作3</p><p> 第2章
2、可編程片上系統(tǒng)開(kāi)發(fā)技術(shù)4</p><p> 2.1可編程邏輯器件簡(jiǎn)介4</p><p> 2.2可編程片上系統(tǒng)開(kāi)發(fā)軟件4</p><p> 2.3硬件描述語(yǔ)言VHDL簡(jiǎn)介6</p><p> 第三章 系統(tǒng)的組成及工作原理7</p><p> 3.1 M序列產(chǎn)生器7</p><
3、p> 3.2 QPSK調(diào)制解調(diào)8</p><p> 3.2.1多進(jìn)制相移鍵控基本原理8</p><p> 3.2.2 QPSK 調(diào)制9</p><p> 3.2.3 QPSK解調(diào)13</p><p> 3.2.4 調(diào)制解調(diào)系統(tǒng)14</p><p> 3.3 卷積碼編碼譯碼15</p&
4、gt;<p> 3.3.1糾錯(cuò)編碼基礎(chǔ)15</p><p> 3.3.2卷積碼編碼15</p><p> 3.3.3卷積碼的解碼17</p><p> 3.3.4 卷積碼編碼譯碼系統(tǒng)22</p><p> 3.4小型移動(dòng)通信系統(tǒng)23</p><p> 第四章 硬件部分24</
5、p><p><b> 第五章 總結(jié)27</b></p><p><b> 參考文獻(xiàn)28</b></p><p><b> 致 謝29</b></p><p><b> 附錄130</b></p><p><b&g
6、t; 附錄239</b></p><p><b> 第一章 緒論</b></p><p><b> 1.1 研究背景</b></p><p> 近年來(lái),隨著半導(dǎo)體工藝技術(shù)和設(shè)計(jì)方法的迅速發(fā)展,系統(tǒng)級(jí)芯片SOC( System-on-Chip)的設(shè)計(jì)得以高速發(fā)展。但是,由于SOC產(chǎn)品設(shè)計(jì)具有開(kāi)發(fā)周期相對(duì)
7、較長(zhǎng)、高成本和高風(fēng)險(xiǎn)等特點(diǎn),對(duì)市場(chǎng)的變化非常敏感,這使得SOC在消費(fèi)電子、汽車(chē)電子、工業(yè)設(shè)計(jì)領(lǐng)域的發(fā)展進(jìn)程仍然緩慢。與此同時(shí),當(dāng)今的制造工藝能夠提供更多更高速的邏輯、更快的I/O和更低價(jià)位的新一代可編程邏輯器件,現(xiàn)場(chǎng)可編程門(mén)陣列CPLD (Complex Programmable Logic Device)己然進(jìn)入嵌入式應(yīng)用領(lǐng)域,高性能CPLD也不再局限于引進(jìn)系統(tǒng)粘合邏輯,也可作為SOC平臺(tái)。由于CPLD的現(xiàn)場(chǎng)可編程特征,它己成為更具靈
8、活性和廣泛性發(fā)展前景的工業(yè)設(shè)計(jì)平臺(tái) 。</p><p> 與傳統(tǒng)電路設(shè)計(jì)方法相比,CPLD具有功能強(qiáng)大、開(kāi)發(fā)過(guò)程投資小、周期短、便于修改及開(kāi)發(fā)工具智能化等特點(diǎn)。使用CPLD器件設(shè)計(jì)數(shù)字電路,不僅可以簡(jiǎn)化設(shè)計(jì)過(guò)程,而且可以降低整個(gè)系統(tǒng)的體積和成本,增加系統(tǒng)的可靠性。CPLD可輕易地被修改變更、修復(fù)缺陷,或在用戶(hù)需要升級(jí)和配合市場(chǎng)發(fā)展時(shí)去創(chuàng)制未來(lái)的衍生產(chǎn)品。它們無(wú)需花費(fèi)傳統(tǒng)意義下制造集成電路所需大量時(shí)間和精力,避免
9、了投資風(fēng)險(xiǎn),成為電子器件行業(yè)中發(fā)展最快的一族。</p><p> 1.2 研究思路和方案分析</p><p> 設(shè)計(jì)調(diào)制解調(diào)器,可以考慮用通用DSP芯片的方案。這種方案的通用DSP具備靈活的可編程性和高效的性能,有的甚至還集成了通用微控制器。方框圖如圖1-1所示:</p><p> 圖1-1 通用DSP方案</p><p> 通用DS
10、P都是按程序循序執(zhí)行,即串行構(gòu)架,這限制了通用DSP不能達(dá)到很高的速度。但是調(diào)制和編碼單元中往往用到濾波器,乘法器,直接頻率合成器等需要高速時(shí)鐘的器件。雖然通用DSP具有哈佛結(jié)構(gòu),多重總線(xiàn),超標(biāo)量流水線(xiàn),分支預(yù)測(cè)等先進(jìn)的技術(shù),但是都不可能從本質(zhì)上改變程序循序執(zhí)行的缺點(diǎn),在需要高速應(yīng)用的場(chǎng)合通用DSP往往不能勝任。而使用專(zhuān)用 DSP雖然能解決好速度的問(wèn)題但是可編程能力有限。</p><p> 下面我們用CPLD代
11、替上面方案中的通用DSP和變頻器。方框圖如圖1-2所示:</p><p> 圖1-2 CPLD方案</p><p> CPLD內(nèi)部有豐富的資源能配置成各種形式的電路。用CPLD代替通用DSP后不僅靈活性沒(méi)有降低,性能卻有極大的提高。CPLD內(nèi)部能被編成將所有的功能以并行方式執(zhí)行大大加快了速度。對(duì)于要求更高性能使還能使用流水線(xiàn)設(shè)計(jì)進(jìn)一步提高數(shù)據(jù)吞吐量。CPLD可以設(shè)計(jì)多個(gè)并行模塊的系統(tǒng),
12、速度高,同時(shí)具有高度靈活甚至能改變系統(tǒng)構(gòu)架。</p><p> 前一種通用DSP方案主要是指目前己廣泛使用的DSP處理器的解決方案,包括一系列軟硬件技術(shù)與開(kāi)發(fā)技術(shù)。采用DSP處理器(如TI的TMS32OC系列)的解決方案日益面臨著不斷增加的巨大挑戰(zhàn),而自身的技術(shù)瓶頸(如運(yùn)行速度、吞吐量、總線(xiàn)結(jié)構(gòu)的可變性、系統(tǒng)結(jié)構(gòu)的可重配置性、硬件可升級(jí)性等等)致使這種解決方案在DSP的許多新的應(yīng)用領(lǐng)域中的道路越走越窄;后一種C
13、PLD方案則是基于SOPC(可編程片上系統(tǒng))技術(shù)、EDA技術(shù)與CPLD實(shí)現(xiàn)方式的DSP技術(shù),是現(xiàn)代電子技術(shù)發(fā)展的產(chǎn)物,它有效地克服了傳統(tǒng)DSP技術(shù)中的諸多技術(shù)瓶頸,在許多方面顯示了突出的優(yōu)勢(shì),如高速與實(shí)時(shí)性,高可靠性,自主知識(shí)產(chǎn)權(quán)化,系統(tǒng)的重配置與硬件可重構(gòu)性,單片系統(tǒng)的可實(shí)現(xiàn)性,以及開(kāi)發(fā)技術(shù)的標(biāo)準(zhǔn)化和高效率。</p><p> 因此我們采用后面一種方案完成系統(tǒng)設(shè)計(jì),進(jìn)行數(shù)字調(diào)制解調(diào)和編碼譯碼技術(shù)的研究,使用V
14、HDL硬件描述語(yǔ)言可以快速高效地設(shè)計(jì)出具有復(fù)雜結(jié)構(gòu)和算法的系統(tǒng),同時(shí)優(yōu)化算法和結(jié)構(gòu)達(dá)到節(jié)省硬件資源和高效率開(kāi)發(fā)的特點(diǎn)。</p><p> 1.3 論文的主要工作</p><p> 本文的調(diào)制解調(diào)和編碼譯碼方法的是基于CPLD的開(kāi)發(fā)技術(shù),利用CPLD完成調(diào)制解調(diào)和編碼譯碼的過(guò)程。開(kāi)發(fā)手段是Quartus II工具軟件的應(yīng)用。</p><p><b>
15、論文安排如下:</b></p><p> 第1章:概括了調(diào)制解調(diào)器的研究背景,明確了本文的研究思路和所用方案,對(duì)本文的主要工作和文章安排進(jìn)行了介紹。</p><p> 第2章:介紹了可編程邏輯器CPLD、可編程片上系統(tǒng)開(kāi)發(fā)軟件Quartus II及硬件描述語(yǔ)言VHDL。</p><p> 第3章:介紹了系統(tǒng)的理論基礎(chǔ)及一般原理,整個(gè)系統(tǒng)采用模塊化設(shè)
16、計(jì),詳細(xì)介紹M序列、調(diào)制、解調(diào)、編碼、譯碼五個(gè)模塊的設(shè)計(jì)。</p><p> 第4章:硬件部分,畫(huà)出了整個(gè)系統(tǒng)的硬件原理圖,顯示并分析了測(cè)試到的波形。</p><p> 第5章:總結(jié)全文內(nèi)容,提出了本課題有待于進(jìn)一步深入研究的問(wèn)題。</p><p> 第2章 可編程片上系統(tǒng)開(kāi)發(fā)技術(shù)</p><p> 2.1可編程邏輯器件簡(jiǎn)介</
17、p><p> 可編程邏輯器PLD(Progr~ableLogicDeviees)從20世紀(jì)70年代發(fā)展到現(xiàn)在,己形成了許多類(lèi)型的產(chǎn)品,其結(jié)構(gòu)、工藝、集成度、速度和性能都在不斷的改進(jìn)和提高。PLD又可分為簡(jiǎn)單低密度PLD和復(fù)雜高密度PLD。</p><p> 可編程陣列邏輯器件PAL(ProgranunableArrayLogic)和通用陣列邏輯器件GAL(GenerioArrayLogic
18、)都屬于簡(jiǎn)單PLD,結(jié)構(gòu)簡(jiǎn)單,設(shè)計(jì)靈活,對(duì)開(kāi)發(fā)軟件的要求低,但規(guī)模小,難以實(shí)現(xiàn)復(fù)雜的邏輯功能。隨著技術(shù)的發(fā)展,簡(jiǎn)單PLD在集成度和性能方面的局限性也暴露出來(lái)。其寄存器、I/O引腳、時(shí)鐘資源的數(shù)目有限,沒(méi)有內(nèi)部互連,因此包括復(fù)雜可編程邏輯器件CPLD(ComPlexPLD)和現(xiàn)場(chǎng)可編程門(mén)陣列器件FPLD(Field Programmable Gate Array)在內(nèi)的復(fù)雜PLD迅速發(fā)展起來(lái),并向著高密度、高速度、低功耗以及結(jié)構(gòu)體系更靈活
19、、適用范圍更廣闊的方向發(fā)展。CPLD具備陣列型 PLD的特點(diǎn),結(jié)構(gòu)又類(lèi)似掩膜可編程門(mén)陣列,因而具有更高的集成度和更強(qiáng)大的邏輯實(shí)現(xiàn)功能,使設(shè)計(jì)變得更加靈活和易實(shí)現(xiàn)。相對(duì)于CPLD,它還可以將配置數(shù)據(jù)存儲(chǔ)在片外的EPROM或者計(jì)算機(jī)上,設(shè)計(jì)人員可以控制加載過(guò)程,在現(xiàn)場(chǎng)修改器件的邏輯功能,即所謂的現(xiàn)場(chǎng)可編程。所以CPLD得到了更普遍的應(yīng)用。</p><p> 使用CPLD器件設(shè)計(jì)數(shù)字電路,不僅可以簡(jiǎn)化設(shè)計(jì)過(guò)程,而且可
20、以降低整個(gè)系統(tǒng)的體積和成本,增加系統(tǒng)的可靠性。它們無(wú)需花費(fèi)傳統(tǒng)意義下制造集成電路所需大量時(shí)間和精力,避免了投資風(fēng)險(xiǎn),成為電子器件行業(yè)中發(fā)展最快的一族。</p><p> 2.2可編程片上系統(tǒng)開(kāi)發(fā)軟件</p><p> Altera的Quartus II開(kāi)發(fā)平臺(tái),它囊括了從設(shè)計(jì)輸入、綜合、布局布線(xiàn)、仿真、時(shí)序分析、下載驗(yàn)證等所有設(shè)計(jì)流程,是一個(gè)完整的開(kāi)發(fā)平臺(tái),能滿(mǎn)足多種設(shè)計(jì)的需要,是SO
21、PC設(shè)計(jì)的綜合環(huán)境和SOPC開(kāi)發(fā)的基本設(shè)計(jì)工具,并為 Altera DSP開(kāi)發(fā)包進(jìn)行系統(tǒng)模型設(shè)計(jì)提供了集成綜合環(huán)境。Quartus II設(shè)計(jì)工具完全支持VHDL,Verilog的設(shè)計(jì)流程,其內(nèi)部嵌有VHDL,Verilog邏輯綜合器。Quartus II可以進(jìn)行基于CPLD的DSP系統(tǒng)開(kāi)發(fā),是DSP硬件系統(tǒng)實(shí)現(xiàn)的關(guān)鍵EDA工具。</p><p> Quartusll包括模塊化的編譯器。編譯器包括的功能模塊有分析
22、綜合器、適配器、裝配器、時(shí)序分析器、設(shè)計(jì)輔助模塊、EDA網(wǎng)表文件生成器、編輯數(shù)據(jù)接口等。以通過(guò)選擇start ComPilation來(lái)運(yùn)行所有的編譯器模塊,或通過(guò)選擇 ComPilerTool,在 ComPilerTool窗口中運(yùn)行該模塊來(lái)啟動(dòng)編譯器模塊。</p><p> 此外,Quartus II還包含許多十分有用的LPM(Library of parameterized Modules)模塊,他們是復(fù)雜或
23、高級(jí)系統(tǒng)構(gòu)建的重要組成部分,在SOPC設(shè)計(jì)中被大量應(yīng)用,也可與Quartus II普通文件一起使用。Altera提供的可參數(shù)化宏功能模塊和LPM函數(shù)均基于Altera器件的結(jié)構(gòu)作了優(yōu)化設(shè)計(jì)。在許多使用情況中,必須使用宏功能模塊才可以使用某些特定器件硬件功能,如DSP模塊,片上存儲(chǔ)器,PLL等。這可以通過(guò)Quartus II中的Mega wizard Plug-in Manager來(lái)建立Altera宏功能模塊、LPM函數(shù)和IP函數(shù),用于Q
24、uartus II綜合工具中的設(shè)計(jì)。一般設(shè)計(jì)流程如圖2-1所示</p><p> 圖2-1 Quartus II 一般設(shè)計(jì)流程</p><p> 2.3硬件描述語(yǔ)言VHDL簡(jiǎn)介</p><p> 硬件描述語(yǔ)言VHDL(Very High Speed Integrated Cireuit Hardware Description Language)是一種用于設(shè)計(jì)
25、硬件電子系統(tǒng)的計(jì)算機(jī)語(yǔ)言,它用軟件編程的方式來(lái)描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式。與傳統(tǒng)的門(mén)級(jí)描述方式相比,它更適合于大規(guī)模集成電路系統(tǒng)的設(shè)計(jì)。</p><p> VHDL是一種全方位的硬件描述語(yǔ)言,包括系統(tǒng)行為級(jí)、寄存器傳輸級(jí)和邏輯門(mén)級(jí)多個(gè)設(shè)計(jì)層次,支持結(jié)構(gòu)、數(shù)據(jù)流、行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件描述語(yǔ)言的功能。</p><p> VHDL主要
26、用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,非常適用于可編程邏輯芯片的應(yīng)用設(shè)計(jì)。與其它的HDL相比,VHDL具有更強(qiáng)大的行為描述能力,從而決定了它稱(chēng)為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語(yǔ)言。強(qiáng)大的行為描述能力是避開(kāi)具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證利用VHDL語(yǔ)言設(shè)計(jì)數(shù)字系統(tǒng)硬件電路,一般采用的是自頂向下(TOP-DOWN)的設(shè)計(jì)方法。自頂向下是指從系統(tǒng)總體要求出發(fā),在頂層進(jìn)行功能方框圖的劃分和結(jié)構(gòu)設(shè)計(jì)。在方框圖一級(jí)進(jìn)
27、行仿真、糾錯(cuò),并用硬件描述語(yǔ)言對(duì)高層次的系統(tǒng)行為進(jìn)行描述,在系統(tǒng)一級(jí)進(jìn)行驗(yàn)證。然后利用綜合優(yōu)化工具生成具體門(mén)電路的網(wǎng)表,其對(duì)應(yīng)的物理實(shí)現(xiàn)級(jí)可以是CPLD電路或?qū)S眉呻娐?。由于設(shè)計(jì)的主要仿真和調(diào)試過(guò)程是在高層次上完成的,這一方面有利于早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計(jì)上的失誤,避免設(shè)計(jì)工作的浪費(fèi),同時(shí)減少了邏輯功能仿真的工作量,提高了設(shè)計(jì)的一次成功率。</p><p> 第三章 系統(tǒng)的組成及工作原理</p><
28、;p> 本課題是在QuartusII環(huán)境下,進(jìn)行移動(dòng)通信中常用調(diào)制解調(diào)方法、信道編譯碼方法研究。系統(tǒng)總原理框圖如圖3-1所示:</p><p> 3.1 M序列產(chǎn)生器</p><p> M序列是最長(zhǎng)線(xiàn)性反饋移位寄存器序列的簡(jiǎn)稱(chēng)。它是由帶線(xiàn)性的移存器產(chǎn)生的周期最長(zhǎng)的序列。</p><p> 文中的m序列是由一個(gè)4級(jí)線(xiàn)性反饋移存器產(chǎn)生的。設(shè)其初始狀態(tài)為(
29、b3,b2,b1,b0)=(1,0,1,0),則移位一次時(shí),由b1和b0模2相加產(chǎn)生新的輸入b4=1⊕0=1,新的狀態(tài)變?yōu)椋╞3,b2,b1,b0)=(1,1,0,0).這樣移位15次后又回到初始狀態(tài)(1,0,1,0)。因?yàn)?級(jí)移存器共有24=16種可能的狀態(tài)。除全“0”狀態(tài)外,只剩15種狀態(tài)可用。這就是說(shuō),由任何4級(jí)反饋移存器產(chǎn)生的序列的周期最長(zhǎng)為15.</p><p> 圖3-2 M序列產(chǎn)生原理圖<
30、/p><p> 生成的頂層文件如圖3-3所示:</p><p> 圖3-3 產(chǎn)生M序列程序的頂層文件</p><p> 基于quartus II的仿真</p><p> M序列時(shí)序仿真結(jié)果如圖3-4所示:</p><p> 圖3-4 M序列時(shí)序仿真結(jié)果</p><p> 由圖3-4可以
31、看出產(chǎn)生的M序列為“111100010011010”,與理論相符,其碼元速率為1kb/s。</p><p> 3.2 QPSK調(diào)制解調(diào)</p><p> 3.2.1多進(jìn)制相移鍵控基本原理</p><p> 在2PSK信號(hào)的表示中一個(gè)碼元的載波初始相位可以等于0或。將其推廣到多進(jìn)制,可以取多個(gè)可能值。所以,一個(gè)MPSK信號(hào)碼元可以表示為</p>&
32、lt;p><b> (式3-1)</b></p><p> 式中:A為常數(shù);為一組間隔均用的受調(diào)制相位,其值決定與基帶碼元的取值。所以它可以寫(xiě)為</p><p><b> ?。ㄊ?-2)</b></p><p> 通常M取2的某次冪:</p><p><b> K=正整數(shù)&l
33、t;/b></p><p> 對(duì)多進(jìn)制PSK信號(hào),不能簡(jiǎn)單的采用一個(gè)相干載波進(jìn)行解調(diào)。例如,若cos作為相干載波時(shí),因?yàn)?,使解調(diào)存在模糊。只有在2PSK中才可以使用一個(gè)相干載波進(jìn)行解調(diào)。這是需要兩個(gè)正交的相干載波進(jìn)行解調(diào)。MSPSK信號(hào)的碼元表示展開(kāi)寫(xiě)成</p><p><b> ?。ㄊ?-3)</b></p><p><b>
34、; 式中,</b></p><p> 上式表明,MPSK信號(hào)碼元sk(t)可以看作是由正弦和余弦兩個(gè)正交分量合成的信號(hào),他們的振幅分別是ak和bk,并且ak2 + bk2 = 1 。這就是說(shuō),MPSK信號(hào)碼元可以看作是兩個(gè)特定的MASK信號(hào)碼元之和。因此,其帶寬和MASK信號(hào)的帶寬相同。</p><p> 4PSK常稱(chēng)為正交相移鍵控(Quadrature Phase Sh
35、ift Keying,QPSK)。它的每個(gè)碼元含有2b的信息,現(xiàn)用ab代表這兩個(gè)比特。發(fā)送碼元序列在編碼時(shí)需要先將每?jī)蓚€(gè)比特分成一組,然后用4種相位之一 k去表示它。兩個(gè)比特有4種組合,即00、01、10和11。</p><p> 在碼元的表示式(3-1)中,k稱(chēng)為初始相位,常簡(jiǎn)稱(chēng)為相位,而把(0t + k)稱(chēng)為信號(hào)的瞬時(shí)相位。當(dāng)碼元中包含整數(shù)個(gè)載波周期時(shí),初始相位相同的相鄰碼元的波形和瞬時(shí)相位才是連續(xù)的。若每
36、個(gè)碼元中的載波周期數(shù)不是整數(shù),則即使初始相位相同,波形和瞬時(shí)相位也可能不連續(xù),或者波形連續(xù)而相位不連續(xù)。在碼元邊界,當(dāng)相位不連續(xù)時(shí),信號(hào)的頻譜將展寬,包絡(luò)也將出現(xiàn)起伏。</p><p> 3.2.2 QPSK 調(diào)制</p><p> QPSK即四相相移鍵控,就是四相相移調(diào)制。將360度分成4份,各個(gè)相位角相差90度,所以又稱(chēng)正交相移調(diào)制。常用的初始相位角可以是0或者45度, 一般QPS
37、K可以看成正交的兩路傳播,一路I支路,一路為Q支路。正交相移調(diào)制(QPSK)特點(diǎn):調(diào)制效率高,傳輸?shù)念l帶利用率高,要求傳送途徑的信噪比低。</p><p> QPSK信號(hào)的產(chǎn)生方法可以有兩種方法。第一種是用相乘電路,如圖3-5所示。</p><p> 圖3-5 QPSK信號(hào)產(chǎn)生方法</p><p> 圖中輸入基帶信號(hào)A(t)是二進(jìn)制不歸零碼元,它被“串/并轉(zhuǎn)換
38、”電路變成兩路碼元a和b后,其每個(gè)碼元的持續(xù)時(shí)間是輸入碼元的兩倍,這兩路并行碼元序列分別用以和兩路正交載波相乘。</p><p> 第二種方法是選擇法,其原理方框圖如圖3-6所示。這是輸入基帶信號(hào)經(jīng)過(guò)串/并轉(zhuǎn)換后用以控制一個(gè)相位選擇電路,按照當(dāng)時(shí)輸入的雙比特ab,決定選擇哪個(gè)相位的載波輸出。</p><p> 圖3-6 QPSK信號(hào)鍵控產(chǎn)生法</p><p>
39、 本文設(shè)計(jì)采用的是第二種設(shè)計(jì)方案,即鍵控法。這種方法實(shí)現(xiàn)簡(jiǎn)單?;贑PLD的Qpsk的調(diào)制原理框圖如圖3-7所示。</p><p> 圖3-7 QPSK調(diào)制原理圖</p><p> 首先是對(duì)輸入的串行碼進(jìn)行串并轉(zhuǎn)換,轉(zhuǎn)換后的碼元速率應(yīng)是串入是的一半,從而達(dá)到同步輸入輸出。將外部時(shí)鐘進(jìn)行分頻的同時(shí)產(chǎn)生四種相位,最后通過(guò)一個(gè)四選一數(shù)據(jù)選擇器對(duì)并行碼選擇相應(yīng)相位的載波進(jìn)行調(diào)制。</p
40、><p> 基于VHDL的QPSK調(diào)制器設(shè)計(jì)如圖3-8所示</p><p> 圖3-8 基于VHDL的QPSK調(diào)制器設(shè)計(jì)</p><p> 調(diào)制程序生成的頂層文件如圖3-9所示:</p><p> 圖3-9 QPSK 調(diào)制程序的頂層文件</p><p> 3.2.3 QPSK解調(diào)</p><
41、p> 由于是方波調(diào)制,所以解調(diào)時(shí)用調(diào)制時(shí)相匹配的時(shí)鐘信號(hào)找出調(diào)制波高電平或低電平對(duì)應(yīng)的位置,即可確定其不同的相位,從而解調(diào)出對(duì)應(yīng)的碼元。解調(diào)原理圖如圖3-10所示:</p><p> 圖3-10 QPSK 解調(diào)原理圖</p><p> 首先是做一個(gè)加法器,加法器的四個(gè)值對(duì)應(yīng)四種相位,其他情況以對(duì)應(yīng)零相位處理。然后通過(guò)一數(shù)據(jù)分配器將對(duì)應(yīng)的并行碼輸出,最后經(jīng)過(guò)并串轉(zhuǎn)換輸出解調(diào)后的
42、基帶信號(hào)。由于在每個(gè)周期內(nèi)輸出兩個(gè)碼元,所以輸出的基帶信號(hào)為歸零碼。</p><p> 解調(diào)程序生成的頂層文件如圖3-11所示:</p><p> 圖3-11 QPSK 解調(diào)程序的頂層文件</p><p> 3.2.4 調(diào)制解調(diào)系統(tǒng)</p><p> 將M序列、QPSK調(diào)制、QPSK解調(diào)模塊連成一個(gè)調(diào)制解調(diào)系統(tǒng),該系統(tǒng)完成了M序列的產(chǎn)
43、生,然后對(duì)M序列進(jìn)行了調(diào)制和解調(diào)。其結(jié)構(gòu)如圖3-12所示:</p><p> 圖3-12 調(diào)制解調(diào)系統(tǒng)結(jié)構(gòu)圖</p><p> 基于quartus II的仿真</p><p> 調(diào)制解調(diào)系統(tǒng)的時(shí)序仿真結(jié)果如圖3-13所示:</p><p> 圖3-13 調(diào)制解調(diào)系統(tǒng)的時(shí)序仿真結(jié)果</p><p> 圖中y0是
44、M序列的波形,y1是對(duì)M序列調(diào)制的輸出波形,y2是解調(diào)的輸出波形。其中y0和y2的波形是一樣的,只是有少許的時(shí)延,因此,該系統(tǒng)完成了對(duì)M序列的調(diào)制和解調(diào)。</p><p> 3.3 卷積碼編碼譯碼</p><p> 3.3.1糾錯(cuò)編碼基礎(chǔ)</p><p> 信道編碼的編碼對(duì)象是信源編碼器輸出的數(shù)字序列(信息序列)。信道編碼按照一定的規(guī)則給數(shù)字序列M增加一些冗余
45、的碼元,使不具有規(guī)律性的信息序列M變換為具有某種規(guī)律性的數(shù)字序列Y(碼序列)。也就是說(shuō),碼序列中信息序列的諸碼元與冗余碼元之間是相關(guān)的。在接收端,信道譯碼器利用這種預(yù)知的編碼規(guī)則來(lái)譯碼,或者說(shuō)檢測(cè)接收到的數(shù)字序列R是否符合既定的規(guī)則,從而發(fā)現(xiàn)R中是否有誤碼,進(jìn)而糾正其中的差錯(cuò)。根據(jù)相關(guān)性來(lái)檢測(cè)和糾正傳輸過(guò)程中產(chǎn)生的差錯(cuò)就是信道編碼的基本思想。</p><p> 通常數(shù)字序列M總是以k個(gè)碼元為一組來(lái)進(jìn)行傳輸?shù)?。?/p>
46、們稱(chēng)這k個(gè)碼元的碼組為信息碼組,信道編碼器按照一定的規(guī)則對(duì)每個(gè)信息碼組附加一些冗余的碼元,構(gòu)成了n個(gè)碼元的碼組。這n個(gè)碼元之間是相關(guān)的。即,附加的n一k個(gè)碼元稱(chēng)為該碼組的監(jiān)督碼元。從信息傳輸?shù)慕嵌葋?lái)說(shuō),監(jiān)督碼元不載有任何信息,所以是冗余的。這種冗余度使碼字具有一定的檢錯(cuò)和糾錯(cuò)能力,提高了傳輸?shù)目煽啃裕档土苏`碼率。另一方面,如果我們要求信息傳輸?shù)乃俾什蛔儯诟郊恿吮O(jiān)督碼元之后,就必須減少碼組中每個(gè)碼元符號(hào)的持續(xù)時(shí)間,對(duì)二進(jìn)制碼就是減少脈
47、沖寬度,若編碼前每個(gè)碼元脈沖的歸一化寬度為l,則編碼后的歸一化寬度為招h,因此信道帶寬必須展寬可k倍。在這種情況下,我們是以帶寬的兀余度換取了信道傳輸?shù)目煽啃浴H绻畔鬏斔俾试试S降低,則編碼后每個(gè)碼元的持續(xù)時(shí)間可以不變。此時(shí)我們以信息傳輸速度的冗余度或稱(chēng)時(shí)間的冗余度換取了傳輸?shù)目煽啃浴?lt;/p><p> 3.3.2卷積碼編碼</p><p> 卷積碼(convolutional co
48、de)是由伊利亞斯發(fā)明的一種非分組碼。通常它更適用于前向糾錯(cuò),因?yàn)閷?duì)于許多時(shí)間情況它的性能優(yōu)于分組碼,而且運(yùn)算較簡(jiǎn)單。</p><p> 在分組碼中,編碼器產(chǎn)生的n個(gè)碼元的一個(gè)碼組,完全決定于這段時(shí)間中k比特輸入信息。這個(gè)碼組中監(jiān)督位僅監(jiān)督本碼組中k個(gè)信息位。卷積碼則不同。卷積碼在編碼時(shí)雖然也是把k比特的信息段編成n個(gè)比特的碼組,但是監(jiān)督碼元不僅和當(dāng)前的k鼻涕信息段有關(guān),而且還同前面m=(N-1)個(gè)信息段有關(guān)。
49、所以一個(gè)碼組中的監(jiān)督碼元監(jiān)督者N個(gè)信息段。通常將N稱(chēng)為編碼約束度,并將nN稱(chēng)為編碼約束長(zhǎng)度。一般說(shuō)來(lái),對(duì)于卷積碼,k和n的值是比較小的整數(shù)。通常將卷積碼記作(n,k,N)。</p><p> 圖3-14示出卷積碼編碼的一般原理方框圖。編碼器由三種主要元件構(gòu)成,包括Nk級(jí)移存器、n個(gè)模2加法器和一個(gè)旋轉(zhuǎn)開(kāi)關(guān)。每個(gè)模2加法器的輸入端數(shù)目可以不同,他連接到一些移存器的輸出端。模2加法器的輸出端接到旋轉(zhuǎn)開(kāi)關(guān)上。將時(shí)間分
50、成等間隔的時(shí)隙,在每個(gè)時(shí)隙中有k比特從左端進(jìn)入移存器,并且移存器各級(jí)暫存的信息向右移k位。旋轉(zhuǎn)開(kāi)關(guān)每時(shí)隙旋轉(zhuǎn)一周,輸出n比特(n>k)。</p><p> 圖3-14 卷積碼編碼一般原理方框圖</p><p> 卷積編碼可以用來(lái)糾正隨機(jī)差錯(cuò)經(jīng)卷積編碼后的碼元不僅與當(dāng)前的碼元信息有關(guān), 還與前面的碼元信息有關(guān)。</p><p> 本文中的編碼是一個(gè)(2,1
51、,6)的卷積碼編碼。如圖3-15所示</p><p> 圖3-15 (2,1,6)卷積碼編碼原理方框圖</p><p> 當(dāng)初始輸入序列為b1 b2 b3 b4 …時(shí),則監(jiān)督位為: </p><p><b> C1=b1</b></p><p><b> C2=b2</b></p>
52、;<p> C3=b3 (式3-4)</p><p><b> C4=b1+b4</b></p><p> C5=b1+b2+b5</p><p> C6=b1+b2+b3+b5</p><p> 卷積碼編碼程序的頂層文件如圖3-16所示
53、:</p><p> 圖3-16 卷積碼編碼程序的頂層文件</p><p> 3.3.3卷積碼的解碼</p><p> 卷積碼的解碼方法可以分為兩類(lèi):代數(shù)解碼和概率解碼。代數(shù)解碼是利用編碼本身的代數(shù)結(jié)構(gòu)進(jìn)行解碼,不考慮信道的統(tǒng)計(jì)特性。大數(shù)邏輯解碼,又稱(chēng)門(mén)限解碼,是卷積碼代數(shù)解碼的最主要一種方法,而且設(shè)備較簡(jiǎn)單。概率解碼(又稱(chēng)最大似然解碼)則是基于信道的統(tǒng)計(jì)特性
54、和卷積碼的特點(diǎn)進(jìn)行計(jì)算。首先由沃曾克拉夫特針對(duì)無(wú)記憶信道提出的序貫解碼就是概率解碼方法之一;另一種概率解碼方法是維特比(Viterbi)算法。當(dāng)碼的約束長(zhǎng)度較短時(shí),它比序貫解碼算法的效率更高、速度更快、目前得到廣泛的應(yīng)用。</p><p><b> 大數(shù)邏輯解碼:</b></p><p> 卷積碼的大數(shù)邏輯解碼是基于卷積碼的代數(shù)表述運(yùn)算的,其一般工作原理示于3-1
55、7中。卷積碼是一種線(xiàn)性碼。線(xiàn)性碼有可能用校正子指明接收碼組中的錯(cuò)碼位置,從而糾正錯(cuò)碼。圖3-6中即利用此監(jiān)督位計(jì)算校正子。然后,將計(jì)算得出的校正子暫存,并用它來(lái)檢測(cè)錯(cuò)碼的位置。在信息位移存器輸出端,接有一個(gè)模2加電路;當(dāng)檢測(cè)到輸出的信息位有錯(cuò)時(shí),在輸出的信息位上加“1”,從而糾正之。</p><p> 圖3-17 大數(shù)邏輯解碼一般工作原理</p><p> 這里的錯(cuò)碼檢測(cè)是采用二進(jìn)制制
56、碼的大數(shù)邏輯解碼算法。它利用一組正交校驗(yàn)方程進(jìn)行計(jì)算。這里的“正交”是有特殊定義的。其定義式:若被校驗(yàn)的那個(gè)信息位出現(xiàn)在檢驗(yàn)方程組的每一個(gè)方程中,而其他的信息位至多在一個(gè)方程中出現(xiàn),則稱(chēng)這組方程為正交校驗(yàn)方程。這樣就可以根據(jù)被錯(cuò)碼影響了的方程數(shù)目在方程組中是否占多數(shù)來(lái)判斷該信息位是否錯(cuò)了。</p><p> 參照式(3-4),得到監(jiān)督關(guān)系式如下:</p><p><b> S
57、1=C1+b1</b></p><p><b> S2=C2+b2</b></p><p> S3=C3+b3 (式3-5)</p><p> S4=C4+b1+b4</p><p> S5=C5+b1+b2+b5</p>&l
58、t;p> S6=C6+b1+b2+b3+b5</p><p> 式3-5中的Si(i=1~6)稱(chēng)為校正子,經(jīng)過(guò)簡(jiǎn)單線(xiàn)性變換后,可以得出如下正交校驗(yàn)方程組:</p><p><b> S1=C1+b1</b></p><p> S4=C4+b1+b4</p><p> S5=C5+b1+b2+b5
59、 (式3-6)</p><p> S2+S6=C6+b1+b2+b3+b5</p><p> 在(式3-6)中,只有信息位b1出現(xiàn)在每個(gè)方程中,監(jiān)督位和其他信息位均最多只出現(xiàn)一次。因此,在接收端解碼時(shí),考察b1、c1至b6、c6等12個(gè)碼元,僅當(dāng)b1出錯(cuò)時(shí),式4-3中才可能有3個(gè)或3個(gè)以上方程等于“1”。從而能夠糾正b1的錯(cuò)誤。按照這一原理畫(huà)出的此(
60、2,1,6)卷積碼解碼原理方框圖示于圖4-12中。由此圖可見(jiàn),當(dāng)信息位出現(xiàn)一個(gè)錯(cuò)碼是,僅當(dāng)它位于信息位移存器的第6、3、2和1級(jí)時(shí),才使校正子等于“1”。因此,這是的校正子序列為100111;反之,當(dāng)監(jiān)督位出現(xiàn)一個(gè)錯(cuò)碼是,校正子序列將為100000.。由此可見(jiàn),當(dāng)校正子序列中出現(xiàn)第一個(gè)“1”時(shí),表示已經(jīng)檢出一個(gè)錯(cuò)碼。后面的幾個(gè)校正子則指出是信息位錯(cuò)了,還是監(jiān)督位錯(cuò)了。圖中門(mén)限電路的輸入為代表式4-3的4個(gè)方程的4個(gè)電壓。門(mén)限電路將這4個(gè)
61、電影(非模2)相加。當(dāng)相加結(jié)果大于或等于3時(shí),門(mén)限電路輸出“1”,它除了送到輸出端的模2加法器上糾正輸出碼元b1的錯(cuò)碼外,還送到校正子移存器糾正其中錯(cuò)誤。</p><p> 文中卷積碼解碼原理方框圖如圖3-18所示:</p><p> 圖3-18 (2,1,6)卷積碼解碼原理方框圖</p><p> 基于VHDL卷積碼解碼器的設(shè)計(jì)如圖3-19所示:</p
62、><p> 圖3-19 基于VHDL卷積碼解碼器的設(shè)計(jì)</p><p> 卷積碼譯碼編程的頂層文件如圖3-20所示:</p><p> 圖3-20 卷積碼譯碼編程的頂層文件</p><p> 3.3.4 卷積碼編碼譯碼系統(tǒng)</p><p> 將M序列、卷積碼編碼、大數(shù)邏輯譯碼模塊連成一個(gè)編碼譯碼系統(tǒng),該系統(tǒng)完成了
63、M序列的產(chǎn)生,然后對(duì)M序列進(jìn)行了編碼和譯碼。其結(jié)構(gòu)如圖3-21所示:</p><p> 圖3-21 卷積碼編碼譯碼系統(tǒng)結(jié)構(gòu)圖</p><p> 基于quartus II的仿真</p><p> 編碼譯碼系統(tǒng)的時(shí)序仿真結(jié)果如圖3-22所示:</p><p> 圖3-22 卷積碼編碼譯碼系統(tǒng)的時(shí)序仿真結(jié)果</p><p
64、> 圖中pn_15是M序列的波形,bm_out是對(duì)M序列編碼的輸出波形,ym_out是譯碼的輸出波形。其中pn_15和ym_out的波形是一樣的,只是有少許的時(shí)延,因此,該系統(tǒng)完成了對(duì)M序列的編碼和譯碼。</p><p> 3.4小型移動(dòng)通信系統(tǒng)</p><p> 將前面的M序列,QPSK調(diào)制、解調(diào),卷積碼編碼、譯碼模塊,全部鏈接起來(lái),組成一個(gè)小型的通信系統(tǒng)。該系統(tǒng)先產(chǎn)生M序列
65、,然后對(duì)M序列卷積碼編碼,QPSK調(diào)制,解調(diào),大數(shù)邏輯譯碼。其結(jié)構(gòu)如圖3-23所示:</p><p> 圖3-23 移動(dòng)通信系統(tǒng)結(jié)構(gòu)圖</p><p> 基于Quartus II的仿真</p><p> 移動(dòng)通信系統(tǒng)的時(shí)序仿真結(jié)果如圖3-24所示:</p><p> 圖3-24 移動(dòng)通信系統(tǒng)的時(shí)序仿真結(jié)果</p><
66、;p><b> 第四章 硬件部分</b></p><p> 硬件總原理圖如圖4-1所示:</p><p> 圖4-1硬件原理總圖</p><p> 系統(tǒng)的硬件部分主要是CPLD芯片EPM7128S和少許外圍電路組成。外圍電路產(chǎn)生了系統(tǒng)時(shí)鐘信號(hào)和Start信號(hào)作為輸入信號(hào),M序列、調(diào)制解調(diào)、編碼譯碼都是在芯片EPM7128S中完成的
67、。</p><p> 根據(jù)原理圖,畫(huà)出pcb板圖,然后做出硬件板。最后用數(shù)字示波器測(cè)量各測(cè)試點(diǎn)的波形如下所示:</p><p> 圖4-2 輸入的時(shí)鐘信號(hào)與分頻后的時(shí)鐘信號(hào)</p><p> 在圖4-2中,上面波形是通過(guò)晶振產(chǎn)生的4M的時(shí)鐘信號(hào),輸入,下面的波形是經(jīng)過(guò)4分頻輸出的信號(hào)。圖中下面的波形比上面的波形拓寬了4倍,得到了預(yù)期的結(jié)果。</p>
68、<p> 圖4-3 M序列的信號(hào)與最后的譯碼輸出信號(hào)</p><p> 在圖4-3中,上面的波形是M序列的信號(hào)波形,下面的波形是M序列信號(hào)經(jīng)過(guò)卷積編碼,QPSK調(diào)制,解調(diào),卷積譯碼后輸出的信號(hào)波形。圖中兩個(gè)波形是一樣的,只是下面波形有一些拓寬。因此,得到了預(yù)期的結(jié)果。</p><p> 圖4-4 編碼輸出信號(hào)與解調(diào)輸出信號(hào)</p><p> 在
69、圖4-4中,上面的波形是M序列編碼后的輸出信號(hào)波形,下面的波形是M序列經(jīng)過(guò)編碼,調(diào)制,解調(diào)后輸出的信號(hào)波形。圖中兩個(gè)波形是一樣的,只是有一些延時(shí)。因此,得到了預(yù)期的結(jié)果。</p><p> 下圖是所做的硬件板的實(shí)物圖,上面白色的方塊是一個(gè)4M的晶振,中間是CPLD的芯片EPM7128SLC84-15。左下角是電源的輸入線(xiàn),紅的是正極,黑的是負(fù)極。右邊是分頻時(shí)鐘、M序列、編碼、調(diào)制、解調(diào)、譯碼的測(cè)試端口。<
70、/p><p> 圖4-5 硬件實(shí)物圖</p><p><b> 第五章 總結(jié)</b></p><p> 本文介紹了可編程邏輯器CPLD、可編程片上系統(tǒng)開(kāi)發(fā)軟件Quartus II及硬件描述語(yǔ)言VHDL。調(diào)制編碼是數(shù)字通信系統(tǒng)中的一個(gè)重要部分,文中敘述了調(diào)制解調(diào)、編碼譯碼技術(shù)的理論基礎(chǔ)和實(shí)現(xiàn)方案。</p><p> 本
71、文始終采用的是模塊化得設(shè)計(jì)方法,這樣大大縮短了系統(tǒng)的開(kāi)發(fā)周期,同時(shí)也方便調(diào)制。將每一個(gè)模塊的程序封裝成一個(gè)器件,這樣有很好的移植性,每一個(gè)模塊都可以方便的應(yīng)用到其他系統(tǒng)中。</p><p> 系統(tǒng)設(shè)計(jì)雖然滿(mǎn)足最初的設(shè)計(jì)要求,但由于時(shí)間有限,本文的研究工作還不夠完善,本設(shè)計(jì)只是一個(gè)孤立的系統(tǒng),還需要通過(guò)實(shí)驗(yàn)箱把程序下載到芯片中,然后自己焊制的硬件板才能完成對(duì)M序列調(diào)制解調(diào)、編碼譯碼的全部功能。</p>
72、<p><b> 參考文獻(xiàn)</b></p><p> [1] 毋杰 康丙寅 王昭婧等,基于CPLD的片上系統(tǒng)的無(wú)線(xiàn)保密通信終端[M], 電子科技大學(xué).2009</p><p> [2] 施保華,金曉波,用CPLD構(gòu)成液晶顯示控制器[M],電子產(chǎn)品世界.2000(10)</p><p> [3] 譚進(jìn),陳勇,查光明, 無(wú)線(xiàn)電
73、臺(tái)中DS/D-MPSK調(diào)制解調(diào)器的CPLD實(shí)現(xiàn)[M],現(xiàn)代電子技術(shù)</p><p> [4] 陳浩.基于CPLD的調(diào)制解調(diào)器的研究和設(shè)計(jì)[D],華中師范大學(xué),2007(12)</p><p> [5] 晏堅(jiān),馬正新,楊寶國(guó)等,一種參數(shù)可變的BPSK/QPSK數(shù)字突發(fā)調(diào)制器的ASIC實(shí)現(xiàn)[J].無(wú)線(xiàn)電工程,2001(5) </p><p> [6] Hong
74、Y.Chung and StePhen G..Wilson.Multimode Modulation and Coding of QAM[J].IEEE Trans.on Commun,Vol.41,No.1,pp.1-6.January 1993.</p><p> [7] 鄒詡,匡鏡明.利用CPLD技術(shù)實(shí)現(xiàn)數(shù)字通信中的交織器和解交織器[J].電子技術(shù)應(yīng)用.2000(10)</p><p&
75、gt; [8] 王誠(chéng),吳繼華等著.Altera FPGA/CPLD設(shè)計(jì)(基礎(chǔ)篇)[M].北京;人民郵電出版社,2005(7)</p><p> [9] uweMcyer-Baese.數(shù)字信號(hào)處理的CPLD實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2003.</p><p> [10] 任曉東,文博.FPGA/CPLD高級(jí)應(yīng)用開(kāi)發(fā)指南[M].北京:電子工業(yè)出版社,2003</p>
76、<p> [11] 柯煒,殷奎喜.基于CPLD的連續(xù)相位耐DQPSK調(diào)制器和解調(diào)器[J].南京師范大學(xué)學(xué)報(bào).2004(3):41-44</p><p> [12] 趙海潮,周榮花,沈業(yè)兵.基于CPLD的QPSK解調(diào)器的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息.2004(7):76-77</p><p> [13] 孟慶海,張洲.VHDL基礎(chǔ)及經(jīng)典實(shí)例開(kāi)發(fā)[M].西安大學(xué)出版社,20
77、08(4)</p><p> [14] Darron. May. Advanced High-level HDL Programmable logic[J]. USA:Synplicity,Inc.Design Techniques for 2001:39-38</p><p><b> 致 謝</b></p><p> 在論文即將完成
78、之際,首先要感謝我的指導(dǎo)老師***老師,在完成畢業(yè)設(shè)計(jì)撰寫(xiě)論文的過(guò)程中,***老師都用自己專(zhuān)業(yè)的知識(shí)對(duì)我進(jìn)行悉心的教導(dǎo)和無(wú)私的幫助,他豐富的專(zhuān)業(yè)知識(shí)、開(kāi)闊的視野和敏銳的思維對(duì)我在整個(gè)畢業(yè)設(shè)計(jì)和撰寫(xiě)論文過(guò)程中,起了非常大的影響。 </p><p> 在此,還要感謝和我們班的同學(xué)。在設(shè)計(jì)過(guò)程中,通過(guò)同學(xué)的幫助,解決了許多自己無(wú)法解決的難題,他們并時(shí)常給我一些相關(guān)的信息對(duì)我的設(shè)計(jì)進(jìn)行比較大的幫助。在此,我非常感謝他們
79、!</p><p> 此外還要感謝大學(xué)四年來(lái)所有的電子信息工程學(xué)院的老師們,在他們的教誨下,我掌握電子信息工程專(zhuān)業(yè)所需要學(xué)習(xí)的基礎(chǔ)和專(zhuān)業(yè)知識(shí),為我以后的工作打下了堅(jiān)實(shí)的基礎(chǔ)。</p><p><b> 附錄1</b></p><p> 系統(tǒng)部分VHDL源代碼如下:</p><p> --QPSK調(diào)制程序:<
80、/p><p> library ieee;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity
81、PL_PSK is</p><p> port(clk :in std_logic; --系統(tǒng)時(shí)鐘</p><p> start :in std_logic; --開(kāi)始調(diào)制信號(hào)</p><p> x :in std_logic; --基帶信號(hào)</p>
82、<p> y :out std_logic); --調(diào)制信號(hào)</p><p> end PL_PSK;</p><p> architecture behav of PL_PSK is</p><p> signal q:integer range 0 to 7; --計(jì)數(shù)器</p>
83、<p> signal xx:std_logic_vector(1 downto 0); --中間寄存器</p><p> signal yy:std_logic_vector(1 downto 0); --2位并行碼寄存器</p><p> signal f:std_logic_vector(3 downto 0); --載波f</p>&
84、lt;p><b> begin</b></p><p> process(clk) --通過(guò)對(duì)clk分頻,得到4種相位;并完成基帶信號(hào)的串并轉(zhuǎn)換</p><p><b> begin</b></p><p> if clk'event and clk='1' then <
85、/p><p> if start='0' then q<=0; </p><p> elsif q=0 then q<=1;f(3)<='1'; f(1)<='0'; xx(1)<=x;yy<=xx;</p><p> elsif q=2 then q<=3;f(2)&
86、lt;='0'; f(0)<='1';</p><p> elsif q=4 then q<=5;f(3)<='0'; f(1)<='1'; xx(0)<=x;</p><p> elsif q=6 then q<=7;f(2)<='1'; f(0)<=
87、9;0';</p><p> elsif q=7 then q<=0;</p><p> else q<=q+1;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end p
88、rocess; </p><p> --if yy="11" then y<=f(0);</p><p> --elsif yy="10" then y<=f(1);</p><p> --elsif yy="01" then y<=f(2);</p><p>
89、; --else y<=f(3);</p><p><b> --end if;</b></p><p> y<=f(0) when yy="11" else --根據(jù)yy寄存器數(shù)據(jù),輸出對(duì)應(yīng)的載波</p><p> f(1) when yy="10" else&
90、lt;/p><p> f(2) when yy="01" else</p><p> f(3); </p><p> end behav;</p><p> --QPSK解調(diào)程序:</p><p> --說(shuō)明:解調(diào)信號(hào)說(shuō)明如下表所示
91、。將一個(gè)信號(hào)周期分成4份,高電平權(quán)值分別為0、0、0、0,低電平權(quán)值分別為1、1、2、3。</p><p> library ieee;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_
92、logic_unsigned.all; </p><p> entity MPSK is</p><p> port(clk_0 :in std_logic; --系統(tǒng)時(shí)鐘</p><p> clk_1 :in std_logic;</p><p> start :in std_logic;
93、 --同步信號(hào) </p><p> x :in std_logic; --已調(diào)信號(hào)</p><p> y :out std_logic); --基帶信號(hào)</p><p><b> end MPSK;</b></p><p> arch
94、itecture behav of MPSK is</p><p> signal q:integer range 0 to 7; --計(jì)數(shù)器</p><p> signal xx:std_logic_vector(2 downto 0); --加法器</p><p> signal yyy:std_logic_vector(1 do
95、wnto 0); --2位并行基代信號(hào)寄存器</p><p> signal yy:std_logic_vector(2 downto 0); --寄存xx數(shù)據(jù)</p><p><b> begin</b></p><p> process(clk_1)</p><p><b> begin<
96、;/b></p><p> if clk_1'event and clk_1='1' then </p><p> if start='0' then q<=0;</p><p> elsif q=0 then q<=1;yy<=xx; y<=yyy(0);</p><p
97、> elsif q=1 then q<=2; --把加法計(jì)數(shù)器的數(shù)據(jù)送入yy寄存器</p><p> if x='0' then xx<="001"; --調(diào)制信號(hào)x為低電平時(shí),送入加法器的數(shù)據(jù)“001”</p><p> else xx<="000";</p>
98、;<p><b> end if; </b></p><p> elsif q=2 then q<=3;</p><p> elsif q=3 then q<=4; </p><p> if x='0' then xx<=xx+"001";
99、 --調(diào)制信號(hào)x為低電平時(shí),送入加法器的數(shù)據(jù)“001”</p><p><b> end if;</b></p><p> elsif q=4 then q<=5; y<=yyy(1);</p><p> elsif q=5 then q<=6; </p><p> if x=&
100、#39;0' then xx<=xx+"010"; --調(diào)制信號(hào)x為低電平時(shí),送入加法器的數(shù)據(jù)“010”</p><p><b> end if; </b></p><p> elsif q=6 then q<=7;</p><p> elsif q=7 then q<=0;<
101、;/p><p> if x='0' then xx<=xx+"011"; --調(diào)制信號(hào)x為低電平時(shí),送入加法器的數(shù)據(jù)“011”</p><p><b> end if;</b></p><p><b> end if;</b></p><p>&
102、lt;b> end if;</b></p><p> end process;</p><p> process(clk_0,yy) --此進(jìn)程根據(jù)yy寄存器里的數(shù)據(jù)進(jìn)行譯碼</p><p><b> begin</b></p><p> if clk_0&
103、#39;event and clk_0='1' then</p><p> if yy="101" then yyy<="00"; --yy寄存器“101”對(duì)應(yīng)基帶碼“00”</p><p> elsif yy="011" then yyy<="01"; -
104、-yy寄存器“011”對(duì)應(yīng)基帶碼“01”</p><p> elsif yy="010" then yyy<="10"; --yy寄存器“010”對(duì)應(yīng)基帶碼“10”</p><p> elsif yy="100" then yyy<="11"; --yy寄存器“100”對(duì)應(yīng)基帶碼
105、“11”</p><p> else yyy<="00";</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p> end behav
106、;</p><p> --卷積碼編碼程序:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsig
107、ned.all;</p><p> entity bm is</p><p> port(start :in std_logic; --使能信號(hào)</p><p> clk :in std_logic; --時(shí)鐘入口</p><p> bm_i
108、n :in std_logic; --輸入數(shù)據(jù)</p><p> bm_out :out std_logic); --輸出數(shù)據(jù)</p><p><b> end bm;</b></p><p> architecture rtl of bm is<
109、;/p><p> signal registerb1 :std_logic; --定義8個(gè)寄存器</p><p> signal registerb2 :std_logic;</p><p> signal registerb3 :std_logic;</p><p> s
110、ignal registerb4 :std_logic;</p><p> signal registerb5 :std_logic;</p><p> signal registerb6 :std_logic;</p><p> signal registery :std_logic;</p&g
111、t;<p> signal q :integer range 0 to 1;</p><p><b> begin</b></p><p> process(clk,start)</p><p><b> begin</b></p><p>
112、if(start='0')then --復(fù)位信號(hào)為1時(shí),清零</p><p> bm_out<='0';</p><p><b> q<=0;</b></p><p> registery<='0';</p&g
113、t;<p> registerb1<='0';</p><p> registerb2<='0';</p><p> registerb3<='0';</p><p> registerb4<='0';</p><p> regis
114、terb5<='0';</p><p> registerb6<='0';</p><p><b> else</b></p><p> if(clk'event and clk='1') then</p><p> --------移位寄存器移
115、位操作</p><p> registerb1<=registerb2;</p><p> registerb2<=registerb3;</p><p> registerb3<=registerb4;</p><p> registerb4<=registerb5;</p><p>
116、 registerb5<=registerb6;</p><p> registerb6<=bm_in;</p><p> --------根據(jù)生成多項(xiàng)式進(jìn)行模2相加運(yùn)算</p><p> registery<=registerb6 xor registerb3 xor registerb2 xor registerb1;--并串轉(zhuǎn)換&l
117、t;/p><p> if (q=0) then</p><p> bm_out<=registerb6;</p><p><b> q<=1;</b></p><p><b> else</b></p><p> bm_out<=registery;&
118、lt;/p><p><b> q<=0;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> e
119、nd process;</p><p><b> end rtl;</b></p><p> --大數(shù)邏輯譯碼程序:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_lo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)----通信技術(shù)中信道編碼技術(shù)的研究
- 編碼與調(diào)制-移動(dòng)通信系統(tǒng)關(guān)鍵技術(shù)研究.pdf
- 通信專(zhuān)業(yè)畢業(yè)設(shè)計(jì)---移動(dòng)通信關(guān)鍵技術(shù)的探討
- 畢業(yè)設(shè)計(jì)論文通信信號(hào)的調(diào)制、識(shí)別、算法研究
- 基于cpld的頻率計(jì)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 通信畢業(yè)設(shè)計(jì)----基于vhdl的ask調(diào)制與解調(diào)設(shè)計(jì)與實(shí)現(xiàn)
- 無(wú)線(xiàn)通信的調(diào)制編碼
- 基于聲光調(diào)制PPM編碼的激光通信技術(shù)研究.pdf
- 協(xié)作通信中的高效編碼調(diào)制技術(shù)研究.pdf
- 無(wú)線(xiàn)通信中的編碼調(diào)制技術(shù)研究.pdf
- 移動(dòng)通信中的分層調(diào)制技術(shù)研究.pdf
- 移動(dòng)通信中自適應(yīng)調(diào)制技術(shù)的研究.pdf
- 基于cpld的頻率測(cè)量計(jì)畢業(yè)設(shè)計(jì)
- 基于matlab的移動(dòng)通信中數(shù)字調(diào)相技術(shù)的研究與仿真畢業(yè)設(shè)計(jì)(論文)
- 基于ldpc碼的衛(wèi)星通信自適應(yīng)編碼調(diào)制技術(shù)研究
- 超寬帶通信中編碼與調(diào)制技術(shù)的研究.pdf
- 畢業(yè)設(shè)計(jì)--光纖通信中的線(xiàn)路編碼
- 基于LDPC碼的衛(wèi)星通信自適應(yīng)編碼調(diào)制技術(shù)研究.pdf
- 信號(hào)調(diào)制通信系統(tǒng)設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 某通信電臺(tái)的網(wǎng)格編碼調(diào)制設(shè)計(jì).pdf
評(píng)論
0/150
提交評(píng)論