信道编码MATLAB实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)若码字用于纠正 t 个错误,同时检测 e 个错误时(设 e > t ) ,则 d 0 ≥ e + t + 1 。 编码效率: Rc 可表示为 Rc = k n = ( n − r ) n = 1 − r n 。
(二)线性分组码
所谓线性分组码, 可简单认为是信息码分组后, 附加的监督码和信息码由一些线性代数 方程联系着。线性分组码的任意两码之和仍为可用码,即线性分组码具有封闭性。另外,线 性分组码的最小码距等于非零码的最小码重,因为线性分组码中必有一个全 0 码组。 1.深入认识监督码 在奇偶监督偶校验码中,发送端将一位监督码 附加在信息码后,使得码元中“1”码元 ..... 个数为偶数。在接收时计算接收码中“1”的个数 S :
A ( x ) = an −1 x n −1 + an − 2 x n −2 + L + a1 x + a0
1.生成多项式 g ( x ) 定义: 若一个循环码的所有码字多项式都是一个次数最低的、 非零的、 首一多项式 g ( x ) 的倍式,则称 g ( x ) 为生成该码,并称 g ( x ) 为该码的生成元或生成多项式。 可以证明生成多项式 g ( x ) 具有以下特性:
a a a a a a
5 4 3 2 1
0
。 ⎤ ⎦
⎡1 1 1 0 1 0 0 ⎤ ⎥ H=⎢ ⎢1 1 0 1 0 1 0 ⎥ = [ P I r ] ⎢ ⎣1 0 1 1 0 0 1 ⎥ ⎦
注意: (1)监督矩阵确定了编码时监督码元与信息码元的关系。 (2)监督矩阵的行数就是监督关系式的数目,即监督位数 r 。 (3)监督矩阵的每行中“1”的位置表示相应的码元参与监督关系。 3.生成矩阵 G 上述关系也可以用矩阵形式来表示:
为 B = [bn −1bn − 2 L b1b0 ] B 。则收、发码组之差(模 2 运算)为:
B − A = [bn −1
= E = [en −1
bn − 2 L b0 ] − [a n −1 e n − 2 L e0 ]
a n − 2 L a0 ]
⎧0 ⎩1 bi = ai bi ≠ ai
这里的 E 就是错码的行矩阵,称为错误图样。其中, ei = ⎨ 5.检错与纠错原理 接收端利用接收到的码组 B 计算校正子:
r r −1
+ L + a1 x + 1 ,则有:
⎡ x k −1 ⋅ g ( x ) ⎤ ⎢ k −2 ⎥ ⎢ x ⋅ g ( x )⎥ G ( x) = ⎢ M⎥ ⎢ ⎥ ⎢ x ⋅ g ( x )⎥ ⎢ g ( x )⎥ ⎣ ⎦
2.监督多项式 h( x ) 定义:若 g ( x ) 是 ( n, k ) 循环码的生成多项式,则有 x + 1 = g ( x)h( x) 。其中, h( x ) 是
二、实验仪器与设备
1. 2. 3. 微型电子计算机 Windows 2000 以上版本操作系统 Visual C++ 6.0/MATLAB6.5 以上系统 80 台 80 套 80 套
三、实验原理
如果说信源编码的目的是为了提高信号传输的有效性的话, 那么信道编码则是为了提高 通信的可靠性而采取的一种编码策略。 信道编码的核心基础是纠错编码理论, 是在信息码后 面附加上一些监督码,以便在接收端发现和纠正误码。目前常用的方法是线性分组码。
1 1 0 1
1⎤ 0⎥ ⎥ = [a 6 1⎥ ⎥ 1⎦
a5
a4
a3 ] ⋅ Q
其中 Q = P 。
T
如果在 Q 矩阵的左边在加上一个 k × k 的单位矩阵,就形成了一个新矩阵:
G = [I k
⎡1 ⎢0 Q] = ⎢ ⎢0 ⎢ ⎣0
0 1 0 0
0 0 1 0
0 0 0 1
1 1 1 0
1 1 0 1
(一)分组码概念
分组码可表示为 ( n, k ) ,其中 n 表示码字的长度, k 表示信息码的长度。设 r = n − k , 表示监督码的长度。如下图所示。
图 2.1
分组码结构
码长:码字中码元的数目。 码重:码字中非 0 位的数目。 码距:两个等长码字间对应位不同的数目,有时也称作这两个码字的汉明距离。 最小码距:在码字集合中全体码字之间距离的最小数值,一般记为 d 0 或 d min 。 分组码的抗干扰能力完全取决于可用码字之间的最小距离, 最小距离越大, 说明码字间 的最小差别越大,抗干扰能力也就越强。 (1)当码字用于检测错误时,如果要检测 e 个错误,则 d 0 ≥ e + 1 ; (2)当码字用于纠正错误时,如果要纠正 t 个错误,则 d 0 ≥ 2t + 1 ;
S = an −1 ⊕ an − 2 ⊕ L ⊕ a0
这里的 S 称为校正子。若 S 为 0,则认为传输过程中没有发生误码;否则有错。 方程 S = an −1 ⊕ an − 2 ⊕ L ⊕ a0 称为监督关系式。在 S = an −1 ⊕ an − 2 ⊕ L ⊕ a0 中, S 只 有两种取值,故只能表示有错和无错,而不能进一步指明错码的位置。我们设想一下,若使 用二位 监督 码 ,则有两个校正子,组合后将得到有四种情况,例如,设 00 表示无错,01、 .. .. . 10、11 表示一位错码的三种可能位置。从而可以有纠错能力。 推而广之,当监督位增加到 ,则可指示一位错码的 2 − 1 个可能的位置。对于一个 ......r 位 .
实验二 信道编码
一、实验目的与要求
1. 2. 3. 4. 学习并理解信道编码的根本目的、技术要求与基本目标等基本概念; 掌握线性分组码的物理涵义、数学基础及检纠错原理; 掌握循环码的码型特点、检纠错能力、编译码方法及基本技术; 学会使用 VC++6.0 或 MATLAB 等工具实现循环码的编译码及检纠错模拟与分析。
。
S = BHT = ( A + E )HT = AHT + EHT = EHT
因此,校正子 S 仅与 E 有关,即错误图样与校正子之间有确定的关系。所以可从错误 图样与校正子的关系表中确定错码位置,加以纠正。 【例】以(7,4)汉明码为例。设发送码组 A=(0001011) ,接收码组 B=(0000011) ,则收 端译码过程如下: ①计算校正子
计算出校正子 S1S2 S3 ,然后查表判断出错位置。 例:若接收码组为 0000011,则按上三式计算得到:S1 = 0,S2 = 1,S3 = 1。这样,由 表可知,错码位置在a3。 2.监督矩阵 H 我们将上述三个监督方程式可以重新改写为如下形式:
⎧1 ⋅ a6 + 1 ⋅ a5 + 1⋅ a4 + 0 ⋅ a3 + 1⋅ a2 + 0 ⋅ a1 + 0 ⋅ a0 = 0 ⎪ ⎨1 ⋅ a6 + 1 ⋅ a5 + 0 ⋅ a4 + 1⋅ a3 + 0 ⋅ a2 + 1⋅ a1 + 0 ⋅ a0 = 0 ⎪1 ⋅ a + 0 ⋅ a + 1⋅ a + 1⋅ a + 0 ⋅ a + 0 ⋅ a + 1⋅ a = 0 5 4 3 2 1 0 ⎩ 6
⎡1 ⎢1 ⎢ ⎢1 ⎢ T S = B ⋅ H = [ 0000011] ⎢ 0 ⎢1 ⎢ ⎢0 ⎢0 ⎣ 1 1⎤ 1 0⎥ ⎥ 0 1⎥ ⎥ 1 1 ⎥ = [0 1 1] 0 0⎥ ⎥ 1 0⎥ 0 1⎥ ⎦
②查表,得 a3 为错误位置,即可纠正(0001011) 。
(三)循环码
循环码是线性分组码的一个重要子集, 是目前研究得最成熟的一类码, 它有许多特殊的 代数性质,例如,循环码中任一许用码组经过循环移位后,所得到的码组仍然是许用码。 循环码 A = an −1 + an − 2 + L + a1 + a0 可以表示为如下的码多项式:
即:
⎡1 1 1 0 1 0 0 ⎤ ⎢1 1 0 1 0 1 0 ⎥ ⋅ ⎡ ⎢ ⎥ ⎣a 6 ⎢1 0 1 1 0 0 1 ⎦ ⎥ ⎣
a a a a a
5 4 3 2
1
⎡0⎤ ⎢ ⎥ a 0⎤ ⎦ = ⎢0⎥ ⎢0⎦ ⎥ ⎣
T
上式可以记作: HA T = 0T 或 AH T = 0 。 其中 0 = [ 0 0 0] , A = ⎡ ⎣a 6 进而有:
r
( n, k ) 分组码,若希望用 r = n − k 个监督位构造出的 r 个监督关系式,来指示一位错码的 n
种可能位置,则要求 2 r − 1 ≥ n ,即 2 r ≥ k + r + 1 。例如,构造一 k = 4 并能纠正一位错码 的分组码,则要求 r ≥ 3 ,即 n ≥ 7 。 下表显示了当 n = 7, r = 3 时,校正子的 8 种组合与一位错码的对应关系。
(1) g ( x ) 是一个常数项为 1 的 r = n − k 次多项式; (2) g ( x ) 是 x n + 1 的一个因式; (3)该循环码中其它码多项式都是 g ( x ) 的倍式。 为了保证构成的生成矩阵 G 的各行线性不相关,通常用 g ( x ) 来构造生成矩阵。因此, 一旦生成多项式 g ( x ) 确定以后,该循环码的生成矩阵就可以确定。 设 g ( x ) = x + a r −1 x
1⎤ 0⎥ ⎥ 1⎥ ⎥ 1⎦
这里 G 称为生成矩阵, 利用它可以产生整个码组:A = M ⋅ G = [ a6 注意:编码方法完全由生成矩阵 G 确定。 4.错误图样
a5
a4
a3 ] ⋅ G 。
设发送组码 A = [ an −1an − 2 L a1a0 ] ,在传输过程中有可能出现误码,这时接收到的码组
表 2-1 S1S2S3 000 001 010 100 错码位置 无错 a0 a1 a2 校正子与错码位置关系 S1S2S3 011 101 110 111 错码位置 a3 a4 a5 a6
则仅当在 a6 , a5 , a4 , a2 位置上有错码时,校正子 S1 的值才等于 1;否则为零。这就意味 着 a6 , a5 , a4 , a2 四个码元构成偶数监督关系: S1 = a6 ⊕ a5 ⊕ a4 ⊕ a2 。 同理,有 S 2 = a6 ⊕ a5 ⊕ a3 ⊕ a1 , S3 = a6 ⊕ a4 ⊕ a3 ⊕ a0 。
⎡ a6 ⎤ ⎡ a2 ⎤ ⎡1 1 1 0 ⎤ ⎢ ⎥ ⎢ a ⎥ = ⎢1 1 0 1 ⎥ ⋅ ⎢ a5 ⎥ ⎢ 1⎥ ⎢ ⎥ ⎢a ⎥ 4 ⎢ ⎥ ⎢ ⎥ a 1 0 1 1 0 ⎣ ⎦ ⎣ ⎦ ⎢a ⎥ ⎣ 3⎦
或表示成为:
[ a2
a1
a0 ] = [ a6
a5
a4
Leabharlann Baidu
⎡1 ⎢1 a3 ] ⋅ ⎢ ⎢1 ⎢ ⎣0
给定信息位后,为了计算监督位,上式可以改写为:
⎧a2 = a6 ⊕ a5 ⊕ a4 ⎪ ⎨a1 = a6 ⊕ a5 ⊕ a3 ⎪a = a ⊕ a ⊕ a 3 6 4 ⎩ 0
按照上式计算结果为:
在接收端解码时,对于每个接收码组,先按式:
S1 = a6 ⊕ a5 ⊕ a4 ⊕ a2 S2 = a6 ⊕ a5 ⊕ a3 ⊕ a1 S3 = a6 ⊕ a4 ⊕ a3 ⊕ a0
n
k 次多项式,称为监督多项式。也称校验多项式。
xn + 1 h ( x) = = x k + hk −1 x k −1 + L + h1 x + 1 g ( x)
监督矩阵可表示为:
⎡ x n − k −1 ⋅ h∗ ( x ) ⎤ 0⎤ ⎢ n−k −2 ∗ ⎥ ⎡ h0 h1 L hk 0 L x h x ⋅ ( ) ⎢ ⎢ ⎥ 0 h0 h1 L hk 0 L 0 ⎥ ⎢ ⎥ ⎥= H=⎢ M ⎢ ⎥ M ⎢ ⎥ ∗ ⎥ ⎢ x ⋅ h ( x) ⎥ ⎢ 0 L 0 h0 h1 L hk ⎦ ⎢ h∗ ( x ) ⎥ ⎣ ⎣ ⎦
在编码时, 信息位 a6 , a5 , a4 , a3 的值决定于输入信号, 它们是随机的。 监督位 a2 , a1 , a0 是 按监督关系确定的,应该保证上列 3 式中的校正子等于 0,即有
⎧a6 ⊕ a5 ⊕ a4 ⊕ a2 = 0 ⎪ ⎨a6 ⊕ a5 ⊕ a3 ⊕ a1 = 0 ⎪ ⎩a6 ⊕ a4 ⊕ a3 ⊕ a0 = 0
其中: h∗ (x ) = x k + h1 x k −1 + h2 x k − 2 + L + hk −1 x + 1 。 3.伴随式 发送码 C ( x ) 通过含噪信道时,会因各种扰而产生误码。 例如发送码为: 00000000001111111111 接收码为: 01101001001111001001 产生错误序列: 01101001000000110110