❶ ABS-S的ABS—S系统及应用
ABS—S可提供以下业务:
(1)广播业务:可支持电视直播业务.包括高清晰电视直播。
(2)交互式业务:通过卫星回传信道.很容易满足用户的特殊需求,例如:天气预报.节目、购物.游戏等信息。
(3)数字卫星新闻采集(DSNG)业务。
(4)专业级业务:可提供双向Internet服务。 前向纠错编码(FEC)与调制技术,是提高卫星性能的关键因素,尤其是在较高噪声和干扰环境下。LDPC是由R.G Gallager于1962年在其博士论文中首先提出的,由于当时超大规模集成电路(VLSL )尚未成熟,难以逾越的复杂程度使其被束之高阁,1995年.受Turbo码成功的启示,MacKay和Neal研究的迭代译码算法使LDPC的价值被重新挖掘,成为当前编码领域的热点之一。LDPC是一种具有稀疏校验矩阵(校验矩阵中1的个数比较少)的线性分组码,具有逼近香浓消铅极限的优良特性.译码复杂度只与码长成线性关系,编码复杂程度适中,在码长较长的情况下,仍然可以保证有效译码,在信道环境较差的移动通信、卫星通信方面得到广泛的应用。LDPC是到目前为止最好的FEC之一。ABS—S系统采用了一类高度结构化的纯桥裂LDPC码。该结构的LDPC码,其编解码复杂度低,并可以在相同码长条件下,方便地实现不同码率的LDPC码设计。
DVB—S2系统中,为了降低误码率,减小错误平底(error floor),采用了内码为LDPC码,外码为BCH码的级联码结构,在每个LDPC码字内,BCFT码可以纠正8到12个比特的错误。 (1)ABS—S的LDPC码的码长度为15360,且不同码率时,码长固定,而DVB—S2的LDPC码分长码与短码,其长度分别是64800和16200。众所周知,在纠错码领域,LDPC码字长度较长时,具有更好的逼近香农极限特性,可以减小突发差错对译码的影响。然而,ABS—S系统中的LDPC码,具有与DVB—S2中长码基本相同的性能。同时,短码在做闭硬件设计时具有编解码简单及硬件成本低廉的特点,更易于被市场接受;
(2)ABS—S系统能够实现低于10-7的误帧率FER要求。与其相比,DVB—S2中的LDPC码不能提供低于10-7的误帧率,必须通过级联BCH外码才能降低错误平底,达到10-7的误帧率要求。同时,通常短码字的LDPC码具有较高的错误基底.然而,ABS-S中的LDPC码能够提供底于10-7“的REF,并具有较低的错误平底。
❷ LDPC码的发展前景
LDPC码具有很好的性能,译码也十分方便。特别是在GF(q)域上的非规则码,在非规则双向图中,当各变量节点与校验节点的度数选择合适时,其性能非常接近香农限。今后,LDPC码的研究方向主要有:
(1)码的设计;
(2)选择合适的硬件(以降低编译码的运算复杂性);
(3)LDPC码应用于下一闷胡代通信系统。目前,LDPC码已成为第四数哗代移动通信编码技术中薯罩行的首选。
❸ LDPC码的译码算法
LDPC码编码是在通信系统的发送端进行的,在接收端进行相应的译码郑埋乎,这样才能实现编码的纠错。LDPC 码由于其奇偶校验矩阵的稀疏性,使其存在高效的译码算法,液租其复杂度与码长成线性关系,克服了分组码在码长很大时喊悉,所面临的巨大译码算法复杂度问题,使长码分组的应用成为可能。而且由于校验矩阵稀疏,使得在长码时,相距很远的信息比特参与统一校验,这使得连续的突发差错对译码的影响不大,编码本身就具有抗突发错误的特性。
LDPC码的译码算法种类很多,其中大部分可以被归结到信息传递〔Mesaseg Prpagation,MP)算法集中。这一类译码算法由于具有良好的性能和严格的数学结构,使得译码性能的定量分析成为可能,因此特别受到关注。MP算法集中的置信传播(BP)算法是Gallager提出的一种软输入迭代译码算法,具有最好的性能。如果我们首先理解并掌握了一些很简单的硬判决算法后,对BP算法的理解会更加容易。同时,通过一些常用的数学手段,我们可以对BP译码算法作一些简化,从而在一定的性能损失内获得对运算量和存储量需求的降低。
❹ LDPC码的优势和劣势
和另一种近Shannon限的码-Turbo码相比较,LDPC码主要有以下几个优势:
1. LDPC码的译码算法,是一种基于稀疏矩阵的并行迭代译码算法,运算量要低于Turbo码译码算法,并且由于结构并行的特点,在硬件实现上比较容易。因此在大容量通信应用中,LDPC码更具有优势。
2. LDPC码的码率可以任意构造,有更大的灵活性。而Turbo码只能通过打孔来达到高码率,这样打孔图案的选择就需要十分慎重的考虑,否则会造成性能上较大的损失。
Trubo码编码器结构3. LDPC码具有更低的错误平层,可以应用于有线通信、深空通信以及磁盘存储工业等对误码率要求更加苛刻的场合。而Turbo码的错误平层在10量级上,应用于类似场合中,一般需要和外码级联才能达到要求。
4. LDPC码是上个世纪六十年代发明的,现在,在理论和概念上不再有什么秘密,因此在知识产权和专利上不再有麻烦。这一点给进入通信领域较晚的国家和公司,提供了一个很好的发展机会。
而LDPC码的劣势在于:
1. 硬件资源需求比较大。全并行的译码结构对计算单元和存储单元的需求都很大。
2. 编码比较复杂,更好的编码算法还有待研究。同时,由于需要在码长比较长的情况才能充分体现性能上的优势,所以编码时延也比较大。
3. 相对而言出现比较晚,工业界支持还不够。
❺ LDPC码的码的构造
对LDPC码来说,不考虑码长和次数分布的情况下,校验矩阵的结构就成了影响其性能的重要因素,反映在二分图上对编码性能有重要影响的就是图中环的长度分布,需要采用一定的方法对校验矩阵进行构造,获得好的编码。
目前LDPC码的构造方法主要可以分为两大类:随机或伪随机构造方法和代数的构造方法。
随机或伪随机的构造方法主要考虑的是码的性能,在码长比较长(接近或超过10000) 时,性能非常接近香农限。代数的构造方法通常考虑的是降低编译码的复杂度,在码长比较短的时候更有优势。
1. Gallager LDPC码
用和乘积算法(SPA:Sum-pordcuct algorithm)进行译码取得最大后验概率的译码性能的条件是二分图中没有小的环,即girth为4的环,无4环的条件反映到二分图中就是任意两行中1的交迭数目不超过1个。无4环的二元高比特率LDPc码可以通过随机生成行构成,一般来说,这种方法不能生成固定行重量的矩阵。
Gallaegr提出了一种替代的方法:采用随机置换的方法来构造规则LDPC码。对于码长为N的(j,k)正则码,将M*N矩阵H通过j个大小为(M/j)*N的子矩阵构成,每个子矩阵本身也是LDPC矩阵,列重量为1,行重量为k,第一个子矩阵为阶梯型,即第1行的k个1的列号是从(i-1)*k l到1*k,而其他子矩阵都是第一个子矩阵的随机列置换,这样每个子矩阵每行都有k个1,每列都有1个1。这种构造方法要求M必须是j的整数倍。
(20,3,4)LDPC码的校验矩阵
Gallager曾给出了一个码长为20的规则(3,4)LDPC码的校验矩阵,如图所示。图中的第一个子矩阵就是一个阶梯型矩阵,而第2个和第3个矩阵都是第一个子矩阵的列置换。
Gallager同时证明了随机置换得到的GaHager LDPC码的最小汉明距离能够随着码长的增加而线性增加,而且在对称无记忆信道中,采用最大似然译码时,其误码率随着码长的增加而呈指数形式下降,这说明随机置换得到的Gallager LDPC码是一类相当好的码。
但是,Gallager在构造LDPC码时采用的是随机置换,这就给实现带来了麻烦,就需要大量的存储单元来存储校验矩阵中这些1的位置。
2. 确定性结构的LDPC码
确定性结构的DLPC码也称为准循环LDPC码。相对于随机结构的矩阵是很容易获得的确定性结构的矩阵,这种矩阵可以通过更少的参数来定义LDPC码。确定性结构的LDPC码的构造方法基于“阵列码”(Array Code)。阵列码是用来检测和纠正突发差错的二维码。
通过三个参数定义LDPC码。一个基本参数p和两个整数j和k。令H为jp*kp的矩阵,定义为:
LDPC码
其中这里的I是p*p的单位阵,Bi.j是Ip*p的左循环移位Bm.n或右循环移位Bm.n的置换矩阵。显然,H矩阵中1的分布就只与循环位数Bm.n有关。对LDPC码的分析就可以转换为对Bm.n的分析。
将各小矩阵的循环移动位数写成一个矩阵为
LDPC码
上面的校验矩阵提供了一个可以用于SAP译码的稀疏矩阵。而且,这个校验矩阵结构上没有四线循环。
❻ LDPC码的简介
任何一个(n,k)分组码,如果其信息元与监督元之间的关系是线性的,即能用一个线性方程来描述的,就称为线性分组码。
低密度奇偶校验码图(LDPC码)本质上是一种线形分组码,它通过一个生成矩阵G将信息序列映射成发送序列,也就是码字序列。对于生成矩阵G,完全等效地存在一个奇偶校验矩阵H,所有的码字序列C构成了H的零空间 (null space),即。
LDPC仿真系统图DLPC 码的奇偶校验矩阵H是一个稀疏矩阵,相对于行与列的长度,校验矩阵每行、列中非零元素的数目(我们习惯称作行重、列重)非常小,这也是LDPC码之所以称为低密度码的原因。由于校验矩阵H的稀疏性以及构造时所使用的不同规则,使得不同LDPC码的编码二分图(Taner图)具有不同的闭合环路分布。而二分图中闭合环路是影响LDPC码性能的重要因素,它使得LDPC码在类似可信度传播(Belief ProPagation)算法的一类迭代译码算法下,表现出完全不同的译码性能。
当H的行重和列重保持不变或尽可能的保持均匀时,我们称这样的LDPC码为正则LDPC码,反之如果列、行重变化差异较大时,称为非正则的LDPc码。研究结果表明正确设计的非正则LDPC码的性能要优于正则LDPC。根据校验矩阵H中的元素是属于GF(2)还是GF(q)(q=2p),我们还可以将LDPC码分为二元域或多元域的LDPC码。研究表明多元域LDPC码的性能要比二元域的好。
❼ 用准循环构造法构造LDPC码的校验矩阵的算法流程
QC LDPC码,可以用代数法和随机方法构造。如果是代数方法,这里很难说清楚,需要找Linshu老师那边的文章看看,方法一般都还算简单,但是需要有限域的知识。
随机构造的话,以802.16e为代表的QC LDPC码,大致过程如下
1:先确定基矩阵的大小,基矩阵大的话,存储需要的空间也会大,但是性能会好些。
2:确定度分布,这个和应用场合有关,一般而言,最大变量度分布大的话,瀑布区性能会好些,但是也还是对存储要求更高。而且如果基矩阵不够大的话,度分布大的话,密度会高,这样会使得环分布优化困难 。
3:确定好基矩阵后,就是利用circulant去替换每个“1”元素了,至于如何选择circulant,就是个试探的过程。原则多种多样。
❽ 我做的LDPC码编译码仿真,我现在构造了 H矩阵,但不会写用H生成G矩阵的那部分代码,求教各位!
Matlab2008 以后的版本自带的就有,只需要自己设定生成矩阵即可。自己看一下帮助,
Example
H = dvbs2ldpc(3/5);
spy(H); % Visualize the location of nonzero elements in H.
henc = fec.ldpcenc(H);
hdec = fec.ldpcdec(H);
❾ LDPC码的matlab编解码仿真程序
#include <iostream>
#include <limits>
#define LNODE 20
using namespace std;
#include <malloc.h>
#include <conio.h>
typedef char **HuffmanCode;
HuffmanCode HuffmanCoding(int n)
{
int i , f , start , j , count = 1;
char *cd;
HuffmanCode HC;
HC = (HuffmanCode)malloc((n+1)*sizeof(char *));
cd = (char *)malloc(n*sizeof(char));
cd[n-1] = '\0';
for(i = 1 ; i <= n ; i++)
{
start = n - 1;
for(j = 1 ; j <= count ; j++){
cd[--start] = '9';
}
HC[i] = (char *)malloc((n-start)*sizeof(char));
strcpy(HC[i],&cd[start]);
count++;
}
free(cd);
return(HC);
}//HuffmanCoding
int main()
{
int k;
int A[LNODE];
HuffmanCode q;
q = HuffmanCoding(LNODE);
for(k = 1 ; k <= LNODE ; k++)
cout << *q[k] << " ";
cout << "OK";
getch();
return 0;
}
❿ 浅谈LDPC码
姓 名:张倩楠 学 号:20181214266 学 院:广研院
【嵌牛导读】:1962 年,R.G.Gallager 在其博士论文中提出了规则 LDPC 码的概念[1]。然而由于当时的理论水平以及硬件技术条件的限制,LDPC 码在几十年的时间内并没有引起人们的关注和重视。直到 90 年代 Turbo 码的热潮中,MacKay 和 Neal 等人重新研究了LDPC 码[2],并且提出了可行的译码算法,进一步发现了 LDPC 码所具有的良好的性能,使得 LDPC 码重新被人们重视,成为研究的热点。众多研究结果表明 LDPC 码性能良好,更加适合未来通信系统对数据传输的有效性和可靠性的要求,所以越来越多的通信标准都使用 LDPC 码作为其信道编码方案。DVB 组织发布的 DVB-S2、DVB-T2、DVB-C2、DVB-NGH 及 DVB-S2X 等标准中均采用了 LDPC 码,其他标准如 CCSDS 标准、802.11n(WiFi)、802.16e(WiMAX)等也都使用了 LDPC 码。
【嵌牛鼻子】:QC-LDPC码,IRA-LDPC码
【嵌牛手穗提问】:LDPC码构造方法?
【嵌牛内容】
什么是LDPC码:
LDPC 码可以通过校验矩阵 H 来唯一确定,校验矩阵 H 是大小为m*n 的稀疏矩阵,其中m 为校验位长度,n 为 LDPC 码码长,信息位长度为 k =n-m 。LDPC 码可以分为规则 LDPC 码和非规则 LDPC 码两种[3]。规则 LDPC 码的校验矩阵中不仅每一行中非零元素的个数是相同的,而且每谨薯培一列中非零元素的个数也是相同的,而非规则LDPC码则不受到该条件的限制。下图给出的是一种规则LDPC码的校验矩阵。
除了使用校验矩阵的方式来表示 LDPC 码之外,Tanner 在 1981 年提出的用 Tanner图来描述码字的方法可以形象的表示 LDPC 码的特性[4]。下图中表示的 Tanner 图与上图中的校验矩阵相对应。
Tanner 图显示了 LDPC 码中校验节点和变量节点之间的连接关系。图中的校验节点对应校验矩阵 H 的行,变量节点对应校验矩阵 H 的列。与节点相连的边的数目被称为节点的度,从一个节点开始出发后又回到该节点时所经过的边的数目称之为循环长度,最短的循环长度被称为图的围长。
QC-LDPC码:
QC-LDPC码的校验矩阵是由全零阵,单位矩阵和循环右移的单位阵的子矩阵构成的。
QC-LDPC码校验矩阵的子矩阵具有如下特点:
(1) 每个子矩阵是一个方阵;
(2) 循环子矩阵的任一行(列)都是上一行(列)向右移动一位得到的,特别的,矩阵的第一行(列)由最后一行(列)循环右移一位得到;
(3) 循环矩阵完全可以由其第一行或者第一列决定。
根据这样的形式可以写出他的基矩阵,用来表示所构造的校验矩阵。(@网络)
IRA-LDPC码:
这里,我们介绍一下DVB标准的IRA-LDPC码。IRA-LDPC 码的校验矩阵可以表示成 H = [H1 H2]的形式。其中,子矩阵H1是一个稀疏矩阵,矩阵大小为 m*k ,其中祥唯 m 为校验比特的数量,k 为信息比特的数量,子矩阵 H2是一个满秩矩阵,矩阵大小为 m*m ,其格式是固定的,它的格式如下图所示。对于 IRA-LDPC 码来说,因为其子矩阵 H2的结构是固定的,所以校验矩阵的构造重点在于子矩阵 H1的构造。
H1可以表示成如下形式:
其中子矩阵 Hsub1,Hsub2,…,Hsub360的大小均为 q*k ,将子矩阵 Hsub1按列分为 k/360个 q*360的子矩阵,这些大小为 q*360子矩阵向右循环移位一位,即得到 Hsub2,依次向右循环移位,得到 Hsub3,…,Hsub360。利用校验矩阵子矩阵 H1的这一特点,可以用于改进 LDPC 译码器结构。
各标准中使用的LDPC码类型不同,可根据需求选择更合适的LDPC码来译码。
最后,欢迎各位朋友交流探讨。
参考文献:
[1] Gallager R G. Low-Density Parity-Check Codes[J]. Ire Transactions on Information Theory, 1963, 8(1):21-&.
[2] Mackay D J C, Neal R M. Near Shannon limit performance of low density parity check codes[J]. Electronics Letters, 1997, 33(6):457-458.
[3] Jin H, Kh A D, Mceliece R. Irregular Repeat Accumulate Codes[J]. IEEE Int.symp.on Information Theory Yokohoma, 2000, 50(8):1711 - 1727.
[4] Tanner R. A recursive approach to low complexity codes[J]. IEEE Transactions on InformationTheory, 1981, 27(5):533-547.