文档

comm.BCHEncoder系统对象

使用BCH编码数据编码器

描述

BCHEncoder对象创建一个BCH码与指定的消息和码字的长度。

使用BCH编码数据编码方案:

  1. 定义和设置您的BCH编码对象。看到建设

  2. 调用一步创建一个BCH码与信息码字长度指定的属性comm.BCHEncoder。的行为一步是特定于每个对象在工具箱。

请注意

从R2016b开始,而不是使用一步定义的方法来执行操作系统对象™,您可以调用对象的参数,就好像它是一个函数。例如,y =步骤(obj, x)y = obj (x)执行相同操作。

建设

内附= comm.BCHEncoder创建一个BCH编码系统对象,内附,执行BCH编码。

内附= comm.BCHEncoder (N,K)创建一个BCH编码对象,内附,CodewordLength属性设置为NMessageLength属性设置为K

内附= comm.BCHEncoder (N,K,全科医生)创建一个BCH编码对象,内附,CodewordLength属性设置为N,MessageLength属性设置为KGeneratorPolynomial属性设置为全科医生

内附= comm.BCHEncoder (N,K,全科医生,年代)创建一个BCH编码对象,内附,CodewordLength属性设置为N,MessageLength属性设置为K,GeneratorPolynomial属性设置为全科医生ShortMessageLength属性设置为年代

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

内附= comm.BCHEncoder (的名字,价值)创建一个BCH编码对象,内附,每个指定的属性设置为指定的值。您可以指定额外的名称-值对参数在任何顺序(Name1,Value1、……,)。

属性

请注意

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

CodewordLength

码字长度

BCH码的码字长度指定为双精度正整数标量。默认值是15。的值CodewordLengthMessageLength属性必须产生一个有效的狭义BCH码。长篇BCH码,该属性的值必须使用表单 2 1 ,在那里是一个整数,这样吗 3 16 。默认值是15

MessageLength

消息长度

指定消息长度作为一个双精度正整数标量。的值CodewordLengthMessageLength属性必须产生一个有效的狭义BCH码。默认值是5

ShortMessageLengthSource

短消息长度源

指定源的短消息汽车财产。当这个属性设置汽车,BCH码的定义CodewordLength,MessageLength,GeneratorPolynomial,PrimitivePolynomial属性。当ShortMessageLengthSource被设置为财产,你必须指定ShortMessageLength属性和其他属性用于定义RS码。默认值是汽车

ShortMessageLength

短消息长度

指定的长度缩短消息作为一个双精度正整数的标量值必须小于或等于MessageLength。当ShortMessageLength<MessageLengthBCH码是缩短。默认值是5

GeneratorPolynomialSource

发电机多项式的来源

指定源发生器多项式的汽车财产。将此属性设置为汽车创建自动生成多项式。将其设置为财产指定一个发电机多项式使用GeneratorPolynomial财产。默认值是汽车

GeneratorPolynomial

发电机多项式

指定生成多项式作为二进制双精度行向量,一个二进制伽罗瓦行向量表示发电机多项式的系数递减的顺序的权力,或作为一个多项式特征向量。发电机多项式的长度需要的价值CodewordLength- - - - - -MessageLength+1。适用于当您设置这个属性GeneratorPolynomialSource财产。默认值是“X X ^ ^ 10 + 8 + X X ^ ^ 5 + 4 + X ^ 2 + X + 1”的结果bchgenpoly(15日,5日,[],“双”5))和对应于一个(15日代码。

CheckGeneratorPolynomial

使发电机多项式检查

将此属性设置为真正的执行一个发电机多项式检查你第一次调用一步方法。这张支票验证指定的发电机多项式是有效的。对于更大的码,禁用检查可以减少处理时间。作为一项最佳实践,执行之前检查至少一次将这个属性设置为false。适用于当您设置这个属性GeneratorPolynomialSource财产。默认值是真正的

PrimitivePolynomialSource

本原多项式的来源

指定本原多项式的来源之一汽车财产。将此属性设置为汽车创建一个本原多项式的学位=装天花板(log2 (CodewordLength+ 1)。将其设置为财产指定一个多项式使用PrimitivePolynomial财产。默认值是汽车

PrimitivePolynomial

本原多项式

指定顺序M的本原多项式,定义了有限的伽罗瓦域GF (2)。使用双精度,二进制行向量的系数多项式在权力或递减的顺序多项式特征向量。这个属性设置时适用PrimitivePolynomialSource财产财产。默认值是“X ^ 4 + X + 1”的结果fliplr(de2bi(primpoly(4)))

PuncturePatternSource

源击穿模式

指定的源击穿模式之一没有一个财产。将此属性设置为没有一个禁用刺穿。将其设置为财产解码被刺穿的码字。这个解码是基于一个穿刺模式向量中指定PuncturePattern财产。默认值是没有一个

PuncturePattern

穿刺模式向量

指定对象的模式使用穿刺编码数据。使用双精度二进制列向量的长度CodewordLength- - - - - -MessageLength。0在穿刺模式向量表示的奇偶校验位的位置对象穿刺或从每个码字排除。适用于当您设置这个属性PuncturePatternSource财产。默认值是[1 (8,1);0 (2,1))

方法

一步 使用BCH编码数据编码器
常见的系统对象
释放

允许系统对象属性值的变化

例子

全部展开

%以下代码传输BCH-encoded, 8-DPSK-modulated位流%通过AWGN信道。然后,例子解调、解码和计数错误。内附= comm.BCHEncoder;mod = comm.DPSKModulator (“BitInput”,真正的);陈= comm.AWGNChannel (“NoiseMethod”,信号噪声比(信噪比)的,“信噪比”10);解调= comm.DPSKDemodulator (“BitOutput”,真正的);12月= comm.BCHDecoder;errorRate = comm.ErrorRate (“ComputationDelay”3);counter = 1:20 data =兰迪([0,1],30岁,1);encodedData =步骤(enc数据);modSignal =步骤(mod, encodedData);modSignal receivedSignal =步骤(chan);demodSignal =步骤(解调,receivedSignal);receivedBits =步骤(12月,demodSignal);errorStats =步骤(errorRate、数据receivedBits);结束流('出错率= % f \ nNumber错误= % d \ n ',errorStats errorStats (1), (2))
出错率= 0.015075的错误数量= 9

传输和接收BPSK-modulated信号编码与缩短BCH码,然后计数错误。

指定码字,信息,和短消息长度。

N = 255;K = 239;S = 63;

创建一个BCH(255239)发电机多项式。使用生成器多项式来创建一对BCH编码器和译码器。BCH码是基于AMR标准。

gp = bchgenpoly (255239);bchEncoder = comm.BCHEncoder (N, K, gp,年代);bchDecoder = comm.BCHDecoder (N, K, gp,年代);

创建一个错误率计数器。

errorRate = comm.ErrorRate (“ComputationDelay”3);

主要处理循环。

counter = 1:20 data =兰迪([0,1],630,1);%生成二进制数据encodedData = bchEncoder(数据);% BCH编码数据modSignal = pskmod (encodedData 2);% BPSK调制receivedSignal = awgn (modSignal, 5);%通过AWGN信道demodSignal = pskdemod (receivedSignal 2);% BSPK解调receivedBits = bchDecoder (demodSignal);% BCH译码数据errorStats = errorRate(数据、receivedBits);%计算误差统计结束

统计数据显示错误。

流('出错率= % f \ nNumber错误= % d \ n ',errorStats errorStats (1), (2))
出错率= 0.000318的错误数量= 4

缩短的(31岁,26)BCH码(11日6)BCH码和用它来随机二进制数据编码和解码。

创建一对BCH编码器和解码器(31岁,26)代码。指定生成多项式,和一个短消息的长度6

内附= comm.BCHEncoder(31日26日“x5 + x2 + 1”6);= comm.BCHDecoder(12月31日,26日“x5 + x2 + 1”6);

随机二进制数据编码和解码,并验证解码比特流匹配原始数据。

x =兰迪([0,1],60岁,1);y =步骤(enc, x);z =步骤(12月,y);isequal (x, z)
ans =逻辑1

选定的参考书目

[1]克拉克,乔治·c·Jr .)和j .龙头凯恩,纠错编码的数字通信。纽约,充气出版社,1981年。

[2]柳条,斯蒂芬·B。,Error Control Systems for Digital Communication and Storage Upper Saddle River, NJ, Prentice Hall, 1995.

算法

这个对象实现算法、输入和输出中描述BCH和RS错误解码算法

扩展功能

这个主题有帮助吗?