無線通訊中的IQ調製,BPSK調製,QPSK調製,16QAM調製的理解

晴樹SEU發表於2021-01-01

先從IQ調製說起:

 

IQ調製:


IQ解調原理:



Linux下使用GNU Octave執行下面的程式碼:

MATLAB

 

1

2

3

4

5

6

t=-1:0.001:1;

f=1;

y=cos(2*pi*2*f*t);

subplot(1,2,1);plot(t,y);

y=sin(2*pi*2*f*t);

subplot(1,2,2);plot(t,y);

前面我們講了IQ調製和解調的原理,下來我們看一下如何應用IQ調製來實現MPSK調製(QPSK、8PSK等)、MQAM調製(16QAM、64QAM等)。
先來了解一下BPSK(Binary Phase Shift Keying,二相相移鍵控)


如何用IQ調製實現QPSK調製?





Linux下使用GNU Octave執行下面的程式碼:

MATLAB

1

2

3

4

5

6

7

8

9

10

11

%輸入訊號

 

>> subplot(4,1,1);

>> t=0:0.001:8;

>> d=[0 0 ;0.5 1;1 1;1.5 0;2 1 ;2.5 1;3 0;3.5 0;4 0;4.5 1 ;5 1 ;5.5 0 ;6 1 ;6.5 1 ;7 0 ;7.5 0];

>> s=pulstran(t-0.25,d,'rectpuls',0.5);plot(t,s) ;

>> axis([0 8 -0.5 1.5]);

>> text(0.25,1.2,'0') ; text(0.75,1.2,'1') ; text(1.25,1.2,'1') ; text(1.75,1.2,'0') ;

>> text(2.25,1.2,'1') ; text(2.75,1.2,'1') ; text(3.25,1.2,'0') ; text(3.75,1.2,'0') ;

>> text(4.25,1.2,'0') ; text(4.75,1.2,'1') ; text(5.25,1.2,'1') ; text(5.75,1.2,'0') ;

>> text(6.25,1.2,'1') ; text(6.75,1.2,'1') ; text(7.25,1.2,'0') ; text(7.75,1.2,'0') ;

MATLAB

1

2

3

4

5

6

7

8

9

10

% I路訊號

 

>> subplot(4,1,2);

>> t=0:0.001:8;

>> a=1/sqrt(2);

>> d=[0 -a ;1 +a;2 -a;3 +a; 4 -a ;5 +a;6 -a;7 +a];

>> s=pulstran(t-0.5,d,'rectpuls');plot(t,s) ;

>> axis([0 8 -2 2]);

>> text(0.5,1.5,'-0.7') ; text(1.5,1.5,'+0.7') ;text(2.5,1.5,'-0.7') ;text(3.5,1.5,'+0.7');

>> text(4.5,1.5,'-0.7') ; text(5.5,1.5,'+0.7') ;text(6.5,1.5,'-0.7') ;text(7.5,1.5,'+0.7');

MATLAB

1

2

3

4

5

6

7

8

9

% Q路訊號

 

>> subplot(4,1,3);

>> t=0:0.001:8;

>> d=[0 +a;1 -a;2 -a;3 +a; 4 +a;5 -a;6 -a;7 +a];

>> s=pulstran(t-0.5,d,'rectpuls');plot(t,s) ;

>> axis([0 8 -2 2]);

>> text(0.5,1.5,'+0.7') ; text(1.5,1.5,'-0.7') ; text(2.5,1.5,'-0.7') ; text(3.5,1.5,'+0.7')

>> text(4.5,1.5,'+0.7') ; text(5.5,1.5,'-0.7') ; text(6.5,1.5,'-0.7') ; text(7.5,1.5,'+0.7')

MATLAB

1

2

3

4

5

6

7

8

9

10

11

12

%QPSK調製訊號

 

>> subplot(4,1,4);

>> t=0:0.001:8;

>> d1=[0 -a ;1 +a;2 -a;3 +a; 4 -a ;5 +a;6 -a;7 +a];

>> s1=pulstran(t-0.5,d1,'rectpuls').*cos(2*pi*5*t) ;

>> d2=[0 +a;1 -a;2 -a;3 +a; 4 +a;5 -a;6 -a;7 +a];

>> s2=pulstran(t-0.5,d2,'rectpuls').*sin(2*pi*5*t);

>> plot(t,s1-s2) ;

>> axis([0 8 -2 2]);

>> text(0.3,1.5,'3\pi/4') ; text(1.3,1.5, '7\pi/4') ; text(2.3,1.5,'5\pi/4') ; text(3.3,1.5,'\pi/4') ;

>> text(4.3,1.5, '3\pi/4') ; text(5.3,1.5, '7\pi/4') ; text(6.3,1.5,'5\pi/4') ; text(7.3,1.5,'\pi/4') ;

 

QPSK調製的星座圖

星座圖,就是說一個座標,如高中的單位圓,橫座標是I,縱座標是Q,相應於投影到I軸的,叫同相分量,同理投影到Q軸的叫正交分量。由於訊號幅度有差別,那麼就有可能落在單位圓之內。具體地說,64QAM,符號有64個,等於2的6次方,因此每個符號需要6個二進位制來代表才夠用。這64個符號就落在單位圓內,根據幅度和相位的不同 落的地方也不同。從其中一個點跳到另一個點,就意味著相位調製和幅度調製同時完成了。”

QPSK的對映關係可以隨意定嗎?

還以傳送資料是11為例,接收資料誤判為10和00的概率要高於誤判為01的概率。11誤判為10錯了1個位元,但11誤判為00卻錯了2個位元。
綜上所述,在相同的通道條件下,採用00↔π/4、01↔3π/4、10↔5π/4、11↔7π/4對映關係的QPSK調製的誤位元率要高於採用00↔π/4、01↔3π/4、11↔5π/4、10↔7π/4對映關係。
象00、01、11、10這樣,相鄰的兩個碼之間只有1位數字不同的編碼叫做格雷碼。QPSK調製中使用的就是格雷碼。

十進位制數自然二進位制數格雷碼
000000000
100010001
200100011
300110010
401000110
501010111
601100101
701110100
810001100
910011101
1010101111
1110111110
1211001010
1311011011
1411101001
1511111000

如何使用IQ調製實現8PSK



如何使用IQ調製實現16QAM




注:前面講的PSK調製(QPSK、8PSK),星座圖中的點都位於單位圓上,模相同(都為1),只有相位不同。而QAM調製星座圖中的點不再位於單位圓上,而是分佈在複平面的一定範圍內,各點如果模相同,則相位必不相同,如果相位相同則模必不相同。星座圖中點的分佈是有講究的,不同的分佈和對映關係對應的調製方案的誤碼效能是不一樣的,這裡不再展開去講。

利用IQ調製實現BPSK調製

參考連結


相關文章