BPSKQPSK調(diào)制與解調(diào)DSP實現(xiàn)_第1頁
BPSKQPSK調(diào)制與解調(diào)DSP實現(xiàn)_第2頁
BPSKQPSK調(diào)制與解調(diào)DSP實現(xiàn)_第3頁
BPSKQPSK調(diào)制與解調(diào)DSP實現(xiàn)_第4頁
BPSKQPSK調(diào)制與解調(diào)DSP實現(xiàn)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)字調(diào)制解調(diào)的DSP實現(xiàn)BPSK、QPSK調(diào)制解調(diào)仿真1 系統(tǒng)的工作原理1.1 BPSK調(diào)制解調(diào)原理在PSK調(diào)制時,載波的相位隨調(diào)制信號狀態(tài)不同而改變。如果兩個頻率相同的載波同時開始振蕩,這兩個頻率同時達(dá)到正最大值,同時達(dá)到零值,同時達(dá)到負(fù)最大值,此時它們就處于“同相”狀態(tài);如果一個達(dá)到正最大值時,另一個達(dá)到負(fù)最大值,則稱為“反相”。一般把信號振蕩一次(一周)作為360度。如果一個波比另一個波相差半個周期,我們說兩個波的相位差180度,也就是反相。當(dāng)傳輸數(shù)字信號時,“1”碼控制發(fā)0度相位,“0”碼控制發(fā)180度相位。載波相位只有0和兩種取值,分別對應(yīng)于調(diào)制信號的“0”和“1”。傳“1“信號時,

2、發(fā)起始相位為的載波;當(dāng)傳“0”信號時,發(fā)起始相位為0的載波。由“0”和“1”表示的二進(jìn)制調(diào)制信號通過電平轉(zhuǎn)換后,變成由“1”和“1”表示的雙極性NRZ(不歸零)信號,然后與載波相乘,即可形成2PSK信號。用開關(guān)電路去選擇相位相差p 的同頻載波(如圖1-1)產(chǎn)生。圖 11BPSK解調(diào)必須采用相干接收法(如圖1-2)。圖 121.2 QPSK調(diào)制解調(diào)原理正交相移鍵控(Quadrature Phase Shift Keyin,QPSK)是一種數(shù)字調(diào)制方式。它分為絕對相移和相對相移兩種。由于絕對相移方式存在相位模糊問題,所以在實際中主要采用相對移相方式DQPSK。目前已經(jīng)廣泛應(yīng)用于無線通信中,成為現(xiàn)代

3、通信中一種十分重要的調(diào)制解調(diào)方式。在四相絕對相移鍵控是利用載波的四種不同相位來表征數(shù)字信息的。由于每一種載波相位代表兩個比特信息,故每個四進(jìn)制碼元又被稱為雙比特碼元。雙比特碼元中的兩個信息比特通常是按格雷碼(即反射碼)排列的。圖1-3(a)表示A方式時QPSK信號的矢量圖,圖(b)表示B方式時QPSK信號的矢量圖。圖 13 QPSK信號的矢量圖QPSK信號常用的產(chǎn)生方法有三種:正交調(diào)制法、相位選擇法及脈沖插入法。1)正交調(diào)制法發(fā)送端采用正交調(diào)制法的方框圖如圖1-4所示,圖 14 QPSK調(diào)制系統(tǒng)方框圖(正交法)2)相位選擇法圖 15相位選擇法的方框圖3)脈沖插入法圖 16插入脈沖法產(chǎn)生QPSK

4、信號原理方框圖QPSK信號的相干解調(diào)圖 17 QPSK信號的相干解調(diào)方框圖QPSK同2PSK一樣,在接收機(jī)解調(diào)時,由于相干載波相位的不確定性,使得解調(diào)后的輸出信號不確定。為了克服這種缺點,在實際通信中通常采用QDPSK系統(tǒng)。2 BPSK和QPSK的數(shù)學(xué)模型2.1 BPSK信號模型BPSK信號的數(shù)學(xué)表達(dá)式為: 其中 若在某一碼元持續(xù)時間T內(nèi)觀察是,式(1.1)可以簡寫為: BPSK信號也相當(dāng)于用矩形雙極性不歸零基帶信號與載波信號相乘,故也可表示成: 2.2 QPSK信號模型BPSK信號的數(shù)學(xué)表達(dá)式為: 式中 常見的 有兩種形式(見下表):雙比特碼元載波相位ABAB0005/410/27/411/

5、4013/23/43 仿真結(jié)果1、BPSK仿真結(jié)果:BPSK調(diào)制解調(diào)過程星座圖2、QPSK仿真結(jié)果BPSK調(diào)制過程4 仿真代碼BPSK代碼:1. main.cextern void qpsk(); void filter(float *b,float *a,float *s,int N_b,int N_s);#include "C54MATH.H"DATA x256;DATA y256; /正弦信號DATA Pulse256; /被調(diào)信號DATA PskSignal256; /BPSK調(diào)制信號DATA PskSignal01256; /BPSK調(diào)制信號DATA RecMeg

6、256;DATA RecSig256;#define N 256void main() int i,j; for(i=0;i<N;i+)/產(chǎn)生一個500Hz的正弦信號作為調(diào)制信號 xi=i*0x1000; sine( x, y, N ); for(i=0;i<N;i+)/產(chǎn)生一個被調(diào)信號(用-1,1分別表示被調(diào)信號的兩種狀態(tài)) j=i/32; switch (j%2) case 0: Pulsei=-1; break; case 1: Pulsei=1; break; /調(diào)用匯編函數(shù)bpsk bpsk(); for(i=0;i<N;i+) PskSignal01i=PskSi

7、gnali*yi+4;if(PskSignal01i>0)RecMegi=1;else if(PskSignal01i<0)RecMegi=-1;RecSigi=(RecMegi+1)/2; for(;); 2. psk_asm.asm .title"psk_asm.asm" .global _qpsk ;定義為全局變量,提供給C調(diào)用 .global _y ;C程序變量 .global _Pulse ;C程序變量 .global _PskSignal ;C程序變量 .mmregs .text_qpsk: rsbx CPL stm #8-1,AR2 ;循環(huán)變量 2

8、56/32=8 stm #_y, AR4 stm #_Pulse, AR3 stm #_PskSignal, AR5 loop: ld *AR3, A bc phase0, AEQ ;若為0狀態(tài)信號,則相移0 sub #1, A addm #4, AR4 bc phase1, AEQ ;若為1狀態(tài)信號,則相移pi pskend: addm #32, AR3 banz loop, *AR2- ret phase0: rpt #32-1 mvdd *AR4+, *AR5+ b pskend phase1: rpt #32-1 mvdd *AR4+, *AR5+ addm #-36,AR4 b ps

9、kend phase2: rpt #32-1 mvdd *AR4+, *AR5+ addm #-40,AR4 b pskend phase3: rpt #32-1 mvdd *AR4+, *AR5+ addm #-44, AR4 b pskend .end 3. bpsk.cmd -c -l rts.lib-l c54math.lib-stack 0x200-heap 0x200MEMORY PAGE 0: INT_PM_DRAM: origin = 0080h, length = 1000h PAGE 1: INT_DM_1: origin = 1080h, length = 01000h

10、SECTIONS .text : > INT_PM_DRAM PAGE 0 .cinit : > INT_PM_DRAM PAGE 0 .switch : > INT_PM_DRAM PAGE 0 .data : > INT_DM_1 PAGE 1 .stack : > INT_DM_1 PAGE 1 .bss : > INT_DM_1 PAGE 1 .sysmem : > INT_DM_1 PAGE 1 .const : > INT_DM_1 PAGE 1 .dout : > INT_DM_1 PAGE 1 QPSK代碼:1. main.

11、cextern void qpsk(); #include "C54MATH.H"DATA x256;DATA y256; /正弦信號DATA Pulse256; /被調(diào)信號DATA PskSignal256; /QPSK調(diào)制信號DATA PskSignal01256;DATA RecMeg256;DATA RecSig256;#define N 256void main() int i,j; for(i=0;i<N;i+)xi=i*0x1000; sine( x, y, N );/產(chǎn)生一個被調(diào)信號(用-3,-1,1,3分別表示被調(diào)信號的四種狀態(tài)) for(i=0;i

12、<N;i+) j=i/32; switch (j%4) case 0: Pulsei=-3; break; case 1: Pulsei=-1; break; case 2: Pulsei=1; break; case 3: Pulsei=3; break; /調(diào)用匯編函數(shù)qpsk qpsk(); for(i=0;i<N;i+) for(;); 2. psk_asm.asm .title"psk_asm.asm" .global _qpsk ;定義為全局變量,提供給C調(diào)用 .global _y ;C程序變量 .global _Pulse ;C程序變量 .glob

13、al _PskSignal ;C程序變量 .mmregs .text_qpsk: rsbx CPL stm #8-1,AR2 ;循環(huán)變量 256/32=8 stm #_y, AR4 stm #_Pulse, AR3 stm #_PskSignal, AR5 loop: ld *AR3, A bc phase0, AEQ ;若為0狀態(tài)信號,則相移0 sub #1, A addm #4, AR4 bc phase1, AEQ ;若為1狀態(tài)信號,則相移pi/2 sub #1, A addm #8, AR4 bc phase2, AEQ ;若為2狀態(tài)信號,則相移pi sub #1, A addm #1

14、2, AR4 bc phase3, AEQ ;若為3狀態(tài)信號,則相移3*pi/2 pskend: addm #32, AR3 banz loop, *AR2- ret phase0: rpt #32-1 mvdd *AR4+, *AR5+ b pskend phase1: rpt #32-1 mvdd *AR4+, *AR5+ addm #-36,AR4 b pskend phase2: rpt #32-1 mvdd *AR4+, *AR5+ addm #-40,AR4 b pskendphase3: rpt #32-1 mvdd *AR4+, *AR5+ addm #-44, AR4 b pskend .end 3. qpsk.cmd -c -l rts.lib-l c54math.lib-stack 0x200-heap 0x200MEMORY PAGE 0: INT_PM_DRAM: origin = 0080h, length = 1000h PAGE 1: INT_DM_1: origin = 1080h, length = 01000h SECTIONS .text : > INT_PM_DRAM PAGE 0 .cinit : &

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論