“原文 Understanding LTE with MATLAB ,作者Houman Zarrinkoub,本文是對(duì)于該書的翻譯,書中的專業(yè)性詞匯給出了英文原文,圖和表的排版都是參考原文,翻譯不準(zhǔn)確的地方請(qǐng)讀者多多包涵。
本文僅限于個(gè)人學(xué)習(xí),研究,交流,不得用于其他商業(yè)用途!”
第 4 章 調(diào)制與編碼
LTE(長(zhǎng)期演進(jìn))下行鏈路PHY(物理層)鏈可以看作應(yīng)用于下行鏈路共享信道(DLSCH)和物理下行鏈路共享信道(PDSCH)的處理的組合。DLSCH處理也稱為下行鏈路傳輸信道(TrCH)處理。它包括循環(huán)冗余校驗(yàn)(CRC)碼附加、數(shù)據(jù)子塊處理、基于turbo編碼器的信道編碼、速率匹配、混合自動(dòng)重復(fù)請(qǐng)求(HARQ)處理和碼字重構(gòu)等步驟。碼字是PDSCH處理的輸入,包括加擾、調(diào)制、多天線多輸入多輸出(MIMO)處理、時(shí)頻資源映射和正交頻分復(fù)用(OFDM)傳輸。我們將這個(gè)兩步DLSCH和PDCH處理鏈的組件細(xì)分為三個(gè)部分,將在接下來(lái)的三章中討論。
在本章中,我們研究LTE標(biāo)準(zhǔn)中使用的調(diào)制和編碼方案。這些包括所有組合的DLSCH和PDSCH處理步驟,不包括MIMO和OFDM操作。接下來(lái)的兩章將討論OFDM和MIMO。首先,我們將研究PDSCH處理中的耦合操作,包括加擾和調(diào)制。然后我們將研究TrCH處理,包括一系列操作,這些操作將邏輯信道和用戶比特有效負(fù)載映射到碼字,這些碼字被傳遞到共享物理信道。
我們將創(chuàng)建Matlab®程序,在發(fā)射機(jī)和接收機(jī)中完全指定TrCH處理。我們將使用MATLAB函數(shù)研究不同調(diào)制方案和不同編碼速率對(duì)加性高斯白噪聲(AWGN)信道模型誤碼率(BER)性能的影響。這些操作完全指定如何處理用戶數(shù)據(jù)位,以產(chǎn)生用于后續(xù)MIMO和OFDM功能塊傳輸?shù)妮斎敕?hào)。MIMO和OFDM的細(xì)節(jié)在接下來(lái)的兩章中被研究。
4.1 LTE調(diào)制方案
LTE標(biāo)準(zhǔn)中使用的調(diào)制方案包括QPSK(正交相移鍵控)、16QAM(正交幅度調(diào)制)和64QAM。圖4.1顯示了這三種調(diào)制方案的星座圖。
在QPSK調(diào)制的情況下,每個(gè)調(diào)制符號(hào)可以具有四個(gè)不同值中的一個(gè),這些值被映射到星座圖中的四個(gè)不同位置。QPSK需要2位來(lái)編碼它的四個(gè)不同的調(diào)制符號(hào)中的每一個(gè)。16QAM調(diào)制涉及使用16個(gè)不同的信令選擇,因此利用4比特信息對(duì)每個(gè)調(diào)制符號(hào)進(jìn)行編碼。64QAM調(diào)制涉及64個(gè)不同的可能信令值,因此需要6位來(lái)表示單個(gè)調(diào)制符號(hào)。
多個(gè)調(diào)制方案的可用性有助于實(shí)現(xiàn)基于信道條件的自適應(yīng)調(diào)制。當(dāng)無(wú)線電鏈路相對(duì)干凈——即,信噪比(SNR)相對(duì)高——我們可以使用密集星座的調(diào)制方案,例如64QAM。在這種情況下,發(fā)送單個(gè)碼元導(dǎo)致6比特的傳輸,因此可以增加吞吐量。然而,隨著信道變得更加嘈雜,我們應(yīng)該使用具有更多碼間分離的調(diào)制方案,例如QPSK。這又將減少每個(gè)樣本的位數(shù),并降低吞吐量。
在LTE的調(diào)制映射,它指定如何調(diào)制符號(hào)位序列分配到每一個(gè)這樣的表,如表4.1和4.2的QPSK和16QAM所示。64QAM調(diào)制映射表尺寸過大,可以參考文獻(xiàn)[1]。
我們注意到位(bit)到符號(hào)(symbols)的映射既不是基于典型的二進(jìn)制,也不是基于灰階編碼(graycoded)方法。 LTE 定義使用了一種星座映射的方式。LTE使用同樣的方式定義了的調(diào)制符號(hào),這種方式平均信號(hào)功率是一個(gè)統(tǒng)一的標(biāo)準(zhǔn)。
4.1.1 MATLAB 案例
模擬LTE下行鏈路的第一步,我們從LTE調(diào)制方式開始。如下的兩個(gè)MATLAB算法顯示了LTE的調(diào)制和解調(diào)算法,在此我們調(diào)用了系統(tǒng)工具箱。
1function y = Modulator( u,Mode )
2%% Initialization
3persistent QPSK QAM16 QAM64
4if isempty(QPSK)
5 QPSK = comm.PSKModulator(4,'BitInput',true,'PhaseOffset',pi/4,...
6 'SymbolMapping','Custom','CustomSymbolMapping',[0 2 3 1]);
7
8 QAM16 = comm.RectangularQAMModulator(16, 'BitInput',true,...
9 'NormalizationMethod','Average power', 'SymbolMapping',...
10 'Custom','CustomSymbolMapping', [11 10 14 15 9 8 12 13 1 0 4 5 3 2 6 7]);
11
12 QAM64 = comm.RectangularQAMModulator(64, 'BitInput',true,...
13 'NormalizationMethod','Average power', 'SymbolMapping',...
14 'Custom', 'CustomSymbolMapping', [47 46 42 43 59 58 62 63 45 44 40 ...
15 41 57 56 60 61 37 36 32 33 49 48 52 53 39 38 34 35 51 50 54 55 7 ...
16 6 2 3 19 18 22 23 5 4 0 1 17 16 20 21 13 12 8 9 25 24 28 29 15 14 ...
17 10 11 27 26 30 31]);
18end
19
20%% Processing
21switch Mode
22 case 1
23 y = step(QPSK,u);
24 case 2
25 y = step(QAM16,u);
26 case 3
27 y = step(QAM64,u);
28end
調(diào)制器函數(shù)具有兩個(gè)輸入?yún)?shù):輸入比特流(U)和表示調(diào)制模式(MODE)的參數(shù)。作為其輸出,函數(shù)計(jì)算調(diào)制符號(hào)。該函數(shù)實(shí)現(xiàn)了LTE標(biāo)準(zhǔn)中使用的三種不同類型的調(diào)制器。例如,在QPSK的情況下,我們使用一個(gè)COM.PSK調(diào)制器系統(tǒng)對(duì)象,并將其調(diào)制順序設(shè)置為4。類似地,對(duì)于16QAM和64QAM,我們使用comm.RectangulatQAMModulator()
系統(tǒng)對(duì)象,并將它們的調(diào)制順序分別設(shè)置為16和64。根據(jù)調(diào)制模式的值,我們處理輸入比特以產(chǎn)生調(diào)制符號(hào)作為輸出。
為了確保系統(tǒng)對(duì)象精確地匹配LTE標(biāo)準(zhǔn)所指定的內(nèi)容,我們可以設(shè)置其他屬性:
1.我們可以設(shè)置 BitInput=true,這意味著調(diào)制器輸入被解釋為比特值的向量。例如,在QPSK調(diào)制器的情況下,因?yàn)槊?位被映射到一個(gè)調(diào)制符號(hào),所以輸出向量的大小是輸入向量的一半。
2.我們可以設(shè)置PasieOffice=PI/4。這意味著調(diào)制符號(hào)對(duì)應(yīng)于具有單位長(zhǎng)度的復(fù)平面中的四個(gè)點(diǎn),其角度從以下集合中選擇: [3𝜋/4, 𝜋/4, −𝜋/4, −3𝜋/4]。
3.使用CustomSymbolMapping屬性,可以確保LTE中指定的位模式產(chǎn)生相應(yīng)的輸出符號(hào)。
本文所涉及的接收機(jī)默認(rèn)執(zhí)行發(fā)射器的逆操作,這些提出的逆運(yùn)算表示恢復(fù)傳輸比特的估計(jì)。雖然標(biāo)準(zhǔn)中沒有規(guī)定,但是為了評(píng)估系統(tǒng)的精度和性能,有必要包括這些接收機(jī)側(cè)的逆操作。
作為解調(diào)的逆操作調(diào)制,我們現(xiàn)在提出一些典型的解調(diào)方法。在解調(diào)器功能中,我們使用LTE中使用的相同的三種調(diào)制類型,并且根據(jù)調(diào)制模式,我們處理輸入符號(hào)以生成解調(diào)輸出。如前一節(jié)所討論的,解調(diào)可以基于硬判決譯碼或軟判決譯碼。在硬判決譯碼中,解調(diào)器的輸入符號(hào)被映射到估計(jì)比特,而在軟判決譯碼中,輸出是對(duì)數(shù)似然比(LLR)的向量。
解調(diào)函數(shù) DemodulatorHard.m 采用硬判決譯碼的解調(diào)實(shí)現(xiàn)。該函數(shù)將接收到的調(diào)制符號(hào)(U)和調(diào)制模式(模式)作為輸入, 函數(shù)輸出包括解調(diào)比特。
1function y = DemodulatorHard(u, Mode)
2%% Initialization
3persistent QPSK QAM16 QAM64
4if isempty(QPSK)
5 QPSK = comm.PSKDemodulator( 'ModulationOrder', 4, 'BitOutput', true, ...
6 'PhaseOffset', pi/4, 'SymbolMapping', 'Custom', 'CustomSymbolMapping', [0 2 3 1]);
7
8 QAM16 = comm.RectangularQAMDemodulator( 'ModulationOrder', 16, ...
9 'BitOutput', true, 'NormalizationMethod', 'Average power', ...
10 'SymbolMapping', 'Custom', 'CustomSymbolMapping', [11 10 14 15 9 8 12 13 1 0 4 5 3 2 6 7]);
11
12 QAM64 = comm.RectangularQAMDemodulator('ModulationOrder', 64, ...
13 'BitOutput', true, 'NormalizationMethod', 'Average power', 'SymbolMapping', 'Custom', ...
14 'CustomSymbolMapping', [47 46 42 43 59 58 62 63 45 44 40 41 57 56 60 61 37 ...
15 36 32 33 49 48 52 53 39 38 34 35 51 50 54 55 7 6 2 3 ...
16 19 18 22 23 5 4 0 1 17 16 20 21 13 12 8 9 25 24 28 29 ...
17 15 14 10 11 27 26 30 31]);
18end
19%% Processing
20switch Mode
21 case 1
22 y = QPSK.step(u);
23 case 2
24 y = QAM16.step(u);
25 case 3
26 y = QAM64.step(u);
27 otherwise
28 error('Invalid Modulation Mode. Use {1,2, or 3}');
29end
30end
函數(shù)
DemodulatorSoft.m
采用軟判決譯碼進(jìn)行解調(diào)。該函數(shù)有三個(gè)輸入?yún)?shù):接收的調(diào)制符號(hào)流(u)、當(dāng)前子幀中噪聲方差的估計(jì)(NoiseVar)和表示調(diào)制模式的參數(shù)。作為其輸出,函數(shù)計(jì)算LLR。檢查函數(shù)之間的差異,我們可以看到,通過在解調(diào)器系統(tǒng)對(duì)象中設(shè)置幾個(gè)屬性,包括名為DecisionMethod的屬性,我們可以實(shí)現(xiàn)軟判決解調(diào)。
1function y = DemodulatorSoft(u, Mode,NoiseVar)
2%% Initialization
3persistent QPSK QAM16 QAM64
4if isempty(QPSK)
5 QPSK = comm.PSKDemodulator( 'ModulationOrder', 4, 'BitOutput', true, ...
6 'PhaseOffset', pi/4, 'SymbolMapping', 'Custom', 'CustomSymbolMapping', [0 2 3 1],...
7 'DecisionMethod','Approximate log-likelihood ratio','VarianceSource','Input port');
8
9 QAM16 = comm.RectangularQAMDemodulator( 'ModulationOrder', 16, ...
10 'BitOutput', true, 'NormalizationMethod', 'Average power', ...
11 'SymbolMapping', 'Custom', 'CustomSymbolMapping', [11 10 14 15 9 8 12 13 1 0 4 5 3 2 6 7],...
12 'DecisionMethod','Approximate log-likelihood ratio','VarianceSource','Input port');
13
14 QAM64 = comm.RectangularQAMDemodulator('ModulationOrder', 64, ...
15 'BitOutput', true, 'NormalizationMethod', 'Average power', 'SymbolMapping', 'Custom', ...
16 'CustomSymbolMapping', [47 46 42 43 59 58 62 63 45 44 40 41 57 56 60 61 37 ...
17 36 32 33 49 48 52 53 39 38 34 35 51 50 54 55 7 6 2 3 ...
18 19 18 22 23 5 4 0 1 17 16 20 21 13 12 8 9 25 24 28 29 ...
19 15 14 10 11 27 26 30 31],'DecisionMethod','Approximate log-likelihood ratio',...
20 'VarianceSource','Input port');
21end
22%% Processing
23switch Mode
24 case 1
25 y = step(QPSK,u,NoiseVar);
26 case 2
27 y = step(QAM16,u,NoiseVar);
28 case 3
29 y = step(QAM64,u,NoiseVar);
30 otherwise
31 error('Invalid Modulation Mode. Use {1,2, or 3}');
32end
33end
4.1.2 誤碼率BER 測(cè)量
LTE中使用多種調(diào)制方法的動(dòng)機(jī)是在給定的傳輸帶寬內(nèi)提供更高的數(shù)據(jù)速率。帶寬利用率以
bit/s/Hz 表示。與QPSK相比,16QAM和64
QAM的帶寬利用率分別提高了2倍和3倍。然而,高階調(diào)制方案對(duì)信道噪聲的魯棒性降低。與QPSK相比,對(duì)于給定的比特錯(cuò)誤概率,諸如16QAM或64QAM之類的調(diào)制方案在接收機(jī)處要求更高的Eb/N0值。
下面的MATLAB函數(shù)說(shuō)明了一系列函數(shù)中的第一個(gè),這些函數(shù)最終將在MATLAB中實(shí)現(xiàn)用于LTE
PHY建模的現(xiàn)實(shí)收發(fā)器。我們從這個(gè)簡(jiǎn)單的系統(tǒng)開始,這個(gè)系統(tǒng)由調(diào)制器、解調(diào)器和AWGN信道組成,并且根據(jù)Eb/N0比計(jì)算BER。通過以一系列Eb/N0值運(yùn)行該函數(shù),并改變ModulationMode參數(shù),我們可以可視化調(diào)制順序和對(duì)信道噪聲的魯棒性之間的關(guān)系。
1function [ ber,numBits ] = chap4_ex01( EbNo,maxNumErrs,maxNumBits )
2%% Constants
3FRM = 2400; % Size of bit frame
4% ModulationMode = 1;
5% ModulationMode = 2;
6ModulationMode = 3; %QAM64
7k = 2* ModulationMode; % Number of bits per modulation symbol
8snr = EbNo +10*log10(k);
9%% Processing loop
10numErrs = 0;
11numBits = 0;
12while((numErrs < maxNumErrs)&&(numBits<maxNumBits))
13% Transmitter
14u = randi([0 1],FRM,1);
15t0 = Modulator(u,ModulationMode);
16% Channel
17c0 = AWGNChannel(t0,snr);
18% Receiver
19r0 = DemodulatorHard(c0,ModulationMode);
20y = r0(1:FRM);
21% Measurements
22numErrs = numErrs + sum(y~=u);
23numBits = numBits + FRM;
24end
25ber = numErrs/numBits;
26end
第一函數(shù)chap4_ex01.m使用基于硬判決解調(diào)的解調(diào)器,而第二函數(shù)chap4_ex02.m 基于軟判決解碼。在這兩個(gè)函數(shù)中常見的元素,代表了一系列函數(shù)的模式,如下:
簽名和輸入輸出參數(shù);
用戶有效載荷的大小(對(duì)PHY的輸入)(用表示一幀數(shù)據(jù)中輸入比特?cái)?shù)的參數(shù)(FRM)指定);
停止標(biāo)準(zhǔn);
發(fā)射機(jī)、信道模型、接收機(jī)和測(cè)量部分;
在模擬結(jié)束時(shí)計(jì)算BER。
為了達(dá)到一定的傳輸質(zhì)量——即,對(duì)于給定的誤碼率——當(dāng)我們從QPSK移動(dòng)到16QAM和64QAM調(diào)制時(shí),所需的E/N值逐漸變高。這表明,諸如QPSK之類的低階調(diào)制方案被用于具有高度退化的信道中,以便以較低數(shù)據(jù)速率運(yùn)行的成本降低出錯(cuò)的概率。更高階的調(diào)制方案如64
QAM被應(yīng)用在更干凈的信道中,并且可以提供數(shù)據(jù)速率的提升。通過運(yùn)行具有不同E/N值和不同調(diào)制模式參數(shù)的chap4_ex01.m函數(shù),獲得了圖4.2中捕獲的結(jié)果。結(jié)果比較了LTE標(biāo)準(zhǔn)中使用的調(diào)制方案的理論和仿真BER曲線。
圖4.2 不同調(diào)制方式下,誤碼率BER 與Eb/No的關(guān)系曲線
在第7章中,我們將討論各種可用于調(diào)度器的方法,用于基于信道條件在每個(gè)調(diào)度間隔中改變調(diào)制方案的選擇。到目前為止,我們只討論了調(diào)制方案,并沒有添加編碼和擾碼到混合。其次,介紹了比特級(jí)置亂技術(shù)及其在MATLAB中的實(shí)現(xiàn)。接著介紹了基于turbo編碼的糾錯(cuò)編碼以及CRC檢測(cè)處理的糾錯(cuò)機(jī)制。
未完待續(xù)
2018/11/21
點(diǎn)擊關(guān)注了解更多精彩內(nèi)容。