发明名称 一种差错控制方法和系统
摘要 本发明公开了一种差错控制方法和系统,适用于通信、存储等领域,在这些领域中使本发明的方法或系统,可有效地将丢失的数据恢复,提高数据的完整性。本发明的方法包括生成编码系数和冗余包、生成解码系数和恢复信源等步骤,发信端以n个信源生成m个冗余包,将信源及冗余包都发送往收信端,收信端收到的信源个数与冗余包个数之和只要大于n,就能恢复出所有n个信源。本发明利用范德蒙矩阵及扩展伽罗瓦2<sup>q</sup>域内的运算,巧妙地实现了信息量最大化及运算量最小化。在多播及广播通信中使用本发明的差错控制方法或系统,可取得优良的效果。
申请公布号 CN101404563A 申请公布日期 2009.04.08
申请号 CN200810234515.2 申请日期 2008.11.20
申请人 吕晓雯;刘怡梅;杜玲 发明人 吕晓雯;刘怡梅;杜玲
分类号 H04L1/00(2006.01)I;H04L1/22(2006.01)I;H04L12/18(2006.01)I 主分类号 H04L1/00(2006.01)I
代理机构 南京苏高专利商标事务所 代理人 柏尚春
主权项 1、一种差错控制方法,其特征是:该方法包括生成冗余包的方法和信源恢复的方法,其中生成冗余包的方法包括以下步骤:(1)构造编码系数矩阵A:假设有n个信源X<sub>1</sub>、X<sub>2</sub>、X<sub>3</sub>......X<sub>n</sub>,m为需要生成的冗余包的数量,选一个数域P,保证每个信源X<sub>j</sub>都在数域P内,在数域P中任取(n+m)个不同的值K<sub>1</sub>、K<sub>2</sub>、K<sub>3</sub>......K<sub>n</sub>、L<sub>1</sub>、L<sub>2</sub>......L<sub>m</sub>,取矩阵K和L如下:<maths num="0001"><![CDATA[<math><mrow><mi>K</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>K</mi><mn>1</mn></msub></mtd><mtd><msup><msub><mi>K</mi><mn>1</mn></msub><mn>2</mn></msup></mtd><mtd><msup><msub><mi>K</mi><mn>1</mn></msub><mn>3</mn></msup></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msup><msub><mi>K</mi><mn>1</mn></msub><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msup></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>K</mi><mn>2</mn></msub></mtd><mtd><msup><msub><mi>K</mi><mn>2</mn></msub><mn>2</mn></msup></mtd><mtd><msup><msub><mi>K</mi><mn>2</mn></msub><mn>3</mn></msup></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msup><msub><mi>K</mi><mn>2</mn></msub><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msup></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>K</mi><mn>3</mn></msub></mtd><mtd><msup><msub><mi>K</mi><mn>3</mn></msub><mn>2</mn></msup></mtd><mtd><msup><msub><mi>K</mi><mn>3</mn></msub><mn>3</mn></msup></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msup><msub><mi>K</mi><mn>3</mn></msub><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msup></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>K</mi><mi>n</mi></msub></mtd><mtd><msup><msub><mi>K</mi><mi>n</mi></msub><mn>2</mn></msup></mtd><mtd><msup><msub><mi>K</mi><mi>n</mi></msub><mn>3</mn></msup></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msup><msub><mi>K</mi><mi>n</mi></msub><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msup></mtd></mtr></mtable></mfenced></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><mi>L</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>L</mi><mn>1</mn></msub></mtd><mtd><msup><msub><mi>L</mi><mn>1</mn></msub><mn>2</mn></msup></mtd><mtd><msup><msub><mi>L</mi><mn>1</mn></msub><mn>3</mn></msup></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msup><msub><mi>L</mi><mn>1</mn></msub><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msup></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>L</mi><mn>2</mn></msub></mtd><mtd><msup><msub><mi>L</mi><mn>2</mn></msub><mn>2</mn></msup></mtd><mtd><msup><msub><mi>L</mi><mn>2</mn></msub><mn>3</mn></msup></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msup><msub><mi>L</mi><mn>2</mn></msub><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msup></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>L</mi><mi>m</mi></msub></mtd><mtd><msup><msub><mi>L</mi><mi>m</mi></msub><mn>2</mn></msup></mtd><mtd><msup><msub><mi>L</mi><mi>m</mi></msub><mn>3</mn></msup></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msup><msub><mi>L</mi><mi>m</mi></msub><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msup></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>取K的逆矩阵K<sup>-1</sup>,将矩阵L乘以矩阵K<sup>-1</sup>,得到编码系数矩阵A如下:<maths num="0003"><![CDATA[<math><mrow><mi>A</mi><mo>=</mo><mi>L</mi><mo>*</mo><msup><mi>K</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>A</mi><mn>11</mn></msub></mtd><mtd><msub><mi>A</mi><mn>12</mn></msub></mtd><mtd><msub><mi>A</mi><mn>13</mn></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>A</mi><mrow><mn>1</mn><mi>n</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>A</mi><mn>21</mn></msub></mtd><mtd><msub><mi>A</mi><mn>22</mn></msub></mtd><mtd><msub><mi>A</mi><mn>23</mn></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>A</mi><mrow><mn>2</mn><mi>n</mi></mrow></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><msub><mi>A</mi><mrow><mi>m</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>A</mi><mrow><mi>m</mi><mn>2</mn></mrow></msub></mtd><mtd><msub><mi>A</mi><mrow><mi>m</mi><mn>3</mn></mrow></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>A</mi><mi>mn</mi></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>步骤(1)每步数学运算都采用数域P内的运算;(2)计算冗余包:取信源矩阵X如下:<maths num="0004"><![CDATA[<math><mrow><mi>X</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>X</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>X</mi><mn>2</mn></msub></mtd></mtr><mtr><mtd><msub><mi>X</mi><mn>3</mn></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>X</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>将编码系数矩阵A乘以信源矩阵X,得到冗余包矩阵Y如下:<maths num="0005"><![CDATA[<math><mrow><mi>Y</mi><mo>=</mo><mi>A</mi><mo>*</mo><mi>X</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>Y</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>Y</mi><mn>2</mn></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>Y</mi><mi>m</mi></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>Y<sub>1</sub>、Y<sub>2</sub>、Y<sub>3</sub>......Y<sub>m</sub>即为m个冗余包;步骤(2)每步数学运算都采用与步骤(1)相同的数域P内的运算;发信端将n个信源及m个冗余包发送往收信端,当收信端收到的信源个数r小于n时,信源恢复的方法包括以下步骤:(3)构造解码系数矩阵B:假设收到X<sub>f</sub>、X<sub>g</sub>......X<sub>h</sub>共r个信源,其中f<g<……<h,收到t个冗余包,当t大于(n-r)时任取(n-r)个冗余包,当t小于或等于(n-r)时取所有的冗余包,这些冗余包记为Y<sub>u</sub>、Y<sub>v</sub>......Y<sub>w</sub>,其中u<v<……<w,取矩阵B第1行的第f列为1、其他(n-1)列为0;矩阵B第2行的第g列为1、其他(n-1)列为0......矩阵B第r行的第h列为1、其他(n-1)列为0;矩阵B第(r+1)行为步骤(1)编码系数矩阵A的第u行;矩阵B第(r+2)行为步骤(1)编码系数矩阵A的第v行......矩阵B最后1行为步骤(1)编码系数矩阵A的第w行,构成解码系数矩阵B如下:<maths num="0006"><![CDATA[<math><mrow><mi>B</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mfenced open='' close=''><mtable><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>1</mn><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mn>0</mn><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mtd></mtr><mtr><mtd><mfenced open='' close=''><mtable><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mn>1</mn><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mtd></mtr><mtr><mtd><mfenced open='' close=''><mtable><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd></mtd><mtd></mtd></mtr></mtable></mfenced></mtd></mtr><mtr><mtd><mfenced open='' close=''><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mn>0</mn><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mn>1</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr></mtable></mfenced></mtd></mtr><mtr><mtd><mfenced open='' close='' separators=''><mtable><mtr><mtd></mtd></mtr></mtable><mfenced open='' close=''><mtable><mtr><mtd><msub><mi>A</mi><mrow><mi>u</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>A</mi><mrow><mi>u</mi><mn>2</mn></mrow></msub></mtd><mtd><msub><mi>A</mi><mrow><mi>u</mi><mn>3</mn></mrow></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>A</mi><mi>un</mi></msub></mtd></mtr></mtable></mfenced></mfenced></mtd></mtr><mtr><mtd><mfenced open='' close=''><mtable><mtr><mtd><msub><mi>A</mi><mrow><mi>v</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>A</mi><mrow><mi>v</mi><mn>2</mn></mrow></msub></mtd><mtd><msub><mi>A</mi><mrow><mi>v</mi><mn>3</mn></mrow></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>A</mi><mi>vn</mi></msub></mtd></mtr></mtable></mfenced></mtd></mtr><mtr><mtd><mfenced open='' close=''><mtable><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd></mtd></mtr></mtable></mfenced></mtd></mtr><mtr><mtd><mfenced open='' close=''><mtable><mtr><mtd><msub><mi>A</mi><mrow><mi>w</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>A</mi><mrow><mi>w</mi><mn>2</mn></mrow></msub></mtd><mtd><msub><mi>A</mi><mrow><mi>w</mi><mn>3</mn></mrow></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>A</mi><mi>wn</mi></msub></mtd></mtr></mtable></mfenced></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>(4)恢复出信源X:当t大于(n-r)时任取(n-r)个冗余包,当t小于或等于(n-r)时取所有的冗余包,得到如下等式:<maths num="0007"><![CDATA[<math><mrow><mi>B</mi><mo>*</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>X</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>X</mi><mn>2</mn></msub></mtd></mtr><mtr><mtd><msub><mi>X</mi><mn>3</mn></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>X</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>X</mi><mi>f</mi></msub></mtd></mtr><mtr><mtd><msub><mi>X</mi><mi>g</mi></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>X</mi><mi>h</mi></msub></mtd></mtr><mtr><mtd><msub><mi>Y</mi><mi>u</mi></msub></mtd></mtr><mtr><mtd><msub><mi>Y</mi><mi>v</mi></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>Y</mi><mi>w</mi></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>当t大于或等于(n-r)时,利用上等式解出(n-r)个未收到的信源X<sub>j</sub>;当t小于(n-r)时,利用上等式部分解出(n-r)个未收到的信源X<sub>j</sub>;步骤(4)每步数学运算都采用与步骤(1)相同的数域P内的运算。
地址 210110江苏省南京市江宁区将军路39号江南文枢苑C6A-201室