使用HDL优化RS编/解码器库块

此示例演示如何实现IEEE®802.16标准的编码器和解码器[1使用HDL优化的Reed-Solomon (RS)编码器和解码器库块。

介绍

RS代码是非二进制块代码。一个RS代码映射K美元将信息符号转换成符号长度的码字N美元记为RS(N美元,K美元)的代码。代码的符号之间是整数$ 0 $2美元^ m - 1美元,表示有限域GF(2 ^ M美元)。ieee802.16宽频无线接达标准[1)使用了一个缩短,刺穿和擦除在GF(256)上产生的RS(255,239)代码,即N = 255美元,$ K = 239美元,M = 8美元。RS编码器介绍$ n - k = 16美元奇偶校验符号,RS解码器使用它来检测和纠正符号错误。代码可以更正到$ T = \ textrm{地板}[(n - k) / 2] = 8美元每个码字中的符号错误。

该模型展示了如何使用HDL优化的RS编解码器库块进行仿真和HDL代码生成。实现了对ieee802.16标准的编码和纠错。有关HDL支持HDL优化RS编解码器块的详细金宝app信息,请参阅整数输入RS编码器高密度脂蛋白优化集成输出RS解码器HDL优化。如欲了解更多有关分块内使用的算法,请参阅[2]。

要打开这个示例模型,运行以下命令:

子系统为RS编码器生成信息符号。打开子系统,运行以下命令:

IEEE 802.16标准使用的消息(信息符号)之一包含以下36字节(在[1])。

消息= [D4 BA A1 12 F2 74 96 30 27 D4 88 9C 96 E3 A9 52 B3 15 AB FD 92 53 07 32 C0 62 48 F0 19 22 E0 91 62 1A C1 00]。

在保护间隔之后重复传输消息。模型有参数messagelength,表示消息中要编码的符号数目;和,其中包括messagelength以及保护间隔的长度。消息之间的保护间隔适应编码器向消息添加奇偶校验符号和执行简搜索的解码器的延迟。在模型的initFcn回调函数中messagelength设置为36和设置为236(这表明保护间隔的长度为200个符号)。

注意的值messagelength可以根据需要改变。

顶级RS子系统包含HDL优化的RS编解码器块。打开RS子系统,运行以下命令:

的值N美元K美元都是设置在InitFcn回调中的模型,并用于配置HDL优化的RS编解码器块。的值N美元K美元不能在此模型中更改。

如果消息长度小于,RS编码器推断出缩短的代码K美元符号。在本例中,它将填充输入消息239 - 36 = 203美元零,对填充消息进行编码,并附加16个奇偶校验符号。块然后删除添加的零符号,创建一个36美元+ 16 = 52美元符号输出。

采用ieee802.16标准的场产生器多项式$ p (x) = x ^ 8 + x ^ 4 + x ^ 3 + x ^ 2 + 1美元。因此,对于RS编码器和解码器原始多项式源是设置为财产,本原多项式设为[1 0 0 0 1 1 1 1 0 1],源B是原始多项式根的起始功率是设置为财产,B值是设置为0。ieee802.16标准使用的代码生成器多项式是$ g (x) = (x + \λ^ 0)(x + \λ^ 1)(x + \λ^ 2)\ ldots (x + \λ^ {2 t - 1})美元,在那里$ \λ= 2 _ {\ textrm{十六进制}}$

限制M美元以及码字长度N美元的详情载于整数输入RS编码器块引用页面。的ErrorGen子系统向RS编码的消息添加噪声。打开ErrorGen子系统,运行以下命令:

ErrorGen类中指定的位置向码字添加噪声的逻辑噪声的位置常数。可以根据需要更改位置。在本例中,噪声将被添加到第5、第23、第34和第12码字,对应于符号F2、07、1A和9C。MATLAB®函数块仅在每个包的这四个时间实例上输出逻辑true,并在原始符号和噪声之间启动按位异或操作。

输出信号

使用以下命令运行模型:

查看信号

逻辑分析器可用于在一个窗口中查看多个信号,通过这种方式查看信号可以更容易地观察转换。该模型中各个阶段的信号,即编码前、编码后、加噪后、解码后进行流化处理。模型中的蓝色图标表示流信号。从模型的工具栏中启动逻辑分析器。

分析的结果

在逻辑分析器的输出中,inputdata信号表示RS编码器块的输入,这是IEEE 802.16规范中给出的36字节消息。编码数据显示RS编码器块的输出。请注意,IEEE 802.16规范执行奇偶校验字节的戳穿,并仅保留16字节的前四个字节。在这个演示中,使用了全部16个字节的奇偶校验,前4个字节的奇偶校验是49、31、40和BF,匹配IEEE 802.16规范。

errdata信号表示在指定的噪声位置中添加了噪声的编码数据。这些噪声位置在inserterr信号中用1s标记。

从RS解码器块中解码和校正后的消息由outputdata信号显示。注意,RS解码器块引入了大约3个周期长度的延迟。观察outputdata,看看由噪音引起的错误是否得到了纠正。

生成HDL代码和测试工作台

要为本例检查和生成HDL代码,您必须拥有一个HDL Coder™许可证。

为生成的文件获取唯一的临时目录名,

workingdir = tempname;

要检查HDL代码生成模型是否有任何问题,可以运行以下命令:

checkhdl (“commrshdl / RS子系统”、“TargetDirectory”, workingdir);

输入以下命令生成HDL代码:

makehdl (“commrshdl / RS子系统”、“TargetDirectory”, workingdir);

输入以下命令生成测试工作台:

makehdltb (“commrshdl / RS子系统”、“TargetDirectory”, workingdir);

ModelSim®输出

下图显示了运行为测试工作台生成的.do文件脚本后的ModelSim HDL模拟器。将ModelSim结果与之前绘制的Simulink®结果进行比较。金宝app

选择引用

1.IEEE 802.16:宽带无线接入系统空中接口的IEEE标准(IEEE Std 802.16-2009修订版)。IEEE-SA。2012年6月8日。

2.小乔治·c·克拉克,j·比布·凯恩,《数字通信的纠错编码》,纽约:施普林格,1981。