2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(論文)</p><p><b> ?。ǘ?屆)</b></p><p>  信號調(diào)制通信系統(tǒng)設(shè)計</p><p>  所在學院 </p><p>  專業(yè)班級 電子信息工程 </p>

2、<p>  學生姓名 學號 </p><p>  指導教師 職稱 </p><p>  完成日期 年 月 </p><p><b>  摘 要</b></p><p>  21世

3、紀是信息時代,人們的生活充滿著信息的氣息。電視機,電話機,傳真機等等都是信息的產(chǎn)物。然而,信息的傳遞是一種特殊的過程。以前傳統(tǒng)的模擬通信是采用調(diào)頻(FM)和調(diào)幅(AM)兩種方式,但是這已經(jīng)不適應(yīng)當今高速數(shù)據(jù)傳輸?shù)耐ㄐ乓罅恕,F(xiàn)在,數(shù)字無線數(shù)據(jù)通信方式已經(jīng)成為主力軍,它包括振幅鍵控、移頻鍵控和相移鍵控。它有誤碼率低,抗噪聲性能好等優(yōu)點。本設(shè)計是根據(jù)數(shù)字信號FSK/PSK調(diào)制的工作原理,采用模塊化的設(shè)計方法來設(shè)計一種基于FPGA的信號調(diào)制通

4、信系統(tǒng)。</p><p>  本設(shè)計在Xilinx公司ISE6.0 開發(fā)軟件平臺上,利用VHDL語言運用自頂向下的系統(tǒng)設(shè)計方法,在FPGA芯片上設(shè)計FSK/PSK系統(tǒng)。在系統(tǒng)設(shè)計完畢后,通過modelsim6.1b集成環(huán)境進行仿真、綜合、驗證。</p><p>  關(guān)鍵詞:移頻鍵控(FSK),相移鍵控(PSK),F(xiàn)PGA </p><p>  The design

5、of signal modulation communication system</p><p><b>  Abstract</b></p><p>  The 21st century is the information age, people's life is full of information on the air. TV, telephon

6、es, fax machines, etc. are all products of the information. However, the information transfer is a special process.Long ago, the communication is using of traditional analog frequency modulation (FM) and amplitude modula

7、tion (AM) in two ways, but this has not suited to today's high-speed data communication request. Now, the digital wireless data communication has become the main force, which inc</p><p>  The design is b

8、ased on the Xilinx ISE6.0 development software platform ,using VHDL language and the top-down system design approach to design FSK / PSK system on the FPGA chip. The simulation, synthesis, verification is based on the in

9、tegration environment of modelsim6.1b after the modulation system design.</p><p>  Keywords: frequency shift keying(FSK),phase shift keying(PSK), FPGA</p><p><b>  目 錄</b></p>

10、<p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  1 緒論1</b></p><p>  1.1 課題的來源和意義1</p><p>  1.2 信號調(diào)制技術(shù)國內(nèi)外發(fā)展現(xiàn)狀1</p><p>  

11、1.3 信號調(diào)制技術(shù)的發(fā)展方向2</p><p>  1.4信號調(diào)制技術(shù)面臨的問題2</p><p>  1.5 課題研究的主要內(nèi)容2</p><p>  2 信號調(diào)制系統(tǒng)的概述4</p><p>  2.1 信號調(diào)制的概念4</p><p>  2.2 信號調(diào)制的作用4</p><p&

12、gt;  2.3 信號調(diào)制的分類4</p><p>  2.4 信號調(diào)制系統(tǒng)的基本結(jié)構(gòu)4</p><p>  2.4.1 FSK調(diào)制信號產(chǎn)生原理5</p><p>  2.4.2 PSK調(diào)制原理5</p><p>  3 信號調(diào)制通信系統(tǒng)硬件電路設(shè)計7</p><p>  3.1 信號調(diào)制通信系統(tǒng)的組成7&

13、lt;/p><p>  3.2 信號調(diào)制系統(tǒng)各模塊設(shè)計方法7</p><p>  3.2.1 分頻器設(shè)計方法7</p><p>  3.2.2 選擇器設(shè)計方法8</p><p>  3.2.3 M序列產(chǎn)生器設(shè)計方法8</p><p>  3.2.4 正弦波信號產(chǎn)生器設(shè)計方法9</p><p&

14、gt;  3.2.5 跳變檢測設(shè)計方法10</p><p>  3.3 信號調(diào)制系統(tǒng)工作原理11</p><p>  4 基于FPGA的信號調(diào)制通信系統(tǒng)軟件設(shè)計12</p><p>  4.1 基于FPGA的信號調(diào)制概念12</p><p>  4.2 主要設(shè)計實現(xiàn)目標12</p><p>  4.3 信號調(diào)

15、制系統(tǒng)各模塊設(shè)計12</p><p>  4.3.1 分頻器模塊設(shè)計12</p><p>  4.3.2 M序列產(chǎn)生器模塊設(shè)計13</p><p>  4.3.3 正弦波產(chǎn)生器模塊設(shè)計15</p><p>  4.4 信號調(diào)制系統(tǒng)各功能設(shè)計21</p><p>  4.4.1 正弦波調(diào)頻功能設(shè)計21<

16、/p><p>  4.4.2 正弦波調(diào)相功能設(shè)計26</p><p>  4.5 系統(tǒng)綜合功能29</p><p><b>  結(jié) 論40</b></p><p>  參 考 文 獻42</p><p>  致 謝錯誤!未定義書簽。</p><p><b>

17、  附 錄44</b></p><p><b>  1 緒論</b></p><p>  1.1 課題的來源和意義</p><p>  自從進入21世紀,人類開始進入了信息化時代,信息已成為生活的必不可少的內(nèi)容。人們的得知都來源于信息的高速傳播。古代的信息傳播靠傳統(tǒng)的信件,其傳輸速度非常慢,無法滿足當今人類的信息需求量。因此,信息

18、的傳遞方式必須適應(yīng)信息時代。</p><p>  本設(shè)計研究的是設(shè)計信號調(diào)制系統(tǒng),之所以要設(shè)計這個項目,是因為信號調(diào)制在人們的生活中已經(jīng)不可分割了。信號調(diào)制在信號的傳輸中起了不可代替的作用。</p><p>  很久很久以前,人們曾經(jīng)尋找各種方法,用來實現(xiàn)信號傳輸。例如,我們古代利用烽火來傳送邊疆報警信號,這種光信號的傳輸成為了我國最造的通信系統(tǒng)。1837年的莫爾斯發(fā)明了電報。后來在187

19、6年,貝爾發(fā)明了電話,將聲信號轉(zhuǎn)換為點信號沿著導線直接傳送。19世紀,人們又開始研究用電磁波傳送無線電信號[1]。一直到今天,傳送信號的速度越來越快,這些就是歸功于信號的快速傳輸。而信號的傳輸并非直接傳輸,而是要經(jīng)過特殊的處理之后,才能有效的,高速的,正確的接收到信號。而且,信號的長距離傳輸必定會損耗能量,影響最后的接收。</p><p>  所以,為達到減少傳輸時的耗損的目的,一般情況人們第一步對傳輸信號進行必

20、要的處理,然后再準備傳遞。把初始的待傳信號附加到高頻振蕩的操作就叫作調(diào)制,只有這樣,信號才能在載波的作用下,能量在傳輸過程中的損耗才能達到最小,使接收端收到有效信[2][3]。</p><p>  1.2 信號調(diào)制技術(shù)國內(nèi)外發(fā)展現(xiàn)狀</p><p>  如今,信號調(diào)制這個技術(shù)在國內(nèi)外的發(fā)展可是突飛猛進。信號調(diào)制的方式在目前技術(shù)上只有存在兩種:它們分別是數(shù)字調(diào)制和模擬調(diào)制。其中,模擬調(diào)制系統(tǒng)

21、,不僅我國,還有國外的其它國家都采用兩種調(diào)制方法:幅度調(diào)制(線性調(diào)制),角度調(diào)制(非線性調(diào)制)。而在幅度調(diào)制中采用了雙邊帶調(diào)制(DSB)、單邊帶調(diào)制(SSB)和殘留邊帶調(diào)制。另一個調(diào)制角度調(diào)制則采用了頻率調(diào)制(FM)。這么多種類的調(diào)制方式,完全可以在各種領(lǐng)域中得到應(yīng)用了。不僅調(diào)制方式有多種,連信號調(diào)制通信系統(tǒng)的開發(fā)技術(shù)也層出不窮。目前最流行的技術(shù)是一種基于DDS技術(shù)的通信信號調(diào)制。所謂DDS,就是直接數(shù)字頻率合成。這是由著名的J.Tie

22、rncy提出的。它是以數(shù)字信號處理為理論基礎(chǔ)的,從相位概念出發(fā)直接合成所需波形的一種信得全數(shù)字技術(shù)的頻率合成方法。隨著大規(guī)模集成電路的發(fā)展,DDS技術(shù)有了突飛猛進的發(fā)展,慢慢的成為了最重要的頻率合成技術(shù)了[4][5]。</p><p>  正巧,利用FPGA可實現(xiàn)DDS技術(shù)的信號調(diào)制。而FPGA也是當今應(yīng)用最廣泛的一種技術(shù),兩種應(yīng)用最廣泛的技術(shù)的絕配組合,使通信信號調(diào)制技術(shù)突飛猛進[6] [7]。</p&g

23、t;<p>  1.3 信號調(diào)制技術(shù)的發(fā)展方向</p><p>  調(diào)制在電子通信學中是非常重要的。其發(fā)展方向是:1)由于數(shù)字領(lǐng)域的不斷發(fā)展,數(shù)字通信系統(tǒng)的容量需要不斷擴充,這就要求發(fā)展超高速率的數(shù)字調(diào)制技術(shù);2)為了充分利用無線電頻譜資源,要求更深一步的研究頻譜效率高的和誤碼率低的調(diào)制方式;3)在相干光通信和光盤存儲設(shè)備方面,光相位調(diào)制、頻率調(diào)制和偏振調(diào)制等的研究也是非常重要的研究課題[8]。&l

24、t;/p><p>  1.4信號調(diào)制技術(shù)面臨的問題</p><p>  隨著通信技術(shù)的進步和調(diào)制方式的發(fā)展,自然在通信信號調(diào)制的模式中也不斷面臨挑戰(zhàn),開發(fā)者嘗試著將各種新思維、新理念、新方法、新技術(shù)、新工具和新理論運用其中,以達到能有更好的識別效果。當然,也還有很多問題或不足的方面仍需要進一步的研究:</p><p>  (1)如何提高有限樣本特別是小樣本情況下不同調(diào)制

25、類型信號的識別率;</p><p>  (2)如何提高大信噪比變化范圍內(nèi)特別是低信噪比情況下不同調(diào)制類型信號的識別率;</p><p>  (3)基于現(xiàn)代信號處理方法尋找計算量更小、識別性能更好的新識別特征參數(shù);</p><p>  (4)目前對通信信號調(diào)制識別的研究是在同一接收信道中同時只存在一個信道的前提下進行的;</p><p>  隨

26、著無線電通信技術(shù)的發(fā)展,同時出現(xiàn)兩個或多個通信信號的現(xiàn)象難以避免,如何實現(xiàn)對共信道的多個通信信號的調(diào)制模式實現(xiàn)自動識別,值得進一步研究;</p><p>  (5)調(diào)制識別方法在軟件無線電中的應(yīng)用,也是一個值得研究的方向。利用軟件無線電、自動化控制技術(shù),結(jié)合硬件解調(diào)及數(shù)據(jù)采集,實現(xiàn)信號的自動接收和解調(diào),具有重要的應(yīng)用前景[9]。</p><p>  1.5 課題研究的主要內(nèi)容</p&

27、gt;<p>  實現(xiàn)一個FSK/PSK信號調(diào)制通信系統(tǒng)。該系統(tǒng)由分頻器、數(shù)據(jù)選擇器、m序列發(fā)生器、正弦波產(chǎn)生器、彈跳消除電路等模塊組成。利用FPGA器件產(chǎn)生波形所需數(shù)據(jù),再通過正弦波產(chǎn)生器輸出波形。 要求完成: (1) 系統(tǒng)硬件電路設(shè)計 </p><p>  根據(jù)設(shè)計的要求,對硬件進行適當?shù)脑O(shè)計。在設(shè)計過程中要遵守簡單,花費少等原則。(2) 系統(tǒng)軟件設(shè)計 </p><p&

28、gt;  對分頻器、數(shù)據(jù)選擇器、m序列發(fā)生器、正弦波產(chǎn)生器、彈跳消除電路5個模塊分別采用VHDL語言描述,并成功將5個模塊程序整合起來,實現(xiàn)系統(tǒng)的FSK/PSK兩個功能模塊。(3) 系統(tǒng)仿真與調(diào)試</p><p>  編程完成后,對程序進行時序仿真,行為仿真,直到仿真正確。</p><p>  2 信號調(diào)制系統(tǒng)的概述</p><p>  2.1 信號調(diào)制的概念&l

29、t;/p><p>  調(diào)制就是將我們所要的信號進行處理然后再加載到高頻載波上,使它成為有益于信號傳播的形式的一系列過程。其實就是使載波隨信號而改變的技術(shù)。一般情況,我們所需的有用信號,即信號源,存在兩種分量,它們分別是直流分量和低頻頻率分量,它被稱為基帶信號?;鶐盘枱o法進行長遠距離的傳輸,原因很簡單,因為能量在途中極易損耗。所以必須要把低頻的基帶信號轉(zhuǎn)換成高頻的基帶信號來進行傳播。而這已變成的高頻率基帶信號就叫做調(diào)

30、制信號,這個信號稱為已調(diào)信號。所以說,調(diào)制信號就是通過改變高頻載波的幅度,相位,頻率,使它隨著基帶信號的改變而改變來實現(xiàn)調(diào)制的。當然,有調(diào)制,就肯定有解調(diào),沒有解調(diào)的信號是不能接收使用的。而解調(diào)就是將信號從載波中提取出來,然后進行一些處理是接收者使用。這里就對解調(diào)不做作詳細的介紹了[10]。</p><p>  2.2 信號調(diào)制的作用</p><p>  信號調(diào)制的作用不僅僅能減少信號在長

31、遠距離傳輸過程中所要消耗的能量,而且還有其它的作用。由于天線的尺寸一定要與信號的波長相匹配,而低頻信號的波長很長,無法制作相對長度的天線尺寸,所以必須要對信號進行調(diào)制處理,使信號轉(zhuǎn)變?yōu)楦哳l載波上而使波長變短,有利于天線的制作[11]。</p><p>  還有一個作用就是,將低頻信號調(diào)制到高頻信號能實現(xiàn)頻分復用。</p><p>  2.3 信號調(diào)制的分類</p><p

32、>  信號調(diào)制技術(shù)主要用來將數(shù)字或模擬信號轉(zhuǎn)換成特殊的模擬信號。常用的模擬信號的調(diào)制技術(shù)有三種:(1)改變載波的振幅稱振幅調(diào)制(ASK)。(2)改變載波的頻率稱頻率調(diào)制(FSK)。(3)改變載波的相位稱相位調(diào)制(PSK)。 </p><p>  2.4 信號調(diào)制系統(tǒng)的基本結(jié)構(gòu)</p><p>  根據(jù)設(shè)計的要求,本設(shè)計只設(shè)計頻率調(diào)制(FSK)和相位調(diào)制(PSK)這兩種調(diào)制方式[

33、12]。</p><p>  2.4.1 FSK調(diào)制信號產(chǎn)生原理</p><p>  FSK正弦波調(diào)制信號發(fā)生氣的設(shè)計原理是通過兩個計數(shù)器對基準時鐘信號進行分頻,從而得到兩個不同頻率的時鐘信號。這兩個不同頻率的時鐘信號在選擇器的選擇下,作為正弦波產(chǎn)生器的輸入時鐘,從而在不同的頻率時鐘下產(chǎn)生兩種不同頻率的正弦波。而選擇器的的指令由M隨機序列輸出的循環(huán)序列決定。圖2-1為FSK調(diào)制信號產(chǎn)生原理

34、圖[13]。</p><p>  圖2-1 FSK調(diào)制信號產(chǎn)生原理圖</p><p>  FSK調(diào)制信號的效果圖如圖2-2,當M序列產(chǎn)生器輸出為“1”和“0”時,波形產(chǎn)生器輸出的波形頻率不一樣。</p><p>  圖2-2 FSK波形調(diào)制效果圖</p><p>  2.4.2 PSK調(diào)制原理</p><p>  在給

35、定的時鐘信號下,通過設(shè)計所需模值的分頻器,產(chǎn)生正弦波產(chǎn)生器的輸入時鐘信號,在正弦波產(chǎn)生器中產(chǎn)生穩(wěn)定的正弦波。其中一路對正弦波相移180度,然后給選擇器,另一路則不需要任何處理直接給選擇器,供選擇器選擇不同的波形。而選擇器的控制信號由外部輸入信號“mode”給定的。這樣就能實現(xiàn)PSK調(diào)制[14][15]。圖2-3為PSK調(diào)制系統(tǒng)的框圖。</p><p>  圖2-3 PSK調(diào)制系統(tǒng)的框圖</p>&l

36、t;p>  有了以上的框圖,就知道了只要給定“mode”的值,波形就能調(diào)相。其具體的PSK調(diào)制系統(tǒng)的效果圖如圖2-4。當“mode”跳變時,波形的相位就改變180度,達到PSK效果。</p><p>  圖2-4 PSK信號波形圖</p><p>  3 信號調(diào)制通信系統(tǒng)硬件電路設(shè)計</p><p>  3.1 信號調(diào)制通信系統(tǒng)的組成</p>&

37、lt;p>  信號調(diào)制通信系統(tǒng)的總系統(tǒng)一共分為6個部分,它們分別是分頻器、M序列產(chǎn)生器、跳變檢測、選擇器、正弦波產(chǎn)生器和DAC(數(shù)/模轉(zhuǎn)換器)。其中原設(shè)計要求中有彈跳消除電路,在實際設(shè)計中,我已經(jīng)把這一部分給刪去了,但是增加了跳變檢測模塊,使設(shè)計更加簡便[16][17]。系統(tǒng)框圖如圖3-1所示。</p><p>  圖3-1 信號調(diào)制通信系統(tǒng)FSK/PSK框圖</p><p>  3

38、.2 信號調(diào)制系統(tǒng)各模塊設(shè)計方法</p><p>  3.2.1 分頻器設(shè)計方法</p><p>  本設(shè)計只有一個輸入時鐘信號,所以為了能得到不同頻率的信號,必須采用分頻器來滿足這個要求。本設(shè)計沒有具體要求數(shù)據(jù)的速率,故我依照簡便的原則,設(shè)計了數(shù)據(jù)速率為4.5kb/s,所以要求產(chǎn)生4.5khz和9khz兩個正弦波。由于要對正弦波的每個周期進行100個采樣,所以本設(shè)計需要用到3個時鐘信號,

39、它們分別是4.5khz的數(shù)據(jù)速率,450khz的產(chǎn)生4.5khz正弦波信號的輸入時鐘,900khz的產(chǎn)生9khz正弦波信號的輸入時鐘。</p><p>  有了以上目標,則可以根據(jù)18mhz基準時鐘,通過分頻器產(chǎn)生這些頻率的信號:設(shè)計一個模為20的分頻器以產(chǎn)生900khz信號,在900khz的基礎(chǔ)上再設(shè)計一個模為2的分頻器以產(chǎn)生450khz信號,在450khz的基礎(chǔ)上再設(shè)計一個模為100的分頻器以產(chǎn)生4.5khz

40、信號[18]。</p><p>  3.2.2 選擇器設(shè)計方法</p><p>  本設(shè)計采用2選1的數(shù)據(jù)選擇器,用來選擇兩種不同頻率的時鐘信號作為正弦波產(chǎn)生器的輸入,產(chǎn)生兩種不同頻率的正弦波。具體情況中,當信碼為“1”時,數(shù)據(jù)選擇器選擇900kHz的信號,此時正弦波產(chǎn)生一個頻率為9kHz的正弦波。當信碼為“0”時,數(shù)據(jù)選擇器選擇450kHz的信號,此時正弦波產(chǎn)生一個4.5kHz的正弦波。

41、</p><p>  3.2.3 M序列產(chǎn)生器設(shè)計方法</p><p>  M序列是偽隨機序列的其中一種,它在通信領(lǐng)域中得到廣泛的應(yīng)用。那為什么它能這么有用呢?原因在于它具有隨機特性,預(yù)先可確定性和循環(huán)特性[19]。</p><p>  本設(shè)計采用了一種帶有兩個反饋抽頭的3級反饋移位寄存器,其電路圖如圖3-2。</p><p>  圖3-2

42、 M序列產(chǎn)生器電路結(jié)構(gòu)</p><p>  根據(jù)此電路圖,可以方便的寫出M序列產(chǎn)生器的真值表。假設(shè)初始狀態(tài)Q1=Q2=Q3=0。則真值表如表3-1。</p><p>  表3-1 M序列產(chǎn)生器真值</p><p>  根據(jù)真值表的數(shù)值,發(fā)現(xiàn)5到11為一個周期循環(huán)。故我選取Q3的值為信號,選取第5到11的Q3值為信碼值,即“1110010”,以此控制選擇器選擇兩種不同

43、頻率的信號產(chǎn)生不同的頻率的正弦波。</p><p>  3.2.4 正弦波信號產(chǎn)生器設(shè)計方法</p><p>  根據(jù)奈奎斯特定理,如果要使原模擬信號不失真的恢復出來,那其抽樣頻率必須大于模擬信號的頻率的2倍。本設(shè)計采用對正弦波的每個周期進行100個采樣,即采樣的速率是原來正弦波頻率的100倍,這樣完全滿足奈奎斯特定理,所以完全可以在接收端將原來正弦波信號不失真地恢復出來從而可以在接收端對

44、FSK信號正確的解調(diào)出來[20]。</p><p>  為了能使輸出波形達到理想效果,決定每個采樣點采用8位量化編碼,即8位分辨率,即每個采樣點的值用8位的二進制碼表示。</p><p>  本設(shè)計采用狀態(tài)機的方式來實現(xiàn)正弦波信號產(chǎn)生器。由上面分析得出,需要100個狀態(tài),記作S1-S100。其中對于正弦波的100個抽樣的取值的取法,由于正弦波波形的各點的斜率不同,其增長的大小也不同。其大致

45、規(guī)律為靠近零點處的斜率大,靠近波峰和波谷處得斜率小。所以根據(jù)這個規(guī)律,可以粗略的100個抽樣取值。具體值如表3-2.</p><p>  表3-2 正弦波100個抽樣值</p><p>  3.2.5 跳變檢測設(shè)計方法</p><p>  跳變檢測的作用是檢測電平的跳變情況,有跳變則輸出一個信號。其在本設(shè)計中的用途是使正弦波形保證一個連續(xù)不突變的波形。具體分析如下:

46、當控制調(diào)相的電平從“0”跳變到“1”時,跳變檢測電路則檢測出跳變,同時開始檢測M序列產(chǎn)生器的輸入時鐘的跳變,當M序列產(chǎn)生器的輸入時鐘從“0”跳變到“1”時,則改變正弦波相位,以此保證每次調(diào)相都在坐標原點,即sin0處,使正弦波保持一個連續(xù)不突變的波形。圖3-3為跳變檢測電路圖。</p><p>  圖3-3 跳變檢測電路圖</p><p>  我們對這個跳變檢測電路圖作簡要的分析:基帶碼元

47、通過D觸發(fā)器后數(shù)值不變。所以在基帶碼元不變的情況下,異或門的兩個輸入值是一樣的,則跳變輸出為“0”。但是當基帶碼元突然跳變(指跳變的以瞬間),異或門的上面的輸入信號也立刻跳變信號,而下面的輸入信號由于要經(jīng)過D觸發(fā)器,所以有延時,因此下面的輸入信號不能立刻跳變,它得保持一段時間。因此異或門的兩個輸入信號變的不一樣,導致異或門輸出變“1”。從而起到跳變檢測的作用。</p><p>  3.3 信號調(diào)制系統(tǒng)工作原理&l

48、t;/p><p>  本設(shè)計的工作原理是這樣的:本設(shè)計的基準時鐘信號clock的頻率為18MHZ。然后clock經(jīng)過模為20的分頻器產(chǎn)生頻率為900KHZ的信號load_clk,load_clk再經(jīng)過模為2的分頻器產(chǎn)生頻率為450KHZ的信號load_clk1。load_clk和load_clk1作為正弦波產(chǎn)生器的輸入時鐘信號。load_clk1再經(jīng)過模為100的分頻器產(chǎn)生頻率為4.5KHZ的信號coderate,作

49、為m序列產(chǎn)生器的輸入時鐘信號。在M序列產(chǎn)生器中產(chǎn)生“1110010”序列,來控制選擇正弦波產(chǎn)生器的輸入時鐘信號。當信碼為“1”時,選擇器選擇load_clk作為正弦波產(chǎn)生器的輸入時鐘信號,否則選擇load_clk1。這樣就可以自動的根據(jù)“1110010”這個序列進行調(diào)頻。至于調(diào)相,當mode信號為“1”時,通過跳變檢測來檢測coderate的上升沿跳變,一旦跳變,則正弦波倒相。當mode為“0”時,檢測到coderate的上升沿跳變,則

50、正弦波正相。正弦波倒相時,其頻率一律采用load_clk的頻率。</p><p>  4 基于FPGA的信號調(diào)制通信系統(tǒng)軟件設(shè)計</p><p>  4.1 基于FPGA的信號調(diào)制概念</p><p>  本設(shè)計是基于FPGA技術(shù)的信號調(diào)制通信系統(tǒng),是采用VHDL語言對信號調(diào)制通信系統(tǒng)的分頻器,選擇器,M序列產(chǎn)生器,跳變檢測,正弦波產(chǎn)生器分別進行編程設(shè)計,并通過IS

51、E6.0和modelsim6.1d進行仿真、綜合、驗證。</p><p>  4.2 主要設(shè)計實現(xiàn)目標</p><p><b> ?。╝)分頻器的設(shè)計</b></p><p><b> ?。╞)選擇器的設(shè)計</b></p><p> ?。╟)M序列產(chǎn)生器的設(shè)計</p><p>

52、; ?。╠)正弦波產(chǎn)生器的設(shè)計</p><p> ?。╡)正弦波調(diào)頻模塊設(shè)計</p><p> ?。╢)正弦波調(diào)相模塊設(shè)計</p><p>  4.3 信號調(diào)制系統(tǒng)各模塊設(shè)計</p><p>  4.3.1 分頻器模塊設(shè)計</p><p>  本設(shè)計須設(shè)計3種模值的分頻器,它們分別是模20分頻器,模2分頻器和模100分

53、頻器。以此來得到實驗所需的信號。</p><p>  模20分頻器的VHDL程序:</p><p>  library IEEE;</p><p>  use IEEE.STD_LOGIC_1164.ALL;</p><p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  use I

54、EEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  entity fenpin is</p><p>  port( clock :in std_logic;</p><p>  load_clk :out std_logic);</p><p>  end fenpin;</p><p&

55、gt;  architecture Behavioral of fenpin is</p><p>  signal count:std_logic_vector(3 downto 0):="0000";</p><p>  signal a :std_logic:='0';</p><p><b>  begin&

56、lt;/b></p><p>  process(clock)</p><p><b>  begin</b></p><p>  if(clock'event and clock='1')then</p><p>  if(count="1010")then</p

57、><p>  count<="0000";</p><p><b>  a<=not a;</b></p><p>  else </p><p>  count<=count+'1&#

58、39;;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  load_clk<=a;</p><p>  end Behavioral;</p&

59、gt;<p>  模20分頻器仿真波形如圖4-1。</p><p>  圖4-1 模20分頻器仿真波形</p><p>  以下是模20分頻器模塊的電路圖。</p><p>  圖4-2 模20分頻器模塊電路圖</p><p>  同理能方便的設(shè)計出模分別為2,100的分頻器。具體細節(jié)同上述一樣,故不做詳細說明。</p&g

60、t;<p>  4.3.2 M序列產(chǎn)生器模塊設(shè)計</p><p>  M序列的設(shè)計在本設(shè)計中起到非常重要的作用,它直接影響到波形調(diào)頻的效果。根據(jù)設(shè)計方案設(shè)計“1110010”循環(huán)序列,編寫出相應(yīng)的VHDL程序:</p><p>  library IEEE;</p><p>  use IEEE.STD_LOGIC_1164.ALL;</p>

61、;<p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  entity m_sequence is</p><p>  port(coderate:in std_logic;</p><p>  code:

62、 out std_logic);</p><p>  end m_sequence;</p><p>  architecture Behavioral of m_sequence is</p><p>  signal m:std_logic_vector(2 downto 0):="000";</p><p>&l

63、t;b>  begin</b></p><p>  process(coderate) --兩個反饋抽頭</p><p><b>  begin</b></p><p>  if(coderate'event and coderate='1'

64、;)then</p><p>  m(0)<=m(1);</p><p>  m(1)<=m(2);</p><p><b>  end if;</b></p><p>  end process;</p><p>  process(coderate) --&q

65、uot;1110010"循環(huán)序列</p><p><b>  begin</b></p><p>  if(coderate'event and coderate='1')then </p><p>  m(2)<=(m(1) xor m(0)) or (not(m(0) or m(1) or m(2))

66、);</p><p><b>  end if;</b></p><p>  end process;</p><p>  code<=m(0);</p><p>  end Behavioral;</p><p>  本設(shè)計給m值賦初值為“000”,每當coderate信號出現(xiàn)上升沿,m(

67、2)的值賦值給m(1),而同時m(1)的值也賦值給m(0)。這一過程體現(xiàn)在圖3-2的三個D觸發(fā)器。與此同時,三個D觸發(fā)器的輸出經(jīng)過邏輯門構(gòu)成反饋系統(tǒng),m(2)<=(m(1) xor m(0)) or (not(m(0) or m(1) or m(2)))就是這個反饋系統(tǒng),它體現(xiàn)了圖3-2的除了D觸發(fā)器的三個邏輯門構(gòu)成的反饋電路。</p><p>  M序列產(chǎn)生器的仿真波形如圖4-3。</p>

68、<p>  圖4-3 M序列產(chǎn)生器仿真波形</p><p>  以下是M序列產(chǎn)生器模塊的電路圖。</p><p>  圖4-4 M序列產(chǎn)生器模塊電路圖</p><p>  4.3.3 正弦波產(chǎn)生器模塊設(shè)計</p><p>  正弦波信號產(chǎn)生器是用狀態(tài)機的方式來實現(xiàn)的,即將一個正弦波周期分成100個狀態(tài),每個狀態(tài)都給于一個值,這個值表

69、示正弦波在此點處的高度,即Y值。這樣,由100個狀態(tài)循序漸進增減來組成比較光滑的正弦波形。其VHDL程序如下:</p><p>  library IEEE;</p><p>  use IEEE.STD_LOGIC_1164.ALL;</p><p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  use

70、 IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  -- Uncomment the following lines to use the declarations that are</p><p>  -- provided for instantiating Xilinx primitive components.</p><p>

71、;  --library UNISIM;</p><p>  --use UNISIM.VComponents.all;</p><p>  entity boxing is</p><p>  port(sinclk:in std_logic; --基準時鐘</p><p>  data:out std_lo

72、gic_vector(7 downto 0)); --并行數(shù)據(jù)data</p><p>  end boxing;</p><p>  architecture Behavioral of boxing is</p><p>  signal value:std_logic_vector(7 downto 0);</p><p>  sig

73、nal count100:std_logic_vector(6 downto 0):="0000000";</p><p><b>  begin</b></p><p>  process(sinclk)</p><p><b>  begin</b></p><p>  if

74、(sinclk'event and sinclk='1')then </p><p>  if(count100="1100011")then --正弦波周期循環(huán)</p><p>  count100<="0000000";</p><p>  else if(cou

75、nt100<"1100011")then --mode=1時,正弦波以load_clk的頻率(頻率不變)倒相(FSK)</p><p>  count100<=count100+'1';</p><p><b>  end if;</b></p><p><b>  end if;&

76、lt;/b></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(count100) --狀態(tài)機方式,</p><p>  begin--產(chǎn)生正弦周期波形的一

77、個周期內(nèi)的100個采樣點</p><p>  case count100 is</p><p>  when"0000000"=></p><p>  value<="00000000"; --趨向正方向的0值</p><p>  when&quo

78、t;0000001"=></p><p>  value<="00001000";</p><p>  when"0000010"=></p><p>  value<="00010000";</p><p>  when"0000011&

79、quot;=></p><p>  value<="00011000";</p><p>  when"0000100"=></p><p>  value<="00100000";</p><p>  when"0000101"=>

80、</p><p>  value<="00100111";</p><p>  when"0000110"=></p><p>  value<="00101111";</p><p>  when"0000111"=></p>

81、<p>  value<="00110110";</p><p>  when"0001000"=></p><p>  value<="00111101";</p><p>  when"0001001"=></p><p>

82、;  value<="01000100";</p><p>  when"0001010"=></p><p>  value<="01001011";</p><p>  when"0001011"=></p><p>  value&l

83、t;="01010001";</p><p>  when"0001100"=></p><p>  value<="01010111";</p><p>  when"0001101"=></p><p>  value<="0

84、1011101";</p><p>  when"0001110"=></p><p>  value<="01100010";</p><p>  when"0001111"=></p><p>  value<="01100111&qu

85、ot;;</p><p>  when"0010000"=></p><p>  value<="01101100";</p><p>  when"0010001"=></p><p>  value<="01110000";</p

86、><p>  when"0010010"=></p><p>  value<="01110011";</p><p>  when"0010011"=> --第20個狀態(tài)</p><p>  value&l

87、t;="01110111";</p><p>  when"0010100"=></p><p>  value<="01111001";</p><p>  when"0010101"=></p><p>  value<="0

88、1111011";</p><p>  when"0010110"=></p><p>  value<="01111101";</p><p>  when"0010111"=></p><p>  value<="01111110&qu

89、ot;;</p><p>  when"0011000"=></p><p>  value<="01111111";</p><p>  when"0011001"=></p><p>  value<="01111111";

90、 --正弦波的波峰</p><p>  when"0011010"=></p><p>  value<="01111110";</p><p>  when"0011011"=></p><p>  value<=&quo

91、t;01111101";</p><p>  when"0011100"=></p><p>  value<="01111011";</p><p>  when"0011101"=></p><p>  value<="01111001

92、";</p><p>  when"0011110"=></p><p>  value<="01110111";</p><p>  when"0011111"=> </p><p>  val

93、ue<="01110011";</p><p>  when"0100000"=></p><p>  value<="01110000";</p><p>  when"0100001"=></p><p>  value<=&qu

94、ot;01101100";</p><p>  when"0100010"=></p><p>  value<="01100111";</p><p>  when"0100011"=></p><p>  value<="0110001

95、0";</p><p>  when"0100100"=></p><p>  value<="01011101";</p><p>  when"0100101"=></p><p>  value<="01010111";&l

96、t;/p><p>  when"0100110"=></p><p>  value<="01010001";</p><p>  when"0100111"=> --第40個狀態(tài)</p><p>  va

97、lue<="01001011";</p><p>  when"0101000"=></p><p>  value<="01000100";</p><p>  when"0101001"=></p><p>  value<=&q

98、uot;00111101";</p><p>  when"0101010"=></p><p>  value<="00110110";</p><p>  when"0101011"=></p><p>  value<="001011

99、11";</p><p>  when"0101100"=></p><p>  value<="00100111";</p><p>  when"0101101"=></p><p>  value<="00100000";&

100、lt;/p><p>  when"0101110"=></p><p>  value<="00011000";</p><p>  when"0101111"=></p><p>  value<="00010000";</p>

101、<p>  when"0110000"=></p><p>  value<="00001000";</p><p>  when"0110001"=></p><p>  value<="00000000";</p><

102、;p>  when"0110010"=></p><p>  value<="11110111"; --趨向于負的0值</p><p>  when"0110011"=></p><p>  value<="111011

103、11";</p><p>  when"0110100"=></p><p>  value<="11100111";</p><p>  when"0110101"=></p><p>  value<="11011111";&

104、lt;/p><p>  when"0110110"=></p><p>  value<="11011000";</p><p>  when"0110111"=></p><p>  value<="11010000";</p>

105、<p>  when"0111000"=></p><p>  value<="11001001";</p><p>  when"0111001"=></p><p>  value<="11000010";</p><p>

106、  when"0111010"=></p><p>  value<="10111011";</p><p>  when"0111011"=> --第60個狀態(tài)</p><p>  value<="101101

107、00";</p><p>  when"0111100"=></p><p>  value<="10101110";</p><p>  when"0111101"=></p><p>  value<="10101000";&

108、lt;/p><p>  when"0111110"=></p><p>  value<="10100010";</p><p>  when"0111111"=></p><p>  value<="10011101";</p>

109、<p>  when"1000000"=></p><p>  value<="10011000";</p><p>  when"1000001"=></p><p>  value<="10010011";</p><p>

110、  when"1000010"=></p><p>  value<="10001111";</p><p>  when"1000011"=></p><p>  value<="10001100";</p><p>  when&quo

111、t;1000100"=></p><p>  value<="10001000";</p><p>  when"1000101"=></p><p>  value<="10000110";</p><p>  when"1000110&

112、quot;=></p><p>  value<="10000100";</p><p>  when"1000111"=></p><p>  value<="10000010";</p><p>  when"1001000"=>

113、</p><p>  value<="10000001";</p><p>  when"1001001"=></p><p>  value<="10000000";</p><p>  when"1001010"=></p>

114、<p>  value<="10000000"; </p><p>  when"1001011"=></p><p>  value<="10000000"; --正弦波波谷</p><p>  when&qu

115、ot;1001100"=></p><p>  value<="10000001";</p><p>  when"1001101"=></p><p>  value<="10000010";</p><p>  when"1001110

116、"=></p><p>  value<="10000100";</p><p>  when"1001111"=> --第80個狀態(tài) </p><p>  value<="10000110";</p>&

117、lt;p>  when"1010000"=></p><p>  value<="10001000";</p><p>  when"1010001"=></p><p>  value<="10001100";</p><p>  

118、when"1010010"=></p><p>  value<="10001111";</p><p>  when"1010011"=></p><p>  value<="10010011";</p><p>  when"

119、1010100"=></p><p>  value<="10011000";</p><p>  when"1010101"=></p><p>  value<="10011101";</p><p>  when"1010110&qu

120、ot;=></p><p>  value<="10100010";</p><p>  when"1010111"=></p><p>  value<="10101000";</p><p>  when"1011000"=>&l

121、t;/p><p>  value<="10101110";</p><p>  when"1011001"=></p><p>  value<="10110100";</p><p>  when"1011010"=></p>

122、<p>  value<="10111011";</p><p>  when"1011011"=></p><p>  value<="11000010";</p><p>  when"1011100"=></p><p> 

123、 value<="11001001";</p><p>  when"1011101"=></p><p>  value<="11010000";</p><p>  when"1011110"=></p><p>  value<

124、="11011000";</p><p>  when"1011111"=></p><p>  value<="11011111";</p><p>  when"1100000"=></p><p>  value<="111

125、00111";</p><p>  when"1100001"=></p><p>  value<="11101111";</p><p>  when"1100010"=></p><p>  value<="11110111"

126、;;</p><p>  when"1100011"=> --第100個狀態(tài)</p><p>  value<="11111111"; --趨向于正的0值</p><p><b>  when</b>&l

127、t;/p><p>  others=>null;</p><p><b>  end case;</b></p><p>  end process;</p><p>  data<=value;</p><p>  end Behavioral;</p><p>

128、  case語句是正弦波形的100個狀態(tài)的選擇,由前面的count100來選擇100個狀態(tài)。當count100自增到“1100011(99)”時,自動跳到“0000000”。</p><p>  正弦波產(chǎn)生器的仿真波形如圖4-5所示。</p><p>  圖4-5 正弦波產(chǎn)生器仿真波形</p><p>  以下是正弦波產(chǎn)生器模塊的電路圖。</p>&l

129、t;p>  圖4-6 正弦波產(chǎn)生器模塊電路圖</p><p>  4.4 信號調(diào)制系統(tǒng)各功能設(shè)計</p><p>  4.4.1 正弦波調(diào)頻功能設(shè)計</p><p>  本設(shè)計的第一個功能是能調(diào)頻,即FSK。因此設(shè)計了根據(jù)M序列輸出的“1110010”循環(huán)序列來控制頻率的改變。其具體的VHDL語言編程如下:</p><p>  libr

130、ary IEEE;</p><p>  use IEEE.STD_LOGIC_1164.ALL;</p><p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  entity fpdpsk is</p>&l

131、t;p>  port(clock:in std_logic; --基準時鐘</p><p>  mode:in std_logic;</p><p>  xinma: out std_logic;</p><p>  data:out std_logic_vector(7 downto 0)); --并行數(shù)據(jù)dat

132、a</p><p>  end fpdpsk;</p><p>  architecture fpdpsk_arch of fpdpsk is</p><p>  signal count100:std_logic_vector(6 downto 0):="0000000"; --100計數(shù),記錄100個狀態(tài)</p><p&

133、gt;  signal count50:std_logic_vector(5 downto 0):="000000"; --50計數(shù),為了得到load_clk1的100分頻的碼元速率</p><p>  signal code:std_logic; --輸出M序列</p><p>  signal serial_clk:std_log

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論