我想将BER数据从使用LDPC编码器和解码器的简单系统输出到通信工具箱的BER工具中并绘制BER曲线。
我使用LDPC修改了示例系统,commdvbs2.mdl,可在Demos的“帮助”菜单中找到&gt; Simulink演示&gt; <应用专用实施例> DVB-S.2链路,包括LDPC编码。
为简化起见,我删除了通用块交织器和通用块解交织器。我还删除了BCH编码器和BCH解码器。为了弥补BCH编码器的不足,我更改了BBFRAME缓冲块中的Zero Pad,使其列大小为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 Error Rate计算器的输出连接到该工具。我将变量命名为ber_out
,并将限制数据点设置为最后1
。
然后我将AWGN块的Eb / No更改为:EbNo
,这是BER工具逐步绘制BER的矢量。 (以新名称将这些更改保存到模型中。)
在BER工具中,我转到蒙特卡罗选项卡。我将Eb / No范围设置为:0:0.2:2
。将BER变量名称设置为:ber_out
。
在我运行模拟之后,我得到了一个什么都没有的情节。诊断工具会弹出以下两条消息:
来源:commdvbs2_noBCH_noInterleave_EbNo_BERTool。评估错误 'stopFcn'回调block_diagram 'commdvbs2_noBCH_noInterleave_EbNo_BERTool'。来源:未知。矢量 必须是相同的长度。
我做错了什么?
(MATLAB版本是2012a。)
答案 0 :(得分:0)
双击水槽'To workspace',将保存格式更改为Array。