MSCBSC 移動通信論壇
搜索
登錄注冊
網(wǎng)絡(luò)優(yōu)化工程師招聘專欄 4G/LTE通信工程師最新職位列表 通信實習生/應屆生招聘職位

  • 閱讀:6135
  • 回復:3
誤碼率BER計算原理及仿真輸出
destild
新手上路
鎵嬫満鍙風爜宸查獙璇? style=


 發(fā)短消息    關(guān)注Ta 

積分 -1082
帖子 60
威望 13021 個
禮品券 0 個
專家指數(shù) -1382
注冊 2017-1-19
專業(yè)方向 
回答問題數(shù) 0
回答被采納數(shù) 0
回答采納率 0%
 
發(fā)表于 2018-11-15 20:41:25  只看樓主 

原文 Understanding LTE with MATLAB  ,作者Houman Zarrinkoub,本文是對于該書的翻譯,書中的專業(yè)性詞匯給出了英文原文,圖和表的排版都是參考原文,翻譯不準確的地方請讀者多多包涵。

本文僅限于個人學習,研究,交流,不得用于其他商業(yè)用途!


1.PNG

翻譯:Understanding LTE with MATLAB——3.11節(jié)


3.11 系統(tǒng)對象接收

在這本書中,我們強調(diào)了通信系統(tǒng)工具箱的許多特性,特別是我們將介紹產(chǎn)品中使用的新系統(tǒng)對象。通過非常直觀的用戶界面,系統(tǒng)對象使得表達通信系統(tǒng)的任務(wù)更加容易,并且使得生成的MATLAB代碼更加可讀和可共享。系統(tǒng)對象可以用作Matlab程序和Simulink模型的一部分。它們是表示基于時間和可執(zhí)行算法的MATLAB對象,并且它們被組織為對象,以便于使用和實際上自我記錄。由于在本書的其余部分中我們依賴于System對象在MATLAB中表達LTE系統(tǒng)模型,因此本節(jié)將給出一個關(guān)于如何使用這些算法組件的簡短教程。在此,我們插入MATLAB安裝時需要安裝的組件內(nèi)容,如圖A所示:

2.PNG

圖A. 安裝MATLAB需要安裝的Toolbox


3.11.1 通信系統(tǒng)工具箱對象

通信系統(tǒng)工具箱的系統(tǒng)對象屬于通信(comm)包,它們的名稱以公共前綴“comm”開頭。為了訪問通信系統(tǒng)工具箱的所有系統(tǒng)對象,鍵入“comm”,然后在MATLAB命令后鍵入Tab鍵:


>>comm.<Tab>


這將產(chǎn)生工具箱中可用的所有系統(tǒng)對象的按字母順序排列的列表。在MATLAB的最新版本中,通信系統(tǒng)工具箱包含作為系統(tǒng)對象提供的總共123個算法。


讓我們選擇這些系統(tǒng)對象中的一個,例如COM.QPSK調(diào)制器,并創(chuàng)建這類調(diào)制器的一個實例。我們把這個實例稱為“調(diào)制器”。


>>Modulator = comm.QPSKModulator


將創(chuàng)建一個QPSK(Quadratue Phase Shift Keying)調(diào)制器,該對象的描述將出現(xiàn)在MATLAB工作區(qū)中,如圖3.1所示。

3.PNG

圖3.1.通過通信工具創(chuàng)建一個系統(tǒng)對象


每個系統(tǒng)對象都包含屬性和方法。其默認屬性在創(chuàng)建時出現(xiàn);此自文檔是系統(tǒng)對象的有用特性。通過查看給定系統(tǒng)對象的屬性列表,我們知道它可以采用哪些參數(shù),以及通常為它們分配哪些值。例如,QPSK調(diào)制器的相位偏移特性默認設(shè)置為 𝜋/4 。讓我們把這個參數(shù)變成 𝜋/2。修改屬性有兩種方法:


  • 創(chuàng)建具有默認值的對象,然后使用點標記更改屬性。例如:
    >> Modulator = comm.QPSKModulator;
    >> Modulator.PhaseOffset = pi/2;


  • 設(shè)置不同的屬性,因為它們是使用屬性-值對創(chuàng)建的。例如:

>> Modulator = comm.QPSKModulator('PhaseOffset',pi/2);


如果屬性被表示為一串字符,那么當我們想要設(shè)置一個特定的屬性時,會出現(xiàn)一個方便的可能值的列表。例如,當我們鍵入“Modulator.SymbolMapping=”后跟一個Tab時,映射選項列表似乎有助于將屬性設(shè)置為幾個選項中的任何一個,在本例中為“Binary”和“Gray”。


step 方法是系統(tǒng)對象執(zhí)行的主要方法。在創(chuàng)建和配置對象之后,可以傳遞一個輸入(或多個輸入),并且可以調(diào)用它的step方法來生成它的輸出(或多個輸出)。有兩個語法可用來執(zhí)行系統(tǒng)對象的STEP方法。我們可以:

  • 使用“.”操作符來調(diào)用系統(tǒng)對象: y = Modulator.step(u);

  • 使用step方法作為函數(shù),系統(tǒng)對象作為函數(shù)的變量:y = step(Modulator, u).


在圖3.2中,使用MATLAB randi函數(shù)創(chuàng)建10×1列位向量(變量u),然后作為輸入傳遞給Modulator System對象。通過調(diào)用它的step方法,基于指定的屬性使用QPSK算法創(chuàng)建表示調(diào)制比特的調(diào)制符號的5×1輸出向量(y)。

4.PNG

圖3.2.調(diào)用step方法執(zhí)行系統(tǒng)對象


現(xiàn)在我們已經(jīng)了解了如何訪問、創(chuàng)建、設(shè)置系統(tǒng)對象的屬性、配置和調(diào)用系統(tǒng)對象來執(zhí)行計算,接下來讓我們創(chuàng)建一個簡單的腳本,該腳本使用幾個系統(tǒng)對象來表達一個簡單的通信系統(tǒng)。


3.11.2 系統(tǒng)對象測試

下面是一個MATLAB腳本,或者稱為testbench,它使用系統(tǒng)對象對簡單的收發(fā)器系統(tǒng)進行BER分析。該收發(fā)器由QPSK調(diào)制器、加性高斯白噪聲(AWGN)信道和QPSK解調(diào)器組成。注意,此代碼使用了來自通信系統(tǒng)工具箱的四個系統(tǒng)對象:comm.QPSKModulator、comm.AWGNChannel、comm.QPSKDemodulator和comm.ErrorRate。


 1%% Constants
2FRM = 2048;
3MaxNumErrs = 200;
4MaxNumBits = 1e7;
5EbNo_vector = 0:10;
6BER_vector = zeros(size(EbNo_vector));
7
8%% Initializations
9
10Modulator = comm.QPSKModulator('BitInput',true);
11AWGN = comm.AWGNChannel;
12DeModulator = comm.QPSKDemodulator('BitOutput',true);
13BitError = comm.ErrorRate;
14
15%% Outer Loop computing Bit-error rate as a function of EbNo
16
17for EbNo = EbNo_vector
18    snr = EbNo + 10*log10(2);
19    AWGN.EbNo = snr;
20    numErrs = 0;
21    numBits = 0;
22    results = zeros(3,1);
23    %% Inner loop modeling transmitter, chanel model and receiver for each EbNo
24    while((numErrs<MaxNumErrs)&&(numBits<MaxNumBits))
25        % Transmitter
26        u 
= randi([0,1],FRM,1);
27        mod_sig = step(Modulator,u);
28
29        % Channel
30        rx_sig = step(AWGN,mod_sig);
31
32        %Receiver
33        y = step(DeModulator,rx_sig);
34        results = step(BitError,u,y);
35        numErrs = results(2);
36        numBits = results(3);
37    end
38
39    % Compute BER
40
41    ber = results(1);
42    bits = results(3);
43
44    %% Clean up & collect results
45    reset(BitError)
;
46    BER_vector(EbNo+1) = ber;
47end
48
49%% Visualize results
50
51EbNoLin = 10.^(EbNo_vector/10);
52theoretical_results = 0.5*erfc(sqrt(EbNoLin));
53semilogy(EbNo_vector,BER_vector)
54grid;
55title('BER vs. EbNo - QPSK modulation');
56xlabel('Eb/No (dB)');
57ylabel('BER');
58hold;
59semilogy(EbNo_vector,theoretical_results,'dr');
60hold;
61legend('Simulation','Theoretical');


該腳本由四個部分組成。在初始化部分中,創(chuàng)建系統(tǒng)對象并設(shè)置一些參數(shù)。第二部分包含處理測試臺,該測試臺迭代Eb/N0值并計算相應的BER度量。第三部分是收發(fā)機處理循環(huán),其中調(diào)用系統(tǒng)對象的步驟方法來調(diào)制輸入信號,向調(diào)制信號中添加信道噪聲,并解調(diào)以產(chǎn)生接收信號和計算誤碼率。最后,在第四部分中,對仿真進行了清理和終止,并對BER性能結(jié)果進行了可視化。輸出結(jié)果如圖3.3所示。

5.PNG

圖3.3AWGN信道下QPSK調(diào)制的BER曲線仿真與理論結(jié)果對比


通過運行這個腳本,我們獲得了使用AWGN信道的QPSK調(diào)制系統(tǒng)的BER曲線。由AWGN信道處理的QPSK調(diào)制的理論BER結(jié)果為公式(3-1):

6.PNG

系統(tǒng)對象的使用產(chǎn)生了模塊化的、易于理解的MATLAB代碼,并形成了可以擴展為更復雜系統(tǒng)的結(jié)構(gòu)。我們將初始化,處理循環(huán),終止,可視化這四個步驟貫穿本書。改進MATLAB程序并使其更易讀的一種方法是將測試臺和可視化操作與算法和系統(tǒng)描述分開。接下來,我們將展示如何通過將收發(fā)器捕獲為MATLAB函數(shù)并將算法組件與測試臺腳本分離來實現(xiàn)這一點。


3.11.3 系統(tǒng)對象函數(shù)

MATLAB函數(shù) chap3_ex02_qpsk() 執(zhí)行我們的簡單QPSK收發(fā)器系統(tǒng)的算法部分。這個函數(shù)有三個輸入變量:

  • 第一個輸入是信噪比Eb/No;

  • 第二輸入是停止標準之一,基于在停止模擬之前可以觀察到的最大錯誤數(shù);

  • 第三個輸入是另一個停止準則,基于在停止模擬之前可以處理的最大位數(shù)。


對于每個Eb/N0值,代碼在while循環(huán)中運行,直到觀察到指定的最大錯誤數(shù)量或處理最大位數(shù)為止。該代碼通過調(diào)用step方法來執(zhí)行每個系統(tǒng)對象。它計算兩個輸出:


  • BER,定義為所觀察到的錯誤數(shù)與處理的位數(shù)的比值;

  • 基于由第二和第三輸入變量定義的停止準則處理的比特數(shù)。


 1function [ ber,bits ] = chap3_ex02_qpsk( EbNo,maxNumErrs,maxNumBits )
2%% Initializations
3
4persistent Modulator AWGN DeModulator BitError
5
6if isempty(Modulator)
7    Modulator 
= comm.QPSKModulator('BitInput',true);
8    AWGN = comm.AWGNChannel;
9    DeModulator = comm.QPSKDemodulator('BitOutput',true);
10    BieError = comm.ErrorRate;
11end
12
13%% Constants
14FRM = 2048;
15M = 4;
16k = log2(M);
17snr = EbNo + 10*log10(k);
18AWGN.EbNo = snr;
19
20%% Processing loop modeling transmitter, channel model and receiver
21numErrs = 0;
22numBits = 0;
23results = zeros(3,1);
24while((numErrs<maxNumErrs)&&(numBits<maxNumBits))
25    % Transmitter
26    u = randi([0 1],FRM,1);
27    mod_sig = Modulator.step(u);
28
29    % Channel 
30    rx_sig = AWGN.step(mod_sig);
31
32    % Receiver
33    demod = DeModulator.step(mod_sig);
34    y = demod(1:FRM);
35    results = BitError.step(u,y);
36    numErrs = results(2);
37    numBits = results(3);
38end
39
40%% Clean up & collect results
41ber = results(1);
42bits = results(3);
43reset(BitError);
44
45end
46
47
48}


為了避免每次調(diào)用函數(shù)時創(chuàng)建和釋放系統(tǒng)對象所涉及的開銷,函數(shù)中的系統(tǒng)對象由持久變量 persistent 表示。使用持久變量允許我們執(zhí)行諸如只在第一次調(diào)用函數(shù)時創(chuàng)建系統(tǒng)對象之類的操作。這增加了函數(shù)調(diào)用的效率,并提高了我們在循環(huán)中調(diào)用函數(shù)的模擬速度。


3.11.4 BER仿真

通信系統(tǒng)工具箱為BER工具提供了一個用于BER仿真性能的綜合測試臺。BERTool 是一個圖形應用程序,它計算一系列模擬的誤碼率,并將結(jié)果與已知的分析結(jié)果進行比較。

7.PNG

圖3.4. BERTool:BER結(jié)果可視化的測試平臺應用

8.PNG

 圖3.15 BER仿真結(jié)果輸出

例如,為了可視化函數(shù)chap3_ex02_qpsk.m的模擬BER,如圖3.4所示,轉(zhuǎn)到Mote Carlo選項卡,將文件指定為模擬MATLAB文件,并指定Eb/N0值和停止條件。BERTool將計算提供的Eb/N0值范圍內(nèi)的BER,并將自動顯示結(jié)果。這些模擬結(jié)果可以通過進入理論標簽并指定所使用的調(diào)制和編碼方案與理論結(jié)果進行比較。圖3.5顯示了BERTool仿真結(jié)果的輸出。


點擊關(guān)注了解更多精彩內(nèi)容。



未完待續(xù)

2018/11/13






掃碼關(guān)注5G通信官方公眾號,免費領(lǐng)取以下5G精品資料
  • 1、回復“YD5GAI”免費領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應用典型場景技術(shù)解決方案白皮書
  • 2、回復“5G6G”免費領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復“YD6G”免費領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復“LTBPS”免費領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復“ZGDX”免費領(lǐng)取《中國電信5G NTN技術(shù)白皮書
  • 6、回復“TXSB”免費領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復“YDSL”免費領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復“5GX3”免費領(lǐng)取《 R16 23501-g60 5G的系統(tǒng)架構(gòu)1
  • 共獲得 1 次點評 我要點評

    • bikerboy 專家指數(shù) +5 , 威望 +10 個
      · 有幾個圖片看不了,請上傳原圖 詳細.. 回復 發(fā)表與:2018-11-17 21:25:32
     
    [充值威望,立即自動到帳] [VIP貴賓權(quán)限+威望套餐] 另有大量優(yōu)惠贈送活動,請光臨充值中心
    充值擁有大量的威望和最高的下載權(quán)限,下載站內(nèi)資料無憂
    bikerboy
    論壇元老
    鎵嬫満鍙風爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    紀念勛章·十周年  
    積分 20173
    帖子 548
    威望 201686 個
    禮品券 115 個
    專家指數(shù) -1528
    注冊 2008-11-11
    專業(yè)方向  無線
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2018-11-17 21:25:32 


    QUOTE:
    原帖由 destild 于 2018-11-15 20:41:25 發(fā)表
    “原文 Understanding LTE with MATLAB ,作者Houman Zarrinkoub,本文是對于該書的翻譯,書中的專業(yè)性詞匯給出了英文原文,圖和表的排版都是參考原文,翻譯不準確的地方請讀者多多包涵。本文僅限于個人學 ...

    有幾個圖片看不了,請上傳原圖

    對本帖內(nèi)容的看法? 我要點評

     
    [立即成為VIP會員,百萬通信專業(yè)資料立即下載,支付寶、微信付款,簡單、快速!]
    bikerboy
    論壇元老
    鎵嬫満鍙風爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    紀念勛章·十周年  
    積分 20173
    帖子 548
    威望 201686 個
    禮品券 115 個
    專家指數(shù) -1528
    注冊 2008-11-11
    專業(yè)方向  無線
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2018-11-17 21:32:59 


    QUOTE:
    原帖由 destild 于 2018-11-15 20:41:25 發(fā)表
    “原文 Understanding LTE with MATLAB ,作者Houman Zarrinkoub,本文是對于該書的翻譯,書中的專業(yè)性詞匯給出了英文原文,圖和表的排版都是參考原文,翻譯不準確的地方請讀者多多包涵。本文僅限于個人學 ...

    好帖,請上傳完整圖片,感謝!

    對本帖內(nèi)容的看法? 我要點評

     
    最新通信職位:廣東通信人才網(wǎng) | 北京通信人才網(wǎng) | 上海通信人才網(wǎng) | 南京通信人才網(wǎng) | 西安通信人才網(wǎng) | 重慶通信人才網(wǎng) | 中國通信人才網(wǎng)
    destild
    新手上路
    鎵嬫満鍙風爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    積分 -1082
    帖子 60
    威望 13021 個
    禮品券 0 個
    專家指數(shù) -1382
    注冊 2017-1-19
    專業(yè)方向 
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2018-11-21 19:25:00  只看樓主 


    QUOTE:
    原帖由 bikerboy 于 2018-11-17 13:32:59 發(fā)表

    好帖,請上傳完整圖片,感謝!

    謝謝提醒,已重新上傳

    對本帖內(nèi)容的看法? 我要點評

     
    熱點: 通信招聘職位 | 網(wǎng)絡(luò)優(yōu)化全集 | WCDMA精品 | TD-SCDMA學習資料 | EVDO | MGW媒體網(wǎng)關(guān)資料

    快速回復主題    
    標題
    內(nèi)容
     上傳資料請點左側(cè)【添加附件】

    當前時區(qū) GMT+8, 現(xiàn)在時間是 2025-01-23 07:21:35
    渝ICP備11001752號  Copyright @ 2006-2016 mscbsc.com  本站統(tǒng)一服務(wù)郵箱:mscbsc@163.com

    Processed in 0.523512 second(s), 23 queries , Gzip enabled
    TOP
    清除 Cookies - 聯(lián)系我們 - 移動通信網(wǎng) - 移動通信論壇 - 通信招聘網(wǎng) - Archiver