文档

rsencoder系统对象

使用里德-所罗门编码器编码数据

描述

RSEncoder对象创建一个Reed-Solomon代码,其中包含您指定的消息和码字长度。

使用Reed-Solomon编码方案对数据进行编码:

  1. 定义并设置Reed-Solomon编码器对象。看到建设

  2. 调用一步的属性对数据进行编码comm.RSEncoder.的行为一步特定于工具箱中的每个对象。

请注意

从R2016b开始,而不是使用一步方法来执行由System对象™定义的操作,您可以调用带有参数的对象,就像调用函数一样。例如,Y = step(obj,x)而且Y = obj(x)执行等效操作。

建设

内附= comm.RSEncoder创建一个块编码器系统对象,内附.该对象执行Reed-Solomon (RS)编码。

内附= comm.RSEncoder (NK创建一个RS编码器对象,内附,与CodewordLength属性设置为NMessageLength属性设置为K

内附= comm.RSEncoder (NK全科医生创建一个RS编码器对象,内附,与CodewordLength属性设置为N,MessageLength属性设置为K,以及GeneratorPolynomial属性设置为全科医生

内附= comm.RSEncoder (NK全科医生年代创建一个RS编码器对象,内附,与CodewordLength属性设置为N,MessageLength属性设置为K,GeneratorPolynomial属性设置为全科医生,以及ShortMessageLength属性设置为年代

内附= comm.RSEncoder (NK全科医生年代的名字价值创建一个RS编码器对象,内附,与CodewordLength属性设置为N,MessageLength属性设置为K,GeneratorPolynomial属性设置为全科医生,ShortMessageLength属性设置为年代,以及每个指定的属性的名字设置为指定的价值

内附= comm.RSEncoder (的名字价值创建一个RS编码器对象,内附,每个指定的属性名称设置为指定的值。可以以任意顺序指定附加的名称-值对参数,如(Name1Value1、……).

属性

请注意

输入和输出信号的长度列于BCH和RS系统对象中的输入和输出信号长度comm.BCHDecoder参考页面。

BitInput

假设输入是位

指定输入是由位还是整数组成。默认为

当您将此属性设置为,一步方法输入的数据值必须是一个数值,整数的列向量。构成输入消息和输出码字的每个符号都是0到2之间的整数1。这些整数对应于有限伽罗瓦场的一个元素女朋友(2).原始多项式的次数是多少PrimitivePolynomialSource而且PrimitivePolynomial属性。

当您将此属性设置为真正的,则输入值必须为数字位的列向量。编码后的数据输出结果是位的列向量。

CodewordLength

码字长度

将RS码的码字长度指定为双精度正整数标量值。默认为7

对于完整长度的RS码,该属性的值必须为21,是否有一个整数使3≤≤16。

MessageLength

消息长度

将消息长度指定为双精度正整数标量值。默认为3.

ShortMessageLengthSource

短消息长度源

指定短消息的来源为汽车财产.当此属性设置为汽车, RS编码由CodewordLengthMessageLengthGeneratorPolynomial,PrimitivePolynomial属性。当ShortMessageLengthSource设置为财产时,必须指定ShortMessageLength属性,该属性与其他属性一起用于定义RS代码。默认为汽车

ShortMessageLength

缩短消息长度

将缩短消息的长度指定为双精度正整数标量,其值必须小于或等于MessageLength.当ShortMessageLength<MessageLength, RS码被缩短。默认为3.

GeneratorPolynomialSource

发生器多项式的来源

指定生成器多项式的源为汽车财产.默认为汽车

当您将此属性设置为汽车,该对象自动选择生成器多项式。的值计算生成器多项式PrimitivePolynomial财产。

当你设置GeneratorPolynomialSource财产方法指定生成器多项式GeneratorPolynomial财产。

GeneratorPolynomial

发电机多项式

将RS代码的生成器多项式指定为双精度整数行向量或伽罗瓦行向量。伽罗瓦行向量项必须在02-1.这些项必须表示一个按幂降序排列的生成器多项式。每个系数都是伽罗瓦场的一个元素女朋友(2),以整数格式表示。生成多项式的长度必须是CodewordLength- - - - - -MessageLength+ 1。

的结果rsgenpoly(7,3,[],[],'double'),其计算结果为a女朋友(23.包含元素的数组[1 3 1 2 3].设置时应用此属性GeneratorPolynomialSource财产

CheckGeneratorPolynomial

启用生成器多项式检查

将此属性设置为真正的执行生成器多项式检查。默认为真正的.此检查验证指定的生成器多项式是否有效。对于较大的代码,禁用检查可以加快处理速度。作为最佳实践,在将此属性设置为之前至少执行一次检查.此属性适用于GeneratorPolynomialSource设置为财产

PrimitivePolynomialSource

基元多项式的来源

指定原语多项式的源为汽车财产.默认为汽车

当您将此属性设置为汽车时,该对象使用了次的基元多项式装天花板(log2 (CodewordLength+ 1)。

当您将此属性设置为财产时,必须使用PrimitivePolynomial财产。

PrimitivePolynomial

本原多项式

指定定义有限域的基元多项式女朋友(2)对应于构成消息和码字的整数。将此属性指定为一个双精度的二进制行向量,它表示一个基元多项式女朋友(2)程度按幂的降序排列。

如果CodewordLength小于2-1时,该对象使用缩短的RS代码。的结果fliplrde2biprimpoly(3))),即[1 0 1 1]或多项式 x 3. + x + 1

设置时应用此属性PrimitivePolynomialSource财产

PuncturePatternSource

穿刺图案的来源

指定穿刺图案的来源为没有一个财产.默认为没有一个

如果将此属性设置为没有一个,该对象不会对代码应用戳穿。如果将此属性设置为财产中指定的穿刺模式向量对代码进行穿刺PuncturePattern财产。

PuncturePattern

穿刺模式向量

指定用于戳穿编码数据的模式为长度为(的双精度二进制列向量。CodewordLength- - - - - -MessageLength).默认为[(2, 1)的;0 (2, 1)).穿刺模式向量中的零表示被穿刺或从每个码字中排除的奇偶校验符号的位置。属性时应用此属性PuncturePatternSource财产财产

OutputDataType

输出的数据类型

将输出数据类型指定为和输入一样,或逻辑.默认为和输入一样.属性时应用此属性BitInput财产真正的

方法

一步 使用Reed-Solomon编码器编码数据
通用于所有系统对象
释放

允许系统对象属性值更改

例子

全部展开

通过AWGN信道发送rs编码的8- dpsk调制的符号流。然后,解调、解码和计数错误。

enc = com . rsencoder;mod = comm.DPSKModulator(“BitInput”、假);chan = com . awgnchannel (...“NoiseMethod”信噪比(SNR)“信噪比”10);demod = comm.DPSKDemodulator(“BitOutput”、假);hDdecec = comm.RSDecoder;= com . errorRate (“ComputationDelay”3);Counter = 1:20 data = randi([0 7], 30, 1);encodedData = step(enc, data);modSignal = step(mod, encodedData);receivedSignal = step(chan, modSignal);demodSignal = step(demod, receivedSignal);receivedSymbols = step(hDdecec, demodSignal);errorStats = step(errorRate, data, receivedSymbols);结束流('错误率= %f\n错误数= %d\n'...errorStats errorStats (1), (2))
错误率= 0.115578错误数= 69

通过AWGN信道发送一个缩短的rs编码、256- qam调制的符号流。然后解调、解码和计数错误。

设置里德-所罗门代码的参数,其中N是码字长度,K是名义消息长度,和年代缩短的消息长度。设置调制顺序,,和帧数,l

N = 255;K = 239;S = 188;M = 256;L = 50;

创建QAM调制器、QAM解调器、AWGN通道和错误率系统对象。

mod = com . rectangularqammodulator,...“NormalizationMethod”的平均功率);chan = com . awgnchannel (“NoiseMethod”信噪比(Eb/No)...“EbNo”15岁的“BitsPerSymbol”log2 (M));demod = comm. rectangularqam解调器(M,...“NormalizationMethod”的平均功率);= com . errorRate (“ComputationDelay”3);

根据DVB-T标准创建Reed-Solomon生成器多项式。

gp = rsgenpoly(N,K,[],0);

使用缩短的消息长度创建里德-所罗门编码器和解码器对,年代, DVB-T发生器多项式,全科医生

enc = com . rsencoder (N,K,gp,S);dec = com . rsdecoder (N,K,gp,S);

生成长度等于一个消息块的随机符号帧。编码、调制、应用AWGN、解调、解码和收集统计信息。

counter = 1:L data = randi([0 1],S,log2(M));encodedData = step(enc,bi2de(data));modSignal = step(mod,encodedData);receivedSignal = step(chan,modSignal);demodSignal = step(demod,receivedSignal);receivedBits = step(dec,demodSignal);dataOut = de2bi(receivedBits);errorStats = step(errorRate,data(:),dataOut(:));结束

显示错误率和错误数量。

流('错误率= %5.2e\n错误数= %d\n'...errorStats errorStats (1), (2))
错误率= 2.01e-02错误数= 1509

算法

中描述的算法、输入和输出BCH和RS纯错误译码算法

扩展功能

在R2012a中介绍

这个话题有帮助吗?