Simulink中,如何让Bit Error Rate Analysis(即​bertool)正常​导入EbNo等数据?

22 views (last 30 days)
在bertool中运行蒙特卡洛模拟后,其无法正常写入EbNo,maxNumErrs和maxNumBits数据,而是持续调用我原先初始化m文件中所使用的数据,并且在运行完模拟之后,工作区原先的这三个数据会消失。
这是初始化m文件运行后在工作区产生的变量,可以看到上述bertool所需要写入的3个变量已经提前产出了。这里我故意设置maxNumBits为10^3,与在bertool中设置的10^5不同,这样可以测试出模型具体调用的参数。
模型使用InitFcn调用了上述的初始化m文件。
由于需求有些特殊,所以模型内并没有使用传统的AWGN信道,而是用EbNo输入常数模块后手动计算干扰并叠加至载波信号。上面是一部分干扰模块的计算部分,包括了所调用的EbNo数据。在m文件内更改EbNo并重新加载时,输出的误码率会正常变化。
这是模型结尾输出的部分,可以看到包括最大误码数和最大比特数都是直接调用参数计算的,理论上在bertool中更改数据时会一并更改。最后输出到工作区的BERPolar参数是固定输出最终值的。
以inf仿真时间运行模型,可以看到BERPolar能够正常计算。这里EbNo设置较高(0),所以体现不出BER数据,当将EbNo设置更低时(-10)有正常数据(大约0.04),这里就不再列举。
进入bertool进行设置。设置内容大致如下,注意这里比特数限制是10^5而非m文件中的10^3。按照bertool内的说明,其应当替换工作区内的maxNumBits。同时EbNo也设置在了会有数据的-10和-8两个点,而m文件中的EbNo=0。
关闭并行池调用进行仿真,最终结果如图所示:测试比特数使用了m文件中的10^3而非输入的10^5,实际模拟结果也更像是m文件中的EbNo=0的点而非-10和-8的点位。
运行bertool后的工作区。可以看到原先写入的EbNo,maxNumErrs和maxNumBits数据已经从工作区消失。
我查询了不少文档,但是并没有与这个问题相关的回答,特此提问。
同时可以说明的是这个问题并非一开始就有的问题,前几天该模型运行bertool时非常正常。今天早些时候在运行时忘记关闭并行池,导致parpool直接将电脑内存全部消耗完,不仅matlab运行严重卡死,还导致了整个电脑系统卡死,最终只能断电重启。由于这个现象其实已经发生多次,我怀疑是多次强行关闭进程导致部分文件损坏,进而导致所需要的数据无法正常调用。但是我切换了多个模型,也换了另外一台新装matlab的电脑进行尝试,但是运行结果仍能够稳定复现上述问题,希望问题能够得到解决。
如果有需要,我可以提供一个完整的m文件-slx文件组合包,将整个模型一并发送以推进问题解决。
补充:今天再次测试了一下,在调用并行池的情况下,bertool能够正常导入数据并运行;但是不启动并行池时,bertool仍旧无法将数据导入模型。以下是我运行一个较小模型时产生的数据。红色是启用并行池的数据,黄色为禁用并行池的数据。由于上述问题存在,所以我并不希望对较大的系统启用并行池,而且启用并行池反而会导致运行时长偏高,不知道该如何处理。

Answers (1)

UDAYA PEDDIRAJU
UDAYA PEDDIRAJU on 23 Aug 2024
Hi Yuxiang Zhao,
I tried understanding the issue specifically, but since there are no files attached I can't replicate the issue to figure out the issue, did you check the following to troubleshoot the bertool issue?
  1. Verify data types.
  2. Check model configuration.
  3. Inspect bertool settings.
  4. Consult Simulink documentation: https://www.mathworks.com/help/comm/ref/biterrorrateanalysis-app.html.
I think if the issue persists you should contact the technical support: https://www.mathworks.com/support/contact_us.html?s_tid=hc_trail

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!