循环码产生电路设计

更新时间:2024-03-28 22:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计 数字 原理

课程设计报告

班 级: 通信09—4 姓 名: 宋蕾 学 号: 0906030421 指导教师: 刘玉珍 成 绩:

电子与信息工程学院

通信工程系

1

循环码产生电路设计

1. 引言

在线性分组码中,有一种重要的码称为循环码(cycil code)。循环码是在严密的代数学理论基础上建立起来的。这种编码和解码设备都不太复杂,而且检(纠)错的能力较强。循环码是线性分组码中最重要的一种子类,是目前研究得比较成熟的一类码。循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并且简化译码算法,并且目前发现的大部分线性码与循环码有密切关系。循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。

simulink是matlab中的一种可视化仿真工具, 是一种基于matlab的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI) ,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。

2. 设计要求

(1)用simulink对系统建模。 (2)写出其生成多项式(自定)。 (3)对所设计的系统性能进行仿真分析。 (4)对其应用举例阐述。

3. 设计原理

3.1 循环码的循环性

循环码除了具有线性码的一般性质外,还具有循环性。循环性是指任一码组循环一位(即将最右端的一个码元移至左端,或反之)以后,仍为该码中的一个码组。在表1中给出一种(7,3)循环码的全部码组。由此表可以直观看出这种码的循环型。例如,表中的第2码组向右移一位即得到第5码组;第6码组向右移一位即得到第7码组。一般说来,若(an?1an?2?a1a0 )是循环码的一个码组,则循环移位后的码组:

2

(an?2an?3??a0an?1) (an?3an?4??an?1an?2)

??

(a0an?1??a2a1)

也是该编码组中的码组。

表3-1 一种(7,3)循环码的全部码组

码组编号

信息位 a6a5a4

1 2 3 4

000 001 010 011

监督位 a3a2a1a0 0000 0111 1110 1001

5 6 7 8 码组编号

信息位 a6a5a4 100 101 110 111

监督位 a3a2a1a0 1011 1100 0101 0010

由于循环码具有码的代数结构清晰、性能较好、编译码简单和易于实现的特点,因此在目前的计算机纠错系统中所使用的线性分组码几乎都是循环码。它不但可以纠正独立的随机错误,也可用于检测突发错误并且非常有效。(n,k)循环码能够检测长为n?k或更短的任何突发错误;其中n为码长,k为信息位数。

3.2 循环码多项式

在代数编码理论中,为了便于计算,把这样的码组中各码元当作是一个多项式的系数,即把一个长度为n的码组表示成:

T(x)?an?1xn?1?an?2xn?2???aix???a1x?a0i (3.2-1)

这种多项式中, x仅是码元位置的标记,例如上式表示第7码组中a6、a5、a2和a0为“1”,其他均为0。因此我们并不关心x的取值。这种多项式有时称为码多项式。 例如,表1中第7个码组可以表示为:

T(x)?x?x?x?1

6523.3 循环码的生成多项式和生成矩阵

在循环码中,一个(n,k)码有

2k个不同的码组。若用g(x)表示其中前(k?1)位皆为“0”

3

的码组,则g(x),xg(x),x2g(x),?,xk?1g(x)都是码组,而且这k个码组是线性无关的。因此他们可以用来构成此循环码的生成矩阵G。可以证明生成多项式g(x)具有以下特性:

(1)g(x)是一个常数项为1的最高次数为r=n-k次多项式; (2)g(x)是xn?1的一个因式;

(3)所有码多项式T(x)都可被整除,而且任意一个次数不大于的多项式乘g(x)都是码多项式。

为了保证构成的生成矩阵G的各行线性不相关,通常用g(x)来构造生成矩阵,这时,生成矩阵G可以表示为:

?xk?1?g(x)??k?2?x?g(x)??G(x)?????

???x?g(x)???g(x)???? (3.3-1)

其中g(x)?gn?kxn?k?gn?k?1xn?k?1???g1x?g0,因此,一旦生成多项式g(x)确定以后,该循环码的生成矩阵就可以确定的,进而该循环码的所有码字就可以确定。

3.4 循环码的编码方法

在编码时,首先需要根据给定的(n?k)循环码的参数确定生成多项式g(x),也就是从

x?1的因子中选一个(n?k)次多项式作为g(x);然后,利用循环码的编码特点,即所有

n循环码多项式T(x)都可以被g(x)整除,来定义生成多项式g(x)。

根据上述原理可以得到一个较简单的系统循环码编码方法:设要产生(n?k)循环码,

m(x)表示信息多项式,则其次数必小于k,而xn?k?m(x)的次数必小于n,用xn?k?m(x)除

以g(x),可得余数r(x),r(x)的次数必小于(n?k),将r(x)到信息位后作监督位,就得到了系统循环码。下面就将以上各步处理加以解释。

4

(1)用xn?k?m(x)。这一运算实际上是把信息码后附加上(n?k)个“0”。例如,信息码为1010,它相当于m(x)?x3?x。当n?k?7?4?3时,xn?k?m(x)?x6?x4,它相当于1010000。而希望的到得系统循环码多项式应当是T(x)?xn?k?m(x)?r(x)。

(2)求r(x)。由于循环码多项式T(x)都可以被g(x)整除,也就是:

T(x)g(x)?Q(x)?xn?k?m(x)?r(x)g(x)?xn?k?m(x)g(x)?r(x)g(x)

(3.4-1)

因此,用xn?k?m(x)除以g(x),就得到商Q(x)和余式r(x),即

xn?k?m(x) 这样就得到了r(x)。

g(x)?Q(x)?r(x)g(x)

(3.4-2)

n?k(3)编码输出系统循环码多项式T(x)为:对于(7,4)循T(x)?x?m(x)?r(x)),例如,

环码,若选用g(x)?x3?x?1,信息码1010的编码输出为:1010011。

3.5 循环码的电路设计

第一步:移位寄存器数目为r?n?k,反馈连接取决于生成多项式系数。门1ON,门2OFF,信息码元以[mk?1,mk?2,??,m1,m0]依次输入编码器,同时通过或门输出,在除法电路的右端输入M(x)相当于

xn?k左乘M(x)。

第二步:r次移位后,寄存器中存放的为余项r(x)的系数,门2ON,门1OFF。

第三步:经r?n?k次移位,校验元从编码器输出,编码电路图如下:

5

图3-1 编码电路

4. 循环码的SIMULINK仿真

设计的( 7,4)循环码,通过simulink仿真,仿真模型如下图所示:

图4-1 simulink模型方框图

我们可以通过改变参数从而改变其编码,参数如下图所示:

6

图4-2 参数设置

输入信息位为1010的波形:

图4-3 输入波形

对输入进行编码时的参数:

7

图4-4 参数设置

编码后的波形:

图4-5 输出波形

5. 结论

5.1 循环码的应用

(1)循环码在微机网络系统中的应用 (2)循环码在CDMA中的应用

8

(3)循环码在数字通信中的应用 (4)循环码在前向纠错中的应用 (5)循环码在铁路通讯安全中的应用

5.2个人总结

这次课程设计我设计了一个循环码产生电路,实现了编码循环,通过自己查阅书籍,上网搜索资料,经过整合研究了解了怎样实现编码循环,设计的过程中使我对循环码的编码原理,编解码方法有了更深的理解,让我对课本的知识的理解更加深刻,这个设计中不仅包括《模拟电子技术基础》里反馈的知识还用到了《数字电子技术基础》里的寄存器和门电路的知识,让我又重新记起了很多有用的东西,设计中使用了matlab软件中的similink对电路进行仿真,matlab对我来说也是新的东西通过老师的指导和自己的努力基本掌握了仿真的原理和过程,我现在充分感到只有理论知识是远远不够的,只有实际动手练习设计才能真正提高自己的水平,在设计中也遇到了很多难题通过和同学讨论最后做出了成果,感到十分高兴,这次的课程设计对我来说是个很大的补充,让我不知不觉中提高了很多,学到了很多。

参考文献

[1]樊昌信,曹丽娜,通信原理,国防工业出版社,2006,340~346

[2]童诗白,华成英,模拟电子技术基础,高等教育出版社,2006.5,259~260

[3]阎石,数字电子技术基础,高等教育出版社,2006.5,66~72,272~277

9

本文来源:https://www.bwwdw.com/article/tvkr.html

Top