主要内容

误码率分析

分析通信系统的误码率性能

描述

误码率分析应用程序计算比特误差率(BER)作为每比特能量与噪声功率谱密度比的函数(Eb/N0).使用这个应用程序,你可以:

  • 生成通信系统的BER数据,并使用以下方法分析性能:

    • MATLAB的montecarlo模拟®功能和仿真软件金宝app®模型。

    • 用于选定类型的通信系统的理论闭合形式表达式。

    • 运行包含在MATLAB仿真函数或Simulink模型中的系统。金宝app在您创建了一个模拟系统的函数或模型之后误码率分析应用程序迭代您的选择Eb/N0值并收集结果。

  • 在一组轴上绘制一个或多个BER数据集。您可以通过图形方式将仿真数据与理论结果或一系列通信系统模型的仿真数据进行比较。

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

  • 绘制模拟数据的置信水平。

  • 将误码率数据发送到MATLAB工作空间或文件进行进一步处理。

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

打开误码率分析应用程序

  • MATLAB工具条:关于应用程序选项卡,在信号处理与通信,单击应用程序图标。

  • MATLAB命令提示:输入bertool

例子

全部展开

在AWGN中生成16-QAM链路的误码率性能的理论估计。

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

bertool

误码率分析应用掩码

在“理论”页签,将这些参数设置为指定的值:Eb/N0范围0:10调制类型QAM调制顺序16

点击绘制误码率曲线情节

使用自定义MATLAB函数模拟误码率。默认情况下,应用程序使用viterbisim.m模拟

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

bertool

蒙特卡罗选项卡,设置Eb/N0范围参数到1:.5:6. 运行模拟并通过单击绘制估计的BER值

理论的选项卡,设置Eb/N0范围1:6设定调制顺序4.通过选择启用卷积编码卷积. 点击情节将BER曲线的理论上限添加到绘图中。

中给出的模拟函数模板中添加代码模拟函数模板要在中运行的主题蒙特卡罗选项卡的误码率分析

准备功能

的模板复制模拟函数模板主题到MATLAB编辑器中的一个新的MATLAB文件中。将文件保存在MATLAB路径上的一个文件夹中,使用文件名贝尔图尔·西姆夫茨

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

%设置初始参数。siglen = 1000;%每次试验中的位数M=2;% DBPSK是二进制文件信噪比= EbNo;%由于二进制调制%创建一个错误率计算器系统对象进行比较%解码符号为原始传输符号。errorCalc = comm.ErrorRate;

将核心模拟任务的代码放在标记的模板部分中进行模拟.这段代码包括所有设置工作完成后的核心模拟任务。

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

将这两个代码段插入模板后,贝尔图尔·西姆夫茨函数与误码率分析结果代码类似于此代码段。

作用[ber,numBits]=bertool_simfcn(EbNo,maxnumerirs,maxNumBits,varargin)参见BERTOOL和VITERBISIM。版权所有2020 The MathWorks, Inc.初始化与退出条件相关的变量。totErr=0;%观察到的错误数numBits = 0;%处理的位数%——设置模拟参数。---%——在这里插入代码。%设置初始参数。siglen = 1000;%每次试验中的位数M=2;% DBPSK是二进制文件。信噪比= EbNo;%由于二进制调制%创建一个错误率计算器系统对象进行比较%解码符号为原始传输符号。errorCalc = comm.ErrorRate;%模拟错误数量,直到超过maxNumErrs%或处理的位数超过maxNumBits。虽然((totErr < maxNumErrs) && (numBits < maxNumBits)))%检查用户是否点击了BERTool的Stop按钮。如果isBERToolSimulationStopped(变长度输入宗量{}):打破结束%---继续模拟。%——更新totErr和numBits。%——在这里插入代码。味精=兰迪([0,m - 1], siglen, 1);%生成消息序列txsig=dpskmod(msg,M);%调节hChan。SignalPower =...%计算并分配信号功率(txsig'*txsig)/长度(txsig);rxsig=awgn(txsig,snr,“测量”);%添加噪声decodmsg = dpskdemod (rxsig, M);%解调berVec=errorCalc(msg,decodmsg);%计算误码率totErr = totErr + berVec(2);numBits = numBits + berVec(3);结束%循环结束%计算误码率。数量= totErr / numBits;

该函数有用于指定应用程序和标量的输入EbNomaxNumErrsmaxNumBits由应用程序提供的误码率分析app是一个输入,因为该函数监视并响应app中的停止命令贝尔图尔·西姆夫茨函数排除与绘图、曲线拟合和置信区间相关的代码,因为误码率分析应用程序可以让你做类似的任务交互式不写代码。

使用准备的函数

贝尔图尔·西姆夫茨误码率分析应用程序。

打开误码率分析App,然后选择蒙特卡罗选项卡。

将这些参数设置为指定值:Eb/N0范围0:10模拟环境MATLAB函数名贝尔图尔·西姆夫茨错误的数量5的比特数1 e8

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

点击

误码率分析应用程序计算结果,然后绘图。在这种情况下,结果似乎不是沿着一条平滑的曲线下降,因为模拟中每个值只需要5个错误EbNo

DBPSK调制的误码率图,错误数设置为5。

拟合曲线到误码率图窗口中的一系列点,通过选择适合参数。

位错率分析应用程序的Data viewer窗格中列出的数据集

误码率分析App绘制拟合曲线,如图所示。

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

使用误码率分析将BER计算为的函数的应用程序 E b / N 0 .该应用程序通过MATLAB®函数和Simulink®模型的蒙特卡罗仿真或选定类型的通信系统的理论闭形式表达式来分析性能。金宝app的代码mpsksim.m函数提供了一个M-PSK模拟,您可以从蒙特卡罗标签的应用程序。

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

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

打开mpsksim功能:编辑、设置M = 2,并保存更改后的文件。

运行mpsksim.m通过单击配置的功能蒙特卡罗标签在应用程序中。

之后,应用程序模拟的集合 E b / N 0 点,通过选择更新BER数据集结果的名称模拟0数量数据集字段和键入M = 2重命名结果集。在误码率数字上的图例更新标签为M = 2

更新的值mpsksim函数,重复此过程4816.例如,这些数字误码率分析应用程序和误码率图窗口显示结果的变化价值观

并行信噪比扫描使用误码率分析应用程序

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

  • 任何parfor模拟代码中的函数循环作为标准执行循环。

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

  • 任何spmd(并行计算工具箱)模拟代码中的语句调用是串行执行的。

使用Simu金宝applink仿真模型在蒙特卡罗选项卡的误码率分析将Simulink仿真结果与理论误码率结果进行比较。金宝app

准备模型

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

doc_bpsk

金宝appBPSK调制的Simulink模型仿真。

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

EbNo=0;最大数值=100;maxNumBits=1e8;

确保误码率分析应用程序在每次运行模拟时使用正确的噪声量,通过打开对话框AWGN信道阻止并验证Es /不参数设置为EbNo

请注意

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

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

  • 的对话框错误率计算阻止并验证目标误差数被设置为maxNumErrs最大符号数被设置为maxNumBits

  • 验证模拟停止时间设置为

启用误码率分析应用程序以访问错误率计算块计算,通过确保系统变量名参数匹配变量名的参数集到工作空间(金宝app模型)对象的输出错误率计算块。

提示

不止一个到工作空间块存在。选择到工作空间来自DSP系统工具箱的块™ / 下馆藏。

用准备模型

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

打开误码率分析App,然后选择蒙特卡罗选项卡。

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

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

点击

误码率分析应用程序计算结果,然后绘图。

BSPK调制的BER图。

通过单击理论的选项卡中误码率分析应用程序和设置Eb/N0范围0:9

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

点击情节

误码率分析app在BER图窗口中绘制理论曲线以及早期的模拟结果。

BSPK调制的误码率图与理论结果曲线。

参数

理论的

范围Eb/N0指定为标量或向量的误码率计算值。单位是dB。

例子:5:10指定对Eb/N0以1 dB增量在[5,10]范围内的值。

计算误码率的信道类型,指定为情况下瑞利Rician.的瑞利Rician选项对应平坦衰落信道。

通信链路的调制类型,指定为相移键控DPSKOQPSK帕姆QAMFSKMSK的CPFSK

通信链路的调制顺序,指定为248163264

选择此参数将启用输入数据的差分编码。

相关系数,指定为在[- 1,1]范围内的实标量。

依赖关系

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

调制指数,指定为正实标量。

依赖关系

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

  • 选择此参数将开启输入数据的相干解调。

  • 清除此参数以启用输入数据的非相干解调。

依赖关系

要启用该参数,请设置调制类型FSKMSK的

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

解调过程中的同步错误,指定为完美的同步归一化定时误差相位噪声(rad)

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

  • 当您设置同步归一化定时误差,可以将规范化定时误差设置为范围[0,0.5]内的标量。

  • 当您设置同步相位噪声(rad),可以将RMS相位噪波级别设置为非负标量。单位以弧度为单位

依赖关系

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

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

依赖关系

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

卷积码格,指定为结构变量。可以使用poly2trellis函数。

依赖关系

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

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

依赖关系

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

码字长度,指定为正整数。

依赖关系

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

消息长度,指定为正整数K少于N

依赖关系

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

(NK)块代码,指定为正整数。

依赖关系

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

蒙特卡罗

范围Eb/N0指定为标量或向量的误码率计算值。单位是dB。

例子:4:2:10指定对的评估Eb/N0在[4,10]范围内以2 dB的增量。

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

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

依赖关系

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

用于运行蒙特卡洛模拟的应金宝app用程序的Simulink模型的名称。

依赖关系

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

包含BER模拟数据的变量的名称。要将BER模拟数据输出到MATLAB工作区,可以将此变量名指定为变量名参数值到工作空间(金宝app模型)块。

提示

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

依赖关系

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

在模拟停止前要测量的错误数,指定为正整数。通常,要产生一个准确的误码估计,100个测量误差就足够了。

在模拟停止前要处理的位数,指定为正整数。该参数用于防止模拟运行时间过长。

请注意

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

提示

  • 可以通过单击停止模拟停止在蒙特卡罗模拟对话框中。

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

兼容性考虑

全部展开

R2020b中的行为发生了变化

在R2006a之前引入