- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
码编译码算法实现
1.1 LT码编码程序实现
1.1.1概述
LT编码程序的主要任务是通过Ideal Soliton分布或者给定参数c和§的 Robust Soliton分布公式得到度分布。然后每次编码过程都以度分布概率p(d)生 成邻接元个数d,随机选择d个邻接元的位置。利用这d个邻接元与对应位置的 码原符号进行异或和运算,生成单次编码符号。重复上述过程M次。其中每次编 码被选择的邻接元位置上置1,其它位置上置0,加上生成的编码符号得到 lx(K+l)阶矩阵。M次编码产生的矩阵组合在一起,即可得到接收端需要的编 码符号集。
模拟度分布概率产生邻接元个数采用区间法。主要过程为将度分布概率累加 形成区间,然后利用C语言的标准随机数发生器产生随机数,判断随机数位于哪 一区间,对应可得到一个数,这个数即为单次编码的邻接元个数。区间的绝对差 值大小对模拟概率分布误差有很大影响,区间设置越大,模拟概率更准确。
确定邻接元个数后,随机产生邻接元位置。其中需要保证每次产生的邻接元 位置不同。实现方法主要是利用数组记录每次位置,之后每次编码首先查找记录 位置数组中是否已存在该位置。
1.1.2步骤
主要步骤:
利用Ideal Soliton分布公式产生理想度分布数组,若需使用到Robust Soliton分布,则依据给定的参数c、§、公式S三cln(K/6)尿以及理想度分布 数组产生Robust Soliton分布数组。
由对应分布数组累加形成[0, 1]的累加分段区间,将各区间乘以一个较大 的数,增加模拟的准确性。
利用C语言的标准随机数发生器产生随机数,依据随机数所属区间,产 生邻接元个数。
步骤1、2、3主要用于产生邻接元个数,合并步骤为【。
利用步骤I产生邻接元个数。
利用C语言的标准随机数发生器产生[1, (K-1)]随机数,即邻接元位置, 若为单次编码的第一个邻接元,则不判断是否重复,否则需判断是否产生重复位 置。记录邻接元位置至数组。
重复步骤5 d次,将对应邻接元位置置1,其他位置置0。再和码元符号 作异或和运算,产生单次编码符号。邻接元位置和编码符号形成单次编码 lx(K+l)阶矩阵。
重复步骤4、5、6 H次,完成整个编码过程。
将每次编码过程的1 x(K+ 1)阶矩阵合并成M x (K+1)阶矩阵,组成一次 编码符号集,传输给接收端。
补充:模拟不断接收编码符号集的过程,需要再不断产±Ax(K+l)阶矩阵 组成的编码符号集,其中A远小于M。U前程序不做补充部分程序实现。
仁2译码程序实现
1.2.1迭代置信传播译码实现
2.1.1 概述
迭代置信传播译码主要任务是首先对接收到的编码符号集作每单次编码的 邻接元个数统计,之后再通过查询统计数组值为1的下标即寻找只有一个邻接元 的单次编码。编码符号集对应编码符号即为恢复的码源符号。再利用恢复还原的 码源符号,去消除该码源符号参与编码的对应行,作异或和运算。对应消除码源 符号行的邻接元个数统计相应减1。恢复还原一个码源符号,已译码个数则加lo 再次寻找查询统计数组值为1的下标,重复还原码源符号过程,直至全部译码完 成或者寻找不到查询统计数组值为1的下标。
迭代置信传播译码主要通过迭代完成,主要适合于度分布中度值为小值时概 率较大的情况。相较于高斯消元译码,更适合中长码译码。
2.1. 2 步骤
统计接收到的编码符号集对应行的邻接元个数,用数组记录。
从统计邻接元数组中查询值为1的下标,因只有1个邻接元,编码符号即 为对应的恢复码源符号,并记录该行值为1的位置h。
从编码符号集对应h列,查找值为1的行,代入恢复码源符号即该行作异 或和运算,对应行统计邻接元数组中的值减1。完成一次码源恢复过程。
1.重复步骤2、3,直至全部译码完成或统计邻接元数组找不到值为1的值。
1.2.2高斯消元译码实现
1. 2. 2. 1 概述
高斯消元的主要任务是对接收到的编码符号集增广进行消元处理,通过逐步 消元,得到标准矩阵,再从标准矩阵中提取恢复码源信息。消元处理过程主要是 从M X (K + 1)阶矩阵的第一行开始,判断矩阵Matrix [1] [1]是否为1,是则不 作处理,否则从第一列寻找为1的行,交换两行,之后再进行第一列的消元。重 复该过程K次,直至前K列全部消元。之后判断矩阵对角线是否全部为零,若全 部为零,译码成功,否则译码失败。
1. 2. 2. 2 步骤
设接收到的矩阵为Matrix [M] [K+1]
i=l,判断Matrix[i][i]是否为1。其中i从1到K。
若是,则不做操作;否则,查找Matrix[j][i]为1的行,交换两行。其 中j从i到M。
对矩阵第i列进行消元。
消元过程如下
1.查找Matrix[j] [i]为1的行,对Matrix[j]做如下处理。
Matr
原创力文档


文档评论(0)