将LDPC Simulink模型的BER输出到BER工具

我想将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)

2 years ago

双击接收器“To workspace”,将保存格式更改为Array .