主要内容

comm.gpu.LDPCDecoder

解码二进制低密度奇偶校验(LDPC)码的GPU

使用这个对象,您必须安装并行计算工具箱™和访问支持GPU。金宝app如果主机有GPU配置、加工使用GPU。否则,处理使用CPU。关于gpu的更多信息,请参阅GPU计算(并行计算工具箱)

描述

comm.gpu.LDPCDecoder系统对象™使用信念传播算法解码二进制LDPC码,输入的对象不痒的决定输出解调接收比特)(对数似然比。对象解码通用二进制LDPC码,没有奇偶校验矩阵的模式。有关更多信息,请参见信仰传播解码

解码一个LDPC-encoded信号:

  1. 创建comm.gpu.LDPCDecoder对象并设置其属性。

  2. 调用对象的参数,就好像它是一个函数。

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

描述

例子

gpu_ldpcdecoder= comm.gpu.LDPCDecoder创建一个基于gpu的二进制LDPC译码器系统对象。这个对象执行基于指定的奇偶校验矩阵的LDPC译码。

gpu_ldpcdecoder= comm.gpu.LDPCDecoder (奇偶校验)设置ParityCheckMatrix财产奇偶校验并创建一个基于gpu的LDPC译码器系统对象。的奇偶校验输入必须指定为所描述的ParityCheckMatrix财产。

gpu_ldpcdecoder= comm.gpu.LDPCDecoder (___,的名字,价值)设置使用一个或多个属性名称-值对,除了输入任何之前的语法。例如,comm.LDPCDecoder (“DecisionMethod”、“软决定”)配置一个LDPC译码器的系统对象解码数据使用不痒的决定方法和输出对数似比率的数据类型。在报价附上每个属性的名字。

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

稀疏奇偶校验矩阵,指定为(N- - - - - -K)———Nbinary-valued矩阵。N是接收信号的长度,必须在范围(0,231日)。K是未编码的消息的长度必须小于N。最后一个(N- - - - - -K)奇偶校验矩阵中的列必须是一个可逆矩阵的伽罗瓦域订单2,女朋友(2)。

您还可以指定一个两列的奇偶校验矩阵nonsparse指数矩阵,,定义的行和列索引1的奇偶校验矩阵等稀疏(我(:1),我(:,2),1)

这个属性接受数字数据类型。当你将此属性设置为一个稀疏二进制矩阵,这个属性也接受了逻辑数据类型。

默认值使用dvbs2ldpc函数来配置一个稀疏奇偶校验矩阵half-rate LDPC编码,DVB-S中指定。2标准。

例子:dvbs2ldpc (R,“指数”)配置DVB-S指数矩阵。2标准,R是编码速率,“指标”指定的输出格式dvbs2ldpc作为一个两列双精度矩阵定义的行和列索引1年代的奇偶校验矩阵。

数据类型:|逻辑

输出值的格式,指定这些值之一:

  • “信息部分”——对象输出K1列向量只包含向量。收到的信息记者对数似然比K未编码的消息的长度。

  • “整个码字”——对象输出N1列向量向量包含整个对数似然比。N是接收信号的长度。

    NK必须结合的尺寸(N- - - - - -K)———K奇偶校验矩阵。

数据类型:字符

决策方法用于解码,指定这些值之一:

  • “艰难的决定”——对象输出解码数据的数据类型逻辑

  • “软的决定”——对象输出对数似比率的数据类型

数据类型:字符

迭代终止条件,指定这些值之一:

  • “最大迭代数”——解码后终止指定的迭代的数量MaximumIterationCount财产。

  • “奇偶校验满意”——解码终止毕竟奇偶校验检查满意。如果不是所有的奇偶校验检查满意,解码后终止指定的迭代的数量MaximumIterationCount财产。

数据类型:字符

最大数量的解码迭代,指定为一个正整数。

数据类型:

输出执行的迭代次数,指定为真正的。输出迭代执行的数量,设置该属性真正的

数据类型:逻辑

输出最终的奇偶校验检查,指定为真正的。输出最终计算奇偶校验检查,设置该属性真正的

数据类型:逻辑

使用

描述

例子

y= gpu_ldpcdecoder (x)解码输入数据使用一个基于默认的奇偶校验矩阵的LDPC码。

(y,numiter)= gpu_ldpcdecoder (x)返回解码数据,y执行的迭代次数,numiter。使用这个语法,设置NumIterationsOutputPort财产真正的

(y,奇偶校验)= gpu_ldpcdecoder (x)返回解码数据,y,最后的奇偶校验检查奇偶校验。使用这个语法,设置FinalParityChecksOutputPort财产真正的

(y,numiter,奇偶校验)= gpu_ldpcdecoder (x)返回解码数据,执行的迭代次数,和最终的奇偶校验检查。使用这个语法,设置NumIterationsOutputPortFinalParityChecksOutputPort属性真正的

输入参数

全部展开

对数似比率,指定为一个N1包含不痒的决定来自解调输出的列向量。N是之前的LDPC码字调制的比特数。收到的每个元素是对数似然比。元素值更容易0如果是正的对数似然比。第一个K元素对应于输入消息的信息记者。

减少数据传输延迟、格式的输入信号gpuArray(并行计算工具箱)对象。有关更多信息,请参见阵列处理与系统基于gpu的对象

数据类型:

输出参数

全部展开

解码数据,作为一个列向量返回。的DecisionMethod属性指定对象是否输出艰难的决定或软决策(对数似比率)。

  • 如果OutputValue属性设置为“信息部分”,输出只包含向量。收到的信息记者对数似然比

  • 如果OutputValue属性设置为“整个码字”向量,输出包括整个对数似然比。

数据类型:|逻辑

数量的解码迭代执行,作为一个正整数返回。

依赖关系

要启用这个输出,设置NumIterationsOutputPort财产真正的

最后的奇偶校验检查输入LDPC码解码后,作为一个(返回N- - - - - -K)1列向量。N是之前的LDPC码字调制的比特数。K未编码的消息的长度。

依赖关系

要启用这个输出,设置FinalParityChecksOutputPort财产真正的

对象的功能

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

使用一个comm.gpu.LDPCDecoder系统对象™解码信号,传输一个LDPC-encoded, QPSK-modulated通过AWGN信道比特流。添加摘要之后,解调和解码接收到的信号。计算误差统计的未编码的接待和LDPC-coded信号。有关更多信息,请参见使用gpu加速模拟

定义模拟变量。创建一个LDPC编码器配置对象和LDPC译码器的系统对象,QPSK调制器和QPSK解调器花。

M = 4;%调制顺序(正交相移编码)信噪比= (0.25,0.5,0.75,1.0,1.25);numFrames = 10;gpuldpcDecoder = comm.gpu.LDPCDecoder;encoderCfg = ldpcEncoderConfig (gpuldpcDecoder.ParityCheckMatrix);pskMod = comm.PSKModulator (M,“BitInput”,真正的);pskDemod = comm.PSKDemodulator (M,“BitOutput”,真的,“DecisionMethod”,”“近似对数似然比);pskuDemod = comm.PSKDemodulator (M,“BitOutput”,真的,“DecisionMethod”,“艰难的决定”);errRate = 0(1、长度(信噪比));uncErrRate = 0(1、长度(信噪比));

对于每一个信噪比设置和所有的帧,计算误差统计数据未编码的和LDPC-coded信号。

2 = 1:长度(信噪比)ttlErr = 0;ttlErrUnc = 0;pskDemod。Variance = 1/10^(snr(ii)/10);%设置方差counter = 1: numFrames数据=逻辑(randi ([0, 1], 32400, 1));%传输和接收方未编码的信号数据mod_uncSig = pskMod(数据);rx_uncSig = awgn (mod_uncSig,信噪比(ii),“测量”);demod_uncSig = pskuDemod (rx_uncSig);numErrUnc = biterr(数据、demod_uncSig);ttlErrUnc = ttlErrUnc + numErrUnc;%数据传输和接收LDPC编码的信号encData = ldpcEncode(数据、encoderCfg);modSig = pskMod (encData);rxSig = awgn (modSig,信噪比(ii),“测量”);demodSig = pskDemod (rxSig);rxBits = gpuldpcDecoder (demodSig);numErr = biterr(数据、rxBits);ttlErr = ttlErr + numErr;结束ttlBits = numFrames *长度(rxBits);uncErrRate (ii) = ttlErrUnc / ttlBits;errRate (ii) = ttlErr / ttlBits;结束

情节未编码的错误统计信息和LDPC-coded数据。

uncErrRate情节(信噪比,信噪比,errRate)传说(的未编码的,“LDPC编码”)包含(“信噪比(dB)”)ylabel (“方方面面”)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表未编码的,LDPC编码。

限制

  • comm.gpu.LDPCDecoder不能包含在系统对象MATLAB系统(金宝app模型)块。

更多关于

全部展开

算法

全部展开

这个对象执行LDPC译码使用信念传播算法,也称为消息传递算法。

引用

[1]Gallager,罗伯特·G。低密度奇偶校验码。剑桥,麻州:麻省理工学院出版社,1963年。

扩展功能

版本历史

介绍了R2012a