【发布时间】:2014-02-08 13:57:50
【问题描述】:
我想将使用 LDPC 编码器和解码器的简单系统中的 BER 数据导出到 Communication Toolbox 的 BER 工具中并绘制 BER 曲线。
我已经使用 LDPC 修改了示例系统 commdvbs2.mdl,它位于帮助菜单中的 Demos > Simulink Demos > Application-Specific Examples > DVB-S.2 Link,包括 LDPC Coding。
为了简化它,我删除了通用块交织器和通用块去交织器。我还删除了 BCH 编码器和 BCH 解码器。为了弥补 BCH 编码器的不足,我将 BBFRAME 缓冲块中的零填充更改为具有dvb.BCHCodewordLength 的列大小,而不是dvb.BCHMessageLength。
我将 AWGN 块更改为具有以下参数:
模式:Signal to noise ratio (Eb/No)
Eb/No (db):dvb.EsNodB / log2(dvb.BitsPerSymbol)
每个符号的位数:dvb.BitsPerSymbol
符号周期:dvb.BitPeriod * dvb.BitsPerSymbol
到目前为止,这一切都有效。如果我将模型参数更改为 1 dB 的 Es/No,我仍然会得到 0 BER 和 0 PER。
但现在我在将 BER 从模型中取出并在 BER 工具中绘制时遇到了问题。我添加了一个“To Workspace”块并将 BER 错误率计算器的输出连接到该块。我将变量命名为ber_out,并将限制数据点设置为最后一个1。
然后我将 AWGN 块的 Eb/No 更改为:EbNo,这是 BER 工具逐步通过以绘制 BER 的向量。 (以新名称保存对模型的这些更改。)
在 BER 工具中,我转到 Monte Carlo 选项卡。我将 Eb/No 范围设置为:0:0.2:2。将 BER 变量名称设置为:ber_out。
运行模拟后,我得到一个什么都没有的图。诊断工具弹出以下两条消息:
来源:commdvbs2_noBCH_noInterleave_EbNo_BERTool。错误评估 block_diagram 的“StopFcn”回调 'commdvbs2_noBCH_noInterleave_EbNo_BERTool'。来源:未知。矢量图 长度必须相同。
我做错了什么?
(MATLAB 版本为 2012a。)
【问题讨论】:
-
请验证 BER 变量名 "ber_out" 在 Bertool 和仿真模型中是否相同。