主要内容

比特误码率分析

分析通信系统的误码性能

描述

比特误码率分析应用计算误比特率(BER)作为每一点的能量函数噪声功率谱密度比(Eb/N0)。使用此应用程序,您可以:

  • 产生误码的数据通信系统和分析性能使用:

    • MATLAB的蒙特卡罗模拟®功能和仿真软件金宝app®模型。

    • 理论的封闭表达式选择类型的通信系统。

    • 运行系统中包含的功能或仿真软件MATLAB模拟模型。金宝app在您创建一个函数或模型,模拟系统比特误码率分析应用程序遍历你的选择Eb/N0价值观和收集结果。

  • 情节一个或多个系统的数据集在一个轴。你可以以图形方式比较仿真数据与理论结果或仿真数据的一系列通信系统模型。

  • 配合一组模拟数据的曲线。

  • 情节的信心水平的模拟数据。

  • 发送比特数据MATLAB工作区或进一步处理的文件。

有关更多信息,请参见使用比特误码率分析应用

打开比特误码率分析应用

  • MATLAB将来发布:应用程序选项卡,在信号处理和通信,点击应用程序图标。

  • MATLAB命令提示:输入bertool

例子

全部展开

生成一个理论估计的误码性能在AWGN 16-QAM链接。

打开比特误码率分析应用程序。

bertool

的误码率分析应用面具

在理论选项卡,设置这些参数指定值:Eb/ N0范围0:10,调制类型QAM,调制顺序16

通过点击绘制误码率曲线情节

通过使用一个定制的MATLAB函数模拟误码率。默认情况下,应用程序使用viterbisim.m模拟。

打开比特误码率分析应用程序。

bertool

蒙特卡罗选项卡,设置Eb/ N0范围参数1:.5:6。运行仿真和情节的估计误码率值通过点击运行

理论选项卡,设置Eb/ N0范围1:6并设置调制顺序4。通过选择启用卷积编码卷积。点击情节添加的理论上界的误码率曲线的阴谋。

添加代码来模拟函数模板了为模拟函数模板话题来运行的蒙特卡罗选项卡的比特误码率分析

准备功能

复制模板的为模拟函数模板到一个新的主题在MATLAB中MATLAB文件编辑器。保存文件在一个文件夹在你MATLAB路径,使用文件名bertool_simfcn

行代码,初始化参数或模板中创建对象用于模拟部分标记设置初始参数。这段代码模拟变量映射到模板输入参数。例如,信噪比映射到EbNo

%设置初始参数。siglen = 1000;在每个试验%的比特数M = 2;% DBPSK是二进制信噪比= EbNo;%,因为二进制调制%创建一个ErrorRate计算器系统对象比较%解码符号最初的传播符号。errorCalc = comm.ErrorRate;

地方核心仿真任务的代码模板中部分标记进行仿真。这段代码包括核心仿真任务,毕竟安装工作已经完成。

味精=兰迪([0,m - 1], siglen, 1);%生成消息序列txsig = dpskmod(味精,M);%调节hChan。SignalPower =%计算和分配信号功率(txsig * txsig) /长度(txsig);rxsig = awgn (txsig,信噪比,“测量”);%添加噪声decodmsg = dpskdemod (rxsig, M);%解调berVec = errorCalc(味精,decodmsg);%计算误码率totErr = totErr + berVec (2);numBits = numBits + berVec (3);

后您将这两个代码段插入到模板,bertool_simfcn函数是兼容的比特误码率分析应用程序,生成的代码就像这个代码段。

函数[方方面面,numBits] = bertool_simfcn (EbNo、maxNumErrs maxNumBits,变长度输入宗量)%%参见BERTOOL VITERBISIM。% 2020年版权MathWorks公司。%初始化变量和退出标准相关。totErr = 0;%的错误数量numBits = 0;%处理的比特数% - - - - - -设置仿真参数。推荐- - - - - -% - - -插入代码。%设置初始参数。siglen = 1000;在每个试验%的比特数M = 2;% DBPSK是二进制。信噪比= EbNo;%,因为二进制调制%创建一个ErrorRate计算器系统对象比较%解码符号最初的传播符号。errorCalc = comm.ErrorRate;直到错误数量超过maxNumErrs %模拟%或处理的比特数超过maxNumBits。((totErr < maxNumErrs) & & (numBits < maxNumBits))%的用户点击停止按钮检查是否BERTool。如果isBERToolSimulationStopped(变长度输入宗量{}):打破结束% - - -进行仿真。% - - -更新totErr和numBits。% - - -插入代码。味精=兰迪([0,m - 1], siglen, 1);%生成消息序列txsig = dpskmod(味精,M);%调节hChan。SignalPower =%计算和分配信号功率(txsig * txsig) /长度(txsig);rxsig = awgn (txsig,信噪比,“测量”);%添加噪声decodmsg = dpskdemod (rxsig, M);%解调berVec = errorCalc(味精,decodmsg);%计算误码率totErr = totErr + berVec (2);numBits = numBits + berVec (3);结束%的循环%计算误码率。数量= totErr / numBits;

函数的输入指定的应用程序和标量EbNo,maxNumErrs,maxNumBits所提供的应用程序。比特误码率分析应用程序是一个输入的,因为功能监测和响应停止命令的应用。bertool_simfcn功能不包括代码相关的策划、曲线拟合和置信区间,因为比特误码率分析交互式应用程序使您能够做类似的任务而无需编写代码。

使用准备的函数

运行bertool_simfcn比特误码率分析应用程序。

打开比特误码率分析应用程序,然后选择蒙特卡罗选项卡。

设置这些参数指定值:Eb/ N0范围0:10,模拟环境MATLAB,函数名bertool_simfcn,错误的数量5,的比特数1 e8

参数设置的蒙特卡罗选项卡上的比特误码率分析应用。

点击运行

比特误码率分析程序计算结果和阴谋。在这种情况下,结果没有出现下降沿光滑曲线,因为仿真中每一个值只需要五个错误EbNo

DBPSK调制误码率情节生成的错误数量设置为5。

符合一系列点的曲线在图窗口的系统,通过选择适合数据查看器的参数。

数据集数据查看器窗格中列出的比特误码率分析应用

比特误码率分析应用程序块的拟合曲线,如这个图所示。

DBPSK调制误码率情节与拟合曲线。

使用比特误码率分析应用程序的函数计算误码率 E b / N 0 。应用分析性能与蒙特卡罗模拟的MATLAB®功能和仿真软件®模型或理论的封闭表达式选择类型的通信系统。金宝app中的代码mpsksim.m函数提供了一个M-PSK模拟,您可以运行的蒙特卡罗标签的应用。

打开比特误码率分析从应用程序选项卡或通过运行应用程序bertool函数在MATLAB®命令窗口。

蒙特卡罗选项卡,设置 E b / N 0 范围参数1:1:5函数名参数mpsksim

打开mpsksim函数编辑、设置M = 2,保存更改的文件。

运行mpsksim.m通过点击功能配置运行蒙特卡罗选项卡中应用。

在应用程序模拟的集合 E b / N 0 点,更新数量数据集的名称通过选择结果simulation0数量数据集场和打字M = 2重命名组的结果。传说在方方面面图更新标签M = 2

更新的值mpsksim功能,重复这个过程=4,8,16。例如,这些数字的比特误码率分析应用和BER图窗口显示不同的结果值。

平行信噪比扫描使用比特误码率分析应用

默认配置的蒙特卡罗处理比特误码率分析应用程序自动使用并行池处理来处理个人 E b / N 0 点当你有并行计算工具箱™软件但是对于仿真代码的处理:

  • 任何parfor函数循环仿真代码执行的标准循环。

  • 任何parfeval(并行计算工具箱)在你的模拟串行代码执行函数调用。

  • 任何spmd(并行计算工具箱)声明称在仿真代码执行顺序。

使用仿真软件金宝app仿真模型的运行蒙特卡罗选项卡的比特误码率分析应用。比较系统性能仿真软件的仿真结果与理论误码率的结果。金宝app

准备模型

打开模型通过输入doc_bpsk在MATLAB命令提示符。

doc_bpsk

金宝app仿真软件的BPSK调制仿真模型。

初始化参数在MATLAB工作区中避免使用未定义的变量作为块参数。

EbNo = 0;maxNumErrs = 100;maxNumBits = 1 e8;

确保比特误码率分析应用程序使用正确的数量的噪音在每次运行仿真,通过打开的对话框AWGN信道块和验证Es /不参数设置为EbNo

请注意

对BPSK调制,E年代/N0相当于Eb/N0

确保比特误码率分析应用程序使用正确的停止标准为每一次迭代:

  • 打开的对话框出错率计算块和验证目标数的错误被设置为maxNumErrs最大数量的符号被设置为maxNumBits

  • 验证仿真停止时间设置

启用比特误码率分析应用程序访问系统的结果出错率计算块计算,通过确保系统变量名应用匹配参数变量名参数设置到工作空间(金宝app模型)块连接到输出的出错率计算块。

提示

不止一个到工作空间块的存在。选择到工作空间块从DSP系统工具箱™/接收子程序库。

用准备模型

运行doc_bpsk模型比特误码率分析应用程序。

打开比特误码率分析应用程序,然后选择蒙特卡罗选项卡。

设置这些参数指定值:Eb/ N0范围0:9,模拟环境金宝app,函数名doc_bpsk,错误的数量One hundred.,的比特数1 e8

参数设置的蒙特卡罗选项卡上的比特误码率分析应用。

点击运行

比特误码率分析程序计算结果和阴谋。

BSPK调制的误码率图。

这些仿真结果与理论结果进行比较,通过单击理论选项卡中比特误码率分析应用程序和设置Eb/ N0范围0:9

理论选项卡比特误码率分析应用程序配置为BPSK调制。

点击情节

比特误码率分析应用程序块的误码率的理论曲线与前面的仿真结果图窗口。

方方面面的人物BSPK调制曲线与理论结果。

参数

理论

范围的Eb/N0评估值的数量,指定为一个标量或矢量。单位在dB。

例子:5:10指定的评估Eb/N0值的范围[5 10]1 dB增量。

类型的评估信道的误码率,指定为情况下,瑞利,或Rician。的瑞利Rician选择对应于平坦衰落信道。

调制类型的通信链路,指定为相移键控,DPSK,OQPSK,帕姆,QAM,移频键控,MSK的,或CPFSK

调制的通信链路,指定为2,4,8,16,32,或64年

选择要启用该参数微分编码的输入数据。

相关系数,指定为一个真正的标量范围内[1]。

依赖关系

要启用该参数,设置调制类型移频键控

调制指数,指定为一个积极的真正的标量。

依赖关系

要启用该参数,设置调制类型CPFSK

  • 选择要启用该参数输入数据的相干解调。

  • 明确这个参数来启用非相干解调的输入数据。

依赖关系

要启用该参数,设置调制类型移频键控MSK的

估计理论误码率时,使用信道编码类型指定为没有一个,卷积,或

同步误差解调过程,指定为完美的同步,规范化的计时误差,或RMS相位噪声(rad)

  • 当您设置同步完美的同步没有同步解调过程中遇到了错误。

  • 当您设置同步规范化的计时误差,你可以设置规范化作为标量计时误差范围在[0,0.5]。

  • 当您设置同步RMS相位噪声(rad),你可以设置RMS相位噪声水平作为一个负的标量。单位的弧度

依赖关系

要启用该参数,设置调制类型相移键控,调制顺序2,信道编码没有一个

解码决策方法用于解码接收的数据,指定为

依赖关系

要启用该参数,设置信道编码卷积或一组信道编码并设置编码类型一般

卷积码格子,指定为一个结构变量。您可以生成使用这个结构poly2trellis函数。

依赖关系

要启用该参数,设置信道编码卷积

块编码的系统评估中使用的类型,指定为一般,汉明,戈利,或Reed-Solomon

依赖关系

要启用该参数,设置信道编码

码字长度指定为一个正整数。

依赖关系

要启用该参数,设置信道编码并设置编码类型一般

消息长度指定为一个正整数,这样K小于N

依赖关系

要启用该参数,设置信道编码并设置编码类型一般

最小距离(N,K分组码,指定为一个正整数。

依赖关系

要启用该参数,设置信道编码并设置编码类型一般

蒙特卡罗

范围的Eb/N0评估值的数量,指定为一个标量或矢量。单位在dB。

例子:4:2:10指定的评估Eb/N0在区间[4,10]2 dB增量。

仿真环境,指定为MATLAB金宝app

MATLAB函数的名称应用蒙特卡罗模拟运行。

依赖关系

要启用该参数,设置模拟环境MATLAB

仿真软件模型的名称应用蒙金宝app特卡罗模拟运行。

依赖关系

要启用该参数,设置模拟环境金宝app

包含误码率仿真数据的变量的名称。输出系统的MATLAB仿真数据工作空间,您可以指定这个变量名称变量名参数值在到工作空间(金宝app模型)块。

提示

不止一个到工作空间块的存在。选择到工作空间块从DSP系统工具箱/接收子程序库。

依赖关系

要启用该参数,设置模拟环境金宝app

之前的错误数量来衡量仿真停止,指定为一个正整数。通常,产生一个精确的数量估计,100年有足够的测量错误。

要处理的比特数仿真停止之前,指定为一个正整数。这个参数是用来防止模拟运行时间太长了。

请注意

蒙特卡罗模拟停止时的错误或达到阈值的比特数。

提示

  • 你可以停止模拟点击停止蒙特卡罗模拟对话框。

    蒙特卡罗模拟进度对话框,一个停止按钮

兼容性的考虑

全部展开

行为改变R2020b

之前介绍过的R2006a