具体实施方式
本发明实施例从仿真区间的中间点开始仿真,并采用二分法确定仿真点,以获得满足预设BLER范围内的SNR。相比于现有技术中按预设SNR调整步长按顺序逐个仿真点仿真的方案,在整个仿真过程中可大幅度减少仿真点的数量,提高获得满足预设BLER范围内的SNR的效率,即提高链路级仿真的效率。
参见图1,本实施例中链路仿真的主要方法流程如下:
步骤100:预先设置信噪比(SNR)的初始仿真区间和目标误块率范围。
步骤101:采用二分法在初始仿真区间中确定仿真点,并对该仿真点进行关于误块率BLER的仿真。
步骤102:判断仿真结果是否在目标误块率范围内,若在,则继续步骤104,否则继续步骤103。
步骤103:继续采用二分法并根据当前仿真结果与目标误块率范围的大小关系确定下一个仿真点,并进行仿真,继续步骤102。
步骤104:获得该仿真点的信噪比(SNR),绘制出SNR和误块率的曲线并保存到对应文件,结束仿真。绘制出SNR和误块率的曲线后,可以通过该曲线确定目标误块率范围对应的SNR范围,还可以获知误块率在初始仿真区间内的变化情况等。
下面对二分法的仿真过程进行详细介绍,参见图2所示,二分法仿真的方 法流程如下:
步骤201:采用二分法在初始仿真区间中确定仿真点。
步骤202:对该仿真点进行关于误块率BLER的仿真。首次仿真的仿真点为初始仿真区间的中间点。
步骤203:判断仿真结果是否在目标误块率范围内,若是,则继续步骤207,否则继续步骤204。
步骤204:判断仿真结果是大于目标误块率范围还是小于目标误块率范围,若大于,则继续步骤205,若小于则继续步骤206。
步骤205:从当前仿真点向初始仿真区间上限端点移动相应的SNR调整步长,将移动后的点确定为下一个仿真点。继续步骤202。由于SNR越大,信道质量越好,误块率也就越小,因此当仿真结果大于目标误块率范围时,向初始仿真区间的上限端点方向移动。
步骤206:从当前仿真点向仿真区间下限端点移动相应的SNR调整步长,将移动后的点确定为下一个仿真点。继续步骤202。由于SNR越小,信道质量越差,误块率也就越大,因此当仿真结果小于目标误块率范围时,向初始仿真区间的下限端点方向移动。
步骤207:获得该仿真点的误块率。
对于以上流程,即如果前一次仿真结果小于目标误块率范围,则从当前仿真点向仿真区间下限端点移动相应的SNR调整步长,将移动后的点确定为下一个仿真点;如果前一次仿真结果大于目标误块率范围,则从当前仿真点向仿真区间上限端点移动相应的SNR调整步长,将移动后的点确定为下一个仿真点;其中首次移动的SNR调整步长为仿真区间长度的
之后每次移动时SNR调整步长缩短
随着当前仿真点的移动,相当于仿真区间也在发生变化。可以把前一次仿真区间的下限和上限的中间点作为本次SNR仿真点。把本次仿真点对应的仿真结果与目标误块率范围比较,如果本次仿真点对应的仿真结果 小于目标误块率范围的最小值,以前一次仿真区间的下限作为下一次仿真区间的下限;以本次仿真点作为下一次仿真区间的上限。如果本次仿真点对应的仿真结果大于目标误块率范围的最大值,以本次仿真点作为下一次仿真区间的下限;以前一次仿真区间的下限作为下一次仿真区间的上限。
本实施例中的仿真区间可依经验或历史仿真数据来设置,例如仿真区间为-30dB~30dB。为了检验仿真区间设置的是否合适,还可以对仿真区间的两个端点进行仿真,判断在两个端点的仿真结果是否是下限端点对应的仿真结果大于目标误块率范围以及上限端点对应的仿真结果小于目标误块率范围,若是,则从初始仿真区间的中间点开始进行仿真。下面通过实施例来详细介绍。
参见图3A,本实施例中链路仿真的详细方法流程如下:
预先设置SNR的仿真区间为SNR_MIN(下限端点)~SNR_MAX(上限端点)。初始化仿真点为SNR_MIN,当然也可以是SNR_MAX,本实施例以初始化仿真点为SNR_MIN为例进行说明。同时初始化SNR调整步长SNR_step=SNR_MAX-SNR_MIN。
步骤301:对仿真点SNR_MIN进行仿真,统计当前信噪比下的误块率。本实施例中对SNR_MIN的仿真主要是为了验证仿真区间设置的是否合适,因此在SNR_MIN上的仿真次数可以较少,例如仿真次数FIREST_SECOND_SNR_FRAMENUM=100。
步骤302:判断SNR_MIN的仿真结果是否在目标误块率范围内,若是,则结束流程,否则继续步骤303。由于首个仿真点为SNR_MIN,此时的仿真结果一定不在目标误块率范围内,否则说明仿真区间设置得不合适,可输出提示信息。其中,目标误块率范围为Target_BLER*(1-Target_BLER_threshold))~Target_BLER*(1+Target_BLER_threshold))),Target_BLER为目标BLER,Target_BLER_threshold为目标BLER允许的上下误差值,取值为0到1之间的小数。
步骤303:判断仿真结果是否大于目标误块率范围,若是,则继续步骤304, 否则结束流程。按照经验,在仿真点SNR_MIN上的仿真结果一定大于目标误块率范围,否则说明仿真区间设置得不合适,可输出提示信息。
步骤304:对仿真点SNR_MAX进行仿真,统计当前信噪比下的误块率。此步骤相当于将当前仿真点向上限端点移动相应的SNR调整步长SNR_step=SNR_MAX-SNR_MIN。该移动过程可参见图4所示。另外,本实施例中对SNR_MAX的仿真主要是为了验证仿真区间设置的是否合适,因此在SNR_MAX上的仿真次数可以较少,例如仿真次数FIREST_SECOND_SNR_FRAMENUM=100。
步骤305:判断SNR_MAX的仿真结果是否在目标误块率范围内,若是,则结束流程,否则继续步骤306。此时的仿真结果一定不在目标误块率范围内,否则说明仿真区间设置得不合适,可输出提示信息。
步骤306:判断仿真结果是否小于目标误块率范围,若是,则继续步骤307,否则结束流程。按照经验,在仿真点SNR_MAX上的仿真结果一定小于目标误块率范围,否则说明仿真区间设置得不合适,可输出提示信息。
以上过程是为了验证仿真区间选取的是否合适,如果合适,则继续步骤307,参见图3B所示,否则可重新选取,并重复步骤301-306。
步骤307:对中间点(即(SNR_MIN+SNR_MAX)/2)进行仿真,统计当前信噪比下的误块率。此步骤相当于将当前仿真点向下限端点移动相应的SNR调整步长SNR_step=SNR_step/2=(SNR_MAX-SNR_MIN)/2,即每次移动前一次SNR调整步长的
该移动过程可参见图5所示。另外,对中间点仿真的目的是为了获得较准确的BLER,因此对该点的仿真次数应多一些,例如SNR_FRAMENUM=10000。由此可见,在仿真区间的两个端点的仿真次数小于在仿真区间中除两个端点外其它仿真点上的仿真次数,而且本实施例中仿真次数可相差两个数量级,明显提高了仿真效率。
步骤308:判断仿真结果是否在目标误块率范围内,若是,则继续步骤314,否则继续步骤309。本实施例中目标误块率范围包括端点。
步骤309:判断是否满足继续仿真的条件,若是,则继续步骤310,否则结束流程。满足继续仿真的条件至少包括下列条件之一:确定当前一共运行的仿真点的数量不超过预设的数量阈值;当前的SNR调整步长不低于预设的步长阈值。此步骤是为了避免无限制的仿真下去,以节省资源。其它能够满足该目的的仿真条件均适用于本实施例,此处不一一列举。
步骤310:判断仿真结果是大于目标误块率范围还是小于目标误块率范围,若大于,则继续步骤311,若小于则继续步骤312。
步骤311:从当前仿真点向仿真区间上限端点移动相应的SNR调整步长,将移动后的点确定为下一个仿真点。该移动过程可参见图6所示。
步骤312:从当前仿真点向仿真区间下限端点移动相应的SNR调整步长,将移动后的点确定为下一个仿真点。该移动过程可参见图7所示。
步骤313:对当前仿真点进行仿真,统计当前信噪比下的误块率。继续步骤308。步骤313中,对仿真点进行仿真的目的是为了获得较准确的BLER,因此对该点的仿真次数应多一些,例如SNR_FRAMENUM=10000。
步骤314:获得该仿真点的SNR。
通过以上流程可知,本实施例可直接获得满足目标误块率范围内的SNR,不需要仿真后绘制曲线,并通过该曲线确定SNR。
以上描述了链路的仿真过程,该过程可由装置实现,下面对该装置的内部结构和功能进行介绍。
参见图8A,本实施例中仿真装置包括:仿真模块801、控制模块802和存储模块803。
存储模块803用于存储预先设置的信噪比SNR的初始仿真区间和目标误块率范围。
仿真模块801用于采用二分法在初始仿真区间中确定仿真点,并对该仿真点进行关于误块率BLER的仿真。
控制模块802用于判断仿真结果是否在目标误块率范围内。
所述仿真模块801当仿真结果不在目标误块率范围内时,继续采用二分法并根据当前仿真结果与目标误块率范围的大小关系确定下一个仿真点,并进行仿真。仿真模块801在前一次仿真结果小于目标误块率范围时,从当前仿真点向初始仿真区间下限端点移动相应的SNR调整步长,将移动后的点确定为下一个仿真点;在前一次仿真结果大于目标误块率范围时,从当前仿真点向初始仿真区间上限端点移动相应的SNR调整步长,将移动后的点确定为下一个仿真点。其中首次移动的SNR调整步长为初始仿真区间长度的
之后每次移动时SNR调整步长缩短
所述控制模块802判断二分法确定的仿真点的仿真结果是否在预设的目标误块率范围内,若是,则获得该仿真点的信噪比(SNR)。
仿真模块801还用于对仿真区间的两个端点进行仿真。控制模块802还用于判断在两个端点的仿真结果是否满足以下条件:下限端点对应的仿真结果大于目标误块率范围,并且上限端点对应的仿真结果小于目标误块率范围。若是,则仿真模块801从仿真区间的中间点开始进行仿真。其中,在初始仿真区间的两个端点的仿真次数小于在初始仿真区间中除两个端点外其它仿真点上的仿真次数。
仿真模块801还用于在二分法确定的仿真点的仿真结果仍不在目标误块率范围内时,继续采用二分法在初始仿真区间中确定下一个仿真点,并进行仿真。
控制模块802还用于在继续采用二分法在初始仿真区间中确定下一个仿真点并进行仿真之前,判断是否满足继续仿真的条件。仿真模块801在满足继续仿真的条件时,继续采用二分法在初始仿真区间中确定下一个仿真点,并进行仿真。满足继续仿真的条件至少包括下列条件之一:确定当前一共运行的仿真点的数量不超过预设的数量阈值(如数量阈值为15);当前的SNR调整步长不低于预设的步长阈值(如步长阈值为0.2)。
所述装置还包括接口模块804和绘制模块805,参见图8B所示。
接口模块804用于接收设置的各项参数,如初始仿真区间和目标误块率等,并将接收到的参数存储到存储模块803。绘制模块805用于根据各仿真点对应的SNR和误块率,绘制仿真曲线。
其中,仿真模块801包含发射机系统、无线信道系统和接收机系统,分别对数据进行相应处理。其中,发射机系统可以进一步划分为信源子系统、信道编码子系统、突发形成子系统;而接收机系统可以进一步划分为检测和估计子系统、信道译码子系统、信宿结果统计子系统。仿真模块801的结构和信号流过程参见图9所示。
下面通过一个实例来说明本发明实施例相对于现有技术的有益效果。例如,本发明实施例与现有技术采用相同的仿真区间,如SNR_MIN=-30dB,SNR_MAX=30dB,每个信噪比点仿真10000次,即每个信噪比点需要仿真时间为2个小时,即time_per_snr=2h。本发明实施例中仿真时前后两次信噪比调整步长阈值=0.2dB(即SNRdiff_Endcondition=0.2),则仿真点数量num1为ceil(log2((SNR_MAX-SNR_MIN)/SNRdiff_Endcondition))=ceil(log2((30+30)/0.2))=9,仿真时长time1为num1*time_per_snr=18h。现有技术中信噪比点递增间隔为2dB(即SNR_delta=2),仿真点数量num2=(SNR_MAX-SNR_MIN)/SNR_delta=(30+30)/2=30,仿真时长time2=num2*time_per_snr=60h。由此可见,本发明实施例的仿真时长18h远小于现有技术的60h。另外,由于现有技术进行两次仿真,其第二次细仿真过程不会遍历整个仿真区间,因此在上述例子中现有技术的步长为2dB,本发明实施例采用0.2dB,相差10倍,足可以平衡掉现有技术第二次仿真时仿真区间较小的优势。
本发明实施例从仿真区间的中间点开始仿真,并采用二分法确定仿真点,以获得满足预设BLER范围内的SNR。相比于现有技术中按预设SNR调整步长按顺序逐个仿真点仿真的方案,在整个仿真过程中可大幅度减少仿真点的数量,提高获得获得满足预设BLER范围内的SNR的效率,即提高链路级仿真 的效率。相对于现有技术,本发明实施例在进行链路级仿真时只需要进行一次配置,配置操作简单并且直接输出仿真结果,能够有效地减小仿真人员的手动配置和收集并处理数据的工作量,提高了仿真的可靠性。并且,在进行正式仿真之前现有技术一般需要进行一次初步仿真以确定合适的信噪比仿真区间,本发明实施例只需要进行一次正式仿真获取,并且仿真的信噪比点数少于现有技术方案,有效的减少了仿真时间,提高了仿真效率。本发明实施例适用于多种无线通信系统的链路级仿真,包括但不限于LTE(长期演进)、TD-SCDMA(时分同步码分多址接入)等无线通信系统。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处 理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。