我想将BER数据从使用LDPC编码器和解码器的简单系统导出到通信工具箱的BER工具中并绘制BER曲线 .
我已使用LDPC,commdvbs2.mdl修改了示例系统,该文件位于Demos> Simulink演示>特定于应用程序的示例> DVB-S.2链接(包括LDPC编码)的“帮助”菜单中 .
为了简化它,我删除了通用块交织器和通用块解交织器 . 我还删除了BCH编码器和BCH解码器 . 为了弥补BCH编码器的不足,我更改了BBFRAME缓冲块中的零填充,使列大小为 dvb.BCHCodewordLength
而不是 dvb.BCHMessageLength
.
我更改了AWGN块以具有以下参数:模式: Signal to noise ratio (Eb/No)
Eb /否(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工具中,我转到蒙特卡罗选项卡 . 我将Eb / No范围设置为: 0:0.2:2
. 将BER变量名称设置为: ber_out
.
在我运行模拟之后,我得到了一个没有任何情节的情节 . 诊断工具会弹出以下两条消息:
来源:commdvbs2_noBCH_noInterleave_EbNo_BERTool . 在评估block_diagram'comdvbs2_noBCH_noInterleave_EbNo_BERTool'的'StopFcn'回调时出错 . 来源:未知 . 矢量必须是相同的长度 .
我究竟做错了什么?
(MATLAB版本是2012a . )
1 回答
双击接收器“To workspace”,将保存格式更改为Array .