- Verify data types.
- Check model configuration.
- Inspect bertool settings.
- Consult Simulink documentation: https://www.mathworks.com/help/comm/ref/biterrorrateanalysis-app.html.
Simulink中,如何让Bit Error Rate Analysis(即bertool)正常导入EbNo等数据?
20 次查看(过去 30 天)
显示 更早的评论
在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仍旧无法将数据导入模型。以下是我运行一个较小模型时产生的数据。红色是启用并行池的数据,黄色为禁用并行池的数据。由于上述问题存在,所以我并不希望对较大的系统启用并行池,而且启用并行池反而会导致运行时长偏高,不知道该如何处理。
0 个评论
回答(1 个)
UDAYA PEDDIRAJU
2024-8-23
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?
I think if the issue persists you should contact the technical support: https://www.mathworks.com/support/contact_us.html?s_tid=hc_trail
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Big Data Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!