发明名称 一种基于有限域的多进制喷泉编码和译码方法
摘要 本发明涉及一种基于有限域的多进制喷泉编码和译码方法。首先对喷泉码进行编码,得到喷泉编码序列:给定编码度分布函数μ(d),根据分布函数μ(d)随机生成一个非负整数d<sub>i</sub>,将d<sub>i</sub>作为编码符号v<sub>i</sub>的编码度;从K个信源符号中随机选取d<sub>i</sub>个不同的符号;从有限域GF(q)中随机均匀产生d<sub>i</sub>个非零值作为编码符号v<sub>i</sub>的编码系数;根据编码系数对d<sub>i</sub>个不同的符号求加权和,得到编码符号v<sub>i</sub>的值,进而得到喷泉编码序列。从该喷泉编码序列中选取出长度为N(N≥K)的编码序列,记为w=[w<sub>1</sub>,w<sub>2</sub>,…,w<sub>N</sub>]<sup>T</sup>,通过主元选择和主元原位高斯消元,对其进行译码,得到最终的译码输出序列。本发明方法极大地提高了喷泉编码的编码效率,降低了喷泉码的译码复杂度,适合于各种信源长度的喷泉码应用。
申请公布号 CN101510783A 申请公布日期 2009.08.19
申请号 CN200910119741.0 申请日期 2009.03.26
申请人 北京理工大学 发明人 李祥明;安建平
分类号 H03M13/37(2006.01)I 主分类号 H03M13/37(2006.01)I
代理机构 北京理工大学专利中心 代理人 张利萍
主权项 1、一种基于有限域的多进制喷泉编码和译码方法,其特征在于,包括以下步骤:定义GF(q)表示有限域,即伽罗华域,q是任意素数或者素数的正整数次幂;一个定义于有限域GF(q)的矩阵或矢量,称其非零元素的个数为该矩阵或矢量的重量;令v<sub>∞</sub>=[v<sub>1</sub>,v<sub>2</sub>,…]表示长度半无限的喷泉编码序列,一个编码符号v<sub>i</sub>(i=1,2,…)的编码度表示参加该符号编码的信源符号个数;设信源的长度为K;令m=[m<sub>1</sub>,m<sub>2</sub>,…,m<sub>K</sub>]<sup>T</sup>表示信源矢量,其第j个符号取自于GF(q),j=1,2,…,K;步骤一、对喷泉码进行编码,得到喷泉编码序列v<sub>∞</sub>=[v<sub>1</sub>,v<sub>2</sub>,…];其中,编码符号v<sub>i</sub>(i=1,2,…)的实现步骤如下:首先,给定编码度分布函数μ(d),根据分布函数μ(d)随机生成一个非负整数d<sub>i</sub>,将d<sub>i</sub>作为编码符号v<sub>i</sub>的编码度;然后,从K个信源符号中随机选取d<sub>i</sub>个不同的符号,记<img file="A200910119741C00021.GIF" wi="422" he="61" />为所选择符号的序号集合;之后,从有限域GF(q)中随机产生d<sub>i</sub>个非零值作为编码符号v<sub>i</sub>的编码系数,记这些编码系数构成的集合为<maths num="0001"><![CDATA[<math><mrow><mi>C</mi><mo>=</mo><mrow><mo>{</mo><msub><mi>c</mi><mn>1</mn></msub><mo>,</mo><msub><mi>c</mi><mn>2</mn></msub><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msub><mi>c</mi><msub><mi>d</mi><mi>i</mi></msub></msub><mo>}</mo></mrow><mo>;</mo></mrow></math>]]></maths>最后,根据编码系数对d<sub>i</sub>个不同的符号求加权和,得到编码符号v<sub>i</sub>的值,即,使用公式<maths num="0002"><![CDATA[<math><mrow><msub><mi>v</mi><mi>i</mi></msub><mo>=</mo><msub><mi>c</mi><mn>1</mn></msub><mo>&CenterDot;</mo><msub><mi>m</mi><msub><mi>s</mi><mn>1</mn></msub></msub><mo>+</mo><msub><mi>c</mi><mn>2</mn></msub><mo>&CenterDot;</mo><msub><mi>m</mi><msub><mi>s</mi><mn>2</mn></msub></msub><mo>+</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>+</mo><msub><mi>c</mi><msub><mi>d</mi><mi>i</mi></msub></msub><mo>&CenterDot;</mo><msub><mi>m</mi><msub><mi>s</mi><msub><mi>d</mi><mi>i</mi></msub></msub></msub></mrow></math>]]></maths>计算编码符号v<sub>i</sub>的值;步骤二、从v<sub>∞</sub>=[v<sub>1</sub>,v<sub>2</sub>,…]中选取出长度为N(N≥K)的编码序列,记为w=[w<sub>1</sub>,w<sub>2</sub>,…,w<sub>N</sub>]<sup>T</sup>,对该喷泉编码序列进行译码,得到原信源序列,实现过程如下:设接收机向译码器输入长度为N(N≥K)的编码序列w=[w<sub>1</sub>,w<sub>2</sub>,…,w<sub>N</sub>]<sup>T</sup>,将编码序列w=[w<sub>1</sub>,w<sub>2</sub>,…,w<sub>N</sub>]<sup>T</sup>表示为信源序列的线性组合,即,线性方程组w=A·m,其中,A是一个N×K阶矩阵,其元素取自于GF(q),线性方程组w=A·m的加法和乘法元素是定义于有限域GF(q)的运算;利用矩阵A的稀疏特性,对喷泉编码序列w=[w<sub>1</sub>,w<sub>2</sub>,…,w<sub>N</sub>]<sup>T</sup>进行译码,过程如下:(1)对矩阵A进行主元选择对于矩阵为A的有限长喷泉编码序列w=[w<sub>1</sub>,w<sub>2</sub>,…,w<sub>N</sub>]<sup>T</sup>,高斯消元法的前向消元过程共有K步,在前向过程的第k(k=1,2,…,K)步,矩阵的第k行除以其(k,k)位置的元素,然后分别将该行各适当倍数与下面的各行相加,使下面各行第k列的非零元素全都变成零,当前向过程的第k步完成时,矩阵被化为上三角形式,<maths num="0003"><![CDATA[<math><mrow><msup><mi>A</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msup><mo>=</mo><mrow><mo>[</mo><msubsup><mi>a</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msubsup><mo>]</mo></mrow></mrow></math>]]></maths>为第k步开始时的矩阵,A<sup>(1)</sup>=A为原始的矩阵,矩阵A<sup>(k)</sup>的前k-1列即为上三角矩阵,<img file="A200910119741C00032.GIF" wi="77" he="55" />是待消元的剩余矩阵;在前向消去的每一步,在剩余矩阵<img file="A200910119741C00033.GIF" wi="76" he="55" />中,选取最大填入和操作数最小的元素作为主元;剩余矩阵<img file="A200910119741C00034.GIF" wi="79" he="55" />共有N-k+1行和K-k+1列,设<img file="A200910119741C00035.GIF" wi="166" he="55" />是<img file="A200910119741C00036.GIF" wi="78" he="56" />的非零元,i∈{1,…,N-k+1},j∈{1,…,K-k+1},则<img file="A200910119741C00037.GIF" wi="164" he="55" />为一个候选主元;令r<sub>i</sub>和c<sub>j</sub>分别表示剩余矩阵<img file="A200910119741C00038.GIF" wi="76" he="54" />第i行和第j列的重量,数值(r<sub>i</sub>-1)·(c<sub>j</sub>-1)为选择度量;使用局部填充元和局部操作数最小化的主元选择策略,在前向消去的第k步,选取剩余矩阵<img file="A200910119741C00039.GIF" wi="77" he="55" />中最小选择度量的元作为第k步时的主元;(2)对矩阵A进行主元原位高斯消元定义B<sup>(k)</sup>=[A<sup>(k)</sup>|w<sup>(k)</sup>]为高斯消去前向过程第k步开始时的增广矩阵,则其线性方程组的系数矩阵化为A<sup>(k)</sup>,编码矢量化为w<sup>(k)</sup>,其中A<sup>(1)</sup>=A表示初始编码矩阵,w<sup>(1)</sup>=w表示输入到译码器的编码矢量;a)令计数器的步数k=1;b)设主元为<img file="A200910119741C000310.GIF" wi="111" he="61" />记录第k步的主元行号和列号,即标记S<sub>k</sub>(i<sub>k</sub>,j<sub>k</sub>),以主元<img file="A200910119741C000311.GIF" wi="79" he="62" />除以第i<sub>k</sub>个方程中剩下的未知数的非零系数和右端项,而后,从所有未选过主元的方程中消去第j<sub>k</sub>个未知数;c)若k&lt;K,设置k=k+1,重复b),直至k=K;最后,采用后向迭代,求解线性方程组w=A·m中的未知量m的元素<img file="A200910119741C000312.GIF" wi="131" he="69" />即<maths num="0004"><![CDATA[<math><mrow><msub><mi>m</mi><msub><mi>j</mi><mi>k</mi></msub></msub><mo>=</mo><msubsup><mi>v</mi><msub><mi>i</mi><mi>k</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msubsup><mo>-</mo><munder><mi>&Sigma;</mi><mrow><mi>s</mi><mo>&Element;</mo><mrow><mo>{</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><mi>K</mi><mo>}</mo></mrow><mo>,</mo><msubsup><mi>a</mi><mrow><msub><mi>i</mi><mi>k</mi></msub><mo>,</mo><msub><mi>j</mi><mi>s</mi></msub></mrow><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msubsup><mo>&NotEqual;</mo><mn>0</mn></mrow></munder><msubsup><mi>a</mi><mrow><msub><mi>i</mi><mi>k</mi></msub><mo>,</mo><msub><mi>j</mi><mi>s</mi></msub></mrow><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msubsup><msub><mi>m</mi><msub><mi>j</mi><mi>s</mi></msub></msub></mrow></math>]]></maths>其中,k=1,2,…,K,由此得到译码输出序列m。
地址 100081北京市海淀区中关村南大街5号
您可能感兴趣的专利