2DPSK信號產生器的設計3_第1頁
2DPSK信號產生器的設計3_第2頁
2DPSK信號產生器的設計3_第3頁
2DPSK信號產生器的設計3_第4頁
2DPSK信號產生器的設計3_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2dpsk信號產生器的設計一、 設計任務及要求: 根據(jù)通信原理,設計一個2dpsk的基帶信號調制器,即用基帶信號(二進制)對載波信號(正弦波)進行調制,使載波信號的相位跟著基帶信號進行變換,產生符合要求的2dpsk信號進行發(fā)送。 要求:載波信號頻率為2.2mhz。信息碼元速率自定,可以用模擬電路、數(shù)字電路、單片機、fpga等方法進行設計,給出波形仿真結果。二、 設計方案:2dpsk調制器可用模擬法如圖(a),也可用鍵控法如圖(b)。 方案一:鍵控法,用數(shù)字電路來設計,方案框圖如下:方案二:框圖如下:由于fpga系統(tǒng)頻率可以達到幾百兆赫茲,故系統(tǒng)時鐘經過一定的分頻可以得到載波信號正弦波信號發(fā)生器

2、的要求頻率2.2mhz。信息碼經過差分運算后的輸出信號控制正弦波信號發(fā)生器的不同相位輸出(類似鍵控法),便可得到設計要求的2dpsk信號。方案三:框圖如下此方案由信息碼進行差分編碼后得到的差分碼控制兩個不同相位的正弦信號發(fā)生器的不同時間輸出便可以得到2dpsk信號。 fpga具有可編程邏輯器件現(xiàn)場可編程的靈活性,又具有門陳列器件功能強、高集成度和高速度的優(yōu)點,因此在要求功能越來越強,體積越來越小,功耗越來越低的現(xiàn)代通信系統(tǒng)設計中被越來越廣泛的應用。而且這學期我們學習了fpga的相關知識eda技術使用教程,且方案二只用設計一個正弦波信號發(fā)生器,因此選擇方案二。三、 詳細設計原理及實現(xiàn)方法二進制差

3、分相移鍵控常簡稱為二相相對調相,記作2dpsk,是數(shù)字通信系統(tǒng)中常用的調制方式之一,2dpsk信號為模擬信號,而fpga只能處理數(shù)字信號,因此,需對正弦信號采樣再經過數(shù)模變換得到所需的2dpsk信號,fpga 裝 訂 線 產生正弦信號的采樣值。(一) 差分編碼的設計 2dpsk。它不是利用載波相位的絕對數(shù)值傳送數(shù)字信息,而是用前后碼元的相對載波相位值傳送數(shù)字信息。所謂相對載波相位是指本碼元初相與前一碼元初相之差。 假設相對載波相位值用相位偏移表示,并規(guī)定數(shù)字信息序列與之間的關系為 絕對碼和相對碼是可以互相轉換的,其轉換關系為 由此轉換關系可知,在fpga應用中,用vhdl語言中的xor(異或)

4、語句即可實現(xiàn)差分編碼。(二) 正弦波信號發(fā)生器的設計 在fpga程序設計應用中,用vhdl語言列出正弦波信號的抽樣值即可實現(xiàn)正弦波信號發(fā)生器的設計,亦可通過定義宏功能模塊建立正弦波喜歡發(fā)生器的lpm儲存器的宏功能塊來實現(xiàn)。在本設計中,對正弦波每個周期采樣100個點,即采樣速率為原正弦信號頻率的100倍,因此可以將原正弦信號不失真地恢復出來。由于要求正弦波信號的頻率為2.2mhz,而且對正弦波每個周期采樣100個點,所以要求系統(tǒng)時鐘頻率應該為2.2mhz100=220mhz。 這樣即可實現(xiàn) 設計要求的 載波為2.2mhz的正弦波信號。(三) 分頻器的設計由于對正弦波每個周期采樣100個點,即10

5、0個正弦波周期內包含100個系統(tǒng)周期,故信息碼的頻率應為系統(tǒng)頻率的1/100,故應設計出一個信息碼的同步信號,搞信號應為系統(tǒng)頻率的100分頻,及要求設計1個100分頻器,100分頻器可用vhdl很容易實現(xiàn)。(四) 總體vhdl語言編程設計由上述分析可用vhdl語言編程實現(xiàn)2dpsk信號發(fā)生器的設計,程序及注釋如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity my2dpsk2 isport(rst, kongzhi,clk :in std_logic; -fpga時鐘輸入 x :i

6、n std_logic; -信息碼輸入 z,aa_out :out std_logic; -相對碼輸出 coderate1: out std_logic; -同步信號 value1 :out std_logic_vector(7 downto 0); - 正弦波抽樣值輸出 end;architecture behav of my2dpsk2 issignal xx,yy,aa:std_logic; signal q1,q2:std_logic_vector(6 downto 0); signal w:integer range 0 to 99; signal count100:std_logi

7、c_vector(6 downto 0); signal coderate:std_logic;beginprocess(clk) -100分頻進程 信號同步begin if(clkevent and clk=1) then if kongzhi=1 then if(count100=1100011) then count100=0000000; coderate=not coderate; coderate1=coderate; else count100=count100+1; end if; end if;end if;end process;process(clk) - 差分編碼進程

8、beginif rst=1 then aa=0;elsif (clkevent and clk=1 ) then aa=1; if w=0 then w=1; xx=xx xor x; - 現(xiàn)在xx是相對碼 z=xx xor x; - 現(xiàn)在z是相對碼 yy=xx xor x; - 現(xiàn)在yy是相對碼elsif w=99 then w=0; else w=w+1; end if;end if;-z=yy;aa_out=aa;end process;process(clk) -控制正弦波的不同相位輸出beginif clkevent and clk=1 then q1=q1+1; if (q1=11

9、00011 and yy=0) then -相對碼yy為0時輸出0正弦波信號q1=0000000; elsif (q1=1100011 and yy=1) thenq1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1

10、value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1

11、value1value1value1value1value1value1value1value1value1value1value1value1value1value1null; end case;end if;end if;end process;end ;四、 設計仿真結果及分析:對上述程序進行仿真,設置好clk的頻率為220mhz,由于正弦波信號發(fā)生器是對一個正弦波周期的100個抽樣點,故可以算出正弦波信號的頻率為220mhz/100=2.2mhz。仿真結果及其分析如下:圖一圖二圖三仿真波形分析如下:由仿真結果圖一可以看出信息碼x為0011110011100011111010101010

12、1時,差分碼輸出為z為0010100010111101010011001100110011這完全符合理論的差分碼的編碼規(guī)律,說明差分碼的功能已經實現(xiàn)。由仿真結果圖二可以看出當相對碼為0時,正弦波輸出由127到135、143、151這正是設計要求的0相位的正弦波,而且有仿真可以看出,每個信息碼內有100個正弦波信號的抽樣點,符合設計的要求。由仿真結果圖三可以看出當相對碼為1時,正弦波輸出由127到135、143、151這正是設計要求的180相位的正弦波,而且有仿真可以看出,每個信息碼內有100個正弦波信號的抽樣點,符合設計的要求。故由仿真結果看出,本設計已經達到設計任務的要求。五、 設計過程中遇

13、到的問題及其解決:1、在控制正弦波輸出的時候原來用的語句是 if clkevent and clk=1 - then if yy=0 then q1=q1+0000000; elsif yy=1 then q1=q2+0110010; else q1=q1+1; then if q2=0000000 then q2=0000001 ; elsif q2=1100011 then q2=0000000; else q2 =q2+1; end if ;用此語句控制正弦波的輸出使得輸出的正弦波在很多地方都是輸出一段數(shù)值為119的數(shù)據(jù),因為次語句在輸出正弦波的時候有一段時在等待q2=0000000或者

14、等待q2=1100011,故造成這樣的后果。后來經過檢查,該用一下語句實現(xiàn)正弦波的控制輸出:if clkevent and clk=1 then q1=q1+1; if (q1=1100011 and yy=0) then -相對碼yy為0時輸出0正弦波信號q1=0000000; elsif (q1=1100011 and yy=1) thenq1=0110010; -相對碼yy為0時輸出180正弦波信號 end if; end if;這樣就解決了上面所說的問題,經過仿真可見,輸出的正弦波是連續(xù)的。2、在差分編碼程序的設計中,原來用100分頻后的時鐘作為差分編碼程序的觸發(fā)時鐘,語句如下:pro

15、cess(coderate) beginif (coderateevent and coderate=1 )then xx=xx xor x; z=xx xor x; yy=xx xor x; end if;end process;但是仿真結果卻得不到相應的相對碼,后來經過多次的試驗和仿真得到一下語句能得到正確的結果:elsif (clkevent and clk=1 ) then aa=1; if w=0 then w=1; xx=xx xor x; - 現(xiàn)在xx是相對碼 z=xx xor x; - 現(xiàn)在z是相對碼 yy=xx xor x; - 現(xiàn)在yy是相對碼elsif w=99 then

16、 w=0; else w=w+1; end if;六、 心得與體會 通過這次課程設計我學到了很多,首先對通信中的2dpsk通信方式有了更加深入的理解,更加深刻理解了通信原理的其他各種方式,加深了通信原理各種理論知識的掌握,也感覺實踐和理論的學習是相互互補的,通信原理的課程學習讓我懂得了理論知識,課程設計使我感性上認識了這些知識。 通過這次課程設計,我意識到了我對這門課掌握還有一定的不足,還有許多的知識我不了解;有的是一知半解;有的即使原理懂了,但在應用方面卻是絲毫不知。所以在今后的學習中,我會更加努力,不僅要學好理論知識,還要把它聯(lián)系到實踐中去,使兩者很好的結合起來,互補互助。 通過這次課程設計,

溫馨提示

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

評論

0/150

提交評論