0

我想将使用 LDPC 编码器和解码器的简单系统中的 BER 数据导出到通信工具箱的 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 符号周期 (s):dvb.BitPeriod * dvb.BitsPerSymbol

到目前为止,这一切都有效。如果我将模型参数更改为 1 dB 的 Es/No,我仍然会得到 0 BER 和 0 PER。

但是现在我在将 BER 从模型中取出并在 BER 工具中绘制时遇到了问题。我添加了一个“To Workspace”块并将 BER 错误率计算器的输出连接到该块。我命名了变量ber_out并将限制数据点设置为 last 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 'commdvbs2_noBCH_noInterleave_EbNo_BERTool' 的 'StopFcn' 回调时出错。来源:未知。向量的长度必须相同。

我究竟做错了什么?

(MATLAB 版本是 2012a。)

4

1 回答 1

0

双击接收器“到工作区”,将保存格式更改为数组。

于 2014-02-08T05:57:50.123 回答