MSCBSC 移动通信论坛
搜索
登录注册
网络优化工程师招聘专栏 4G/LTE通信工程师最新职位列表 通信实习生/应届生招聘职位

  • 阅读:5960
  • 回复:3
误码率BER计算原理及仿真输出
destild

鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 -742
帖子 60
威望 13021 个
礼品券 0 个
专家指数 -1042
注册 2017-1-19
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2018-11-15 20:41:25  只看楼主 

原文 Understanding LTE with MATLAB  ,作者Houman Zarrinkoub,本文是对于该书的翻译,书中的专业性词汇给出了英文原文,图和表的排版都是参考原文,翻译不准确的地方请读者多多包涵。

本文仅限于个人学习,研究,交流,不得用于其他商业用途!


1.PNG

翻译:Understanding LTE with MATLAB——3.11节


3.11 系统对象接收

在这本书中,我们强调了通信系统工具箱的许多特性,特别是我们将介绍产品中使用的新系统对象。通过非常直观的用户界面,系统对象使得表达通信系统的任务更加容易,并且使得生成的MATLAB代码更加可读和可共享。系统对象可以用作Matlab程序和Simulink模型的一部分。它们是表示基于时间和可执行算法的MATLAB对象,并且它们被组织为对象,以便于使用和实际上自我记录。由于在本书的其余部分中我们依赖于System对象在MATLAB中表达LTE系统模型,因此本节将给出一个关于如何使用这些算法组件的简短教程。在此,我们插入MATLAB安装时需要安装的组件内容,如图A所示:

2.PNG

图A. 安装MATLAB需要安装的Toolbox


3.11.1 通信系统工具箱对象

通信系统工具箱的系统对象属于通信(comm)包,它们的名称以公共前缀“comm”开头。为了访问通信系统工具箱的所有系统对象,键入“comm”,然后在MATLAB命令后键入Tab键:


>>comm.<Tab>


这将产生工具箱中可用的所有系统对象的按字母顺序排列的列表。在MATLAB的最新版本中,通信系统工具箱包含作为系统对象提供的总共123个算法。


让我们选择这些系统对象中的一个,例如COM.QPSK调制器,并创建这类调制器的一个实例。我们把这个实例称为“调制器”。


>>Modulator = comm.QPSKModulator


将创建一个QPSK(Quadratue Phase Shift Keying)调制器,该对象的描述将出现在MATLAB工作区中,如图3.1所示。

3.PNG

图3.1.通过通信工具创建一个系统对象


每个系统对象都包含属性和方法。其默认属性在创建时出现;此自文档是系统对象的有用特性。通过查看给定系统对象的属性列表,我们知道它可以采用哪些参数,以及通常为它们分配哪些值。例如,QPSK调制器的相位偏移特性默认设置为 𝜋/4 。让我们把这个参数变成 𝜋/2。修改属性有两种方法:


  • 创建具有默认值的对象,然后使用点标记更改属性。例如:
    >> Modulator = comm.QPSKModulator;
    >> Modulator.PhaseOffset = pi/2;


  • 设置不同的属性,因为它们是使用属性-值对创建的。例如:

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


如果属性被表示为一串字符,那么当我们想要设置一个特定的属性时,会出现一个方便的可能值的列表。例如,当我们键入“Modulator.SymbolMapping=”后跟一个Tab时,映射选项列表似乎有助于将属性设置为几个选项中的任何一个,在本例中为“Binary”和“Gray”。


step 方法是系统对象执行的主要方法。在创建和配置对象之后,可以传递一个输入(或多个输入),并且可以调用它的step方法来生成它的输出(或多个输出)。有两个语法可用来执行系统对象的STEP方法。我们可以:

  • 使用“.”操作符来调用系统对象: y = Modulator.step(u);

  • 使用step方法作为函数,系统对象作为函数的变量:y = step(Modulator, u).


在图3.2中,使用MATLAB randi函数创建10×1列位向量(变量u),然后作为输入传递给Modulator System对象。通过调用它的step方法,基于指定的属性使用QPSK算法创建表示调制比特的调制符号的5×1输出向量(y)。

4.PNG

图3.2.调用step方法执行系统对象


现在我们已经了解了如何访问、创建、设置系统对象的属性、配置和调用系统对象来执行计算,接下来让我们创建一个简单的脚本,该脚本使用几个系统对象来表达一个简单的通信系统。


3.11.2 系统对象测试

下面是一个MATLAB脚本,或者称为testbench,它使用系统对象对简单的收发器系统进行BER分析。该收发器由QPSK调制器、加性高斯白噪声(AWGN)信道和QPSK解调器组成。注意,此代码使用了来自通信系统工具箱的四个系统对象: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');


该脚本由四个部分组成。在初始化部分中,创建系统对象并设置一些参数。第二部分包含处理测试台,该测试台迭代Eb/N0值并计算相应的BER度量。第三部分是收发机处理循环,其中调用系统对象的步骤方法来调制输入信号,向调制信号中添加信道噪声,并解调以产生接收信号和计算误码率。最后,在第四部分中,对仿真进行了清理和终止,并对BER性能结果进行了可视化。输出结果如图3.3所示。

5.PNG

图3.3AWGN信道下QPSK调制的BER曲线仿真与理论结果对比


通过运行这个脚本,我们获得了使用AWGN信道的QPSK调制系统的BER曲线。由AWGN信道处理的QPSK调制的理论BER结果为公式(3-1):

6.PNG

系统对象的使用产生了模块化的、易于理解的MATLAB代码,并形成了可以扩展为更复杂系统的结构。我们将初始化,处理循环,终止,可视化这四个步骤贯穿本书。改进MATLAB程序并使其更易读的一种方法是将测试台和可视化操作与算法和系统描述分开。接下来,我们将展示如何通过将收发器捕获为MATLAB函数并将算法组件与测试台脚本分离来实现这一点。


3.11.3 系统对象函数

MATLAB函数 chap3_ex02_qpsk() 执行我们的简单QPSK收发器系统的算法部分。这个函数有三个输入变量:

  • 第一个输入是信噪比Eb/No;

  • 第二输入是停止标准之一,基于在停止模拟之前可以观察到的最大错误数;

  • 第三个输入是另一个停止准则,基于在停止模拟之前可以处理的最大位数。


对于每个Eb/N0值,代码在while循环中运行,直到观察到指定的最大错误数量或处理最大位数为止。该代码通过调用step方法来执行每个系统对象。它计算两个输出:


  • BER,定义为所观察到的错误数与处理的位数的比值;

  • 基于由第二和第三输入变量定义的停止准则处理的比特数。


 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}


为了避免每次调用函数时创建和释放系统对象所涉及的开销,函数中的系统对象由持久变量 persistent 表示。使用持久变量允许我们执行诸如只在第一次调用函数时创建系统对象之类的操作。这增加了函数调用的效率,并提高了我们在循环中调用函数的模拟速度。


3.11.4 BER仿真

通信系统工具箱为BER工具提供了一个用于BER仿真性能的综合测试台。BERTool 是一个图形应用程序,它计算一系列模拟的误码率,并将结果与已知的分析结果进行比较。

7.PNG

图3.4. BERTool:BER结果可视化的测试平台应用

8.PNG

 图3.15 BER仿真结果输出

例如,为了可视化函数chap3_ex02_qpsk.m的模拟BER,如图3.4所示,转到Mote Carlo选项卡,将文件指定为模拟MATLAB文件,并指定Eb/N0值和停止条件。BERTool将计算提供的Eb/N0值范围内的BER,并将自动显示结果。这些模拟结果可以通过进入理论标签并指定所使用的调制和编码方案与理论结果进行比较。图3.5显示了BERTool仿真结果的输出。


点击关注了解更多精彩内容!!



未完待续

2018/11/13






扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“iot6”免费领取《【8月30号登载】物联网创新技术与产业应用蓝皮书——物联网感知技术及系统应用
  • 2、回复“6G31”免费领取《基于云网融合的6G关键技术白皮书
  • 3、回复“IM6G”免费领取《6G典型场景和关键能力白皮书
  • 4、回复“SPN2”免费领取《中国移动SPN2.0技术白皮书
  • 5、回复“LTKJ7”免费领取《 联通科技周17本白皮书合集
  • 6、回复“5g-a”免费领取《中国联通5G-A 通感算融合技术白皮书
  • 7、回复“URLLC”免费领取《中国联通5G URLLC 技术白皮书
  • 8、回复“LDSL”免费领取《中国移动算力网络技术白皮书
  • 共获得 1 次点评 我要点评

    • bikerboy 专家指数 +5 , 威望 +10 个
      · 有几个图片看不了,请上传原图 详细.. 回复 发表与:2018-11-17 21:25:32
     
    bikerboy

    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    纪念勋章·十周年  
    积分 20373
    帖子 548
    威望 201761 个
    礼品券 115 个
    专家指数 -1328
    注册 2008-11-11
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2018-11-17 21:25:32 
    技术问题,回答得专家指数,快速升级


    QUOTE:
    原帖由 destild 于 2018-11-15 20:41:25 发表
    “原文 Understanding LTE with MATLAB ,作者Houman Zarrinkoub,本文是对于该书的翻译,书中的专业性词汇给出了英文原文,图和表的排版都是参考原文,翻译不准确的地方请读者多多包涵。本文仅限于个人学 ...

    有几个图片看不了,请上传原图

    对本帖内容的看法? 我要点评

     
    bikerboy

    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    纪念勋章·十周年  
    积分 20373
    帖子 548
    威望 201761 个
    礼品券 115 个
    专家指数 -1328
    注册 2008-11-11
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2018-11-17 21:32:59 


    QUOTE:
    原帖由 destild 于 2018-11-15 20:41:25 发表
    “原文 Understanding LTE with MATLAB ,作者Houman Zarrinkoub,本文是对于该书的翻译,书中的专业性词汇给出了英文原文,图和表的排版都是参考原文,翻译不准确的地方请读者多多包涵。本文仅限于个人学 ...

    好帖,请上传完整图片,感谢!

    对本帖内容的看法? 我要点评

     
    destild

    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    积分 -742
    帖子 60
    威望 13021 个
    礼品券 0 个
    专家指数 -1042
    注册 2017-1-19
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2018-11-21 19:25:00  只看楼主 


    QUOTE:
    原帖由 bikerboy 于 2018-11-17 13:32:59 发表

    好帖,请上传完整图片,感谢!

    谢谢提醒,已重新上传

    对本帖内容的看法? 我要点评

     

    快速回复主题    
    标题
    内容
     上传资料请点左侧【添加附件】

    当前时区 GMT+8, 现在时间是 2024-03-28 21:15:09
    渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

    Processed in 1.887519 second(s), 24 queries , Gzip enabled
    TOP
    清除 Cookies - 联系我们 - 移动通信网 - 移动通信论坛 - 通信招聘网 - Archiver