当前位置:文档之家› 循环码仿真---通信课程设计

循环码仿真---通信课程设计

本文主要是利用MATLAB中的SIMULINK通信系统仿真模型库进行循环码建模仿真,其中包含有循环码的编码,译码和仿真过程中的误码率的计算和分析,并将它们显示出来,除此之外,还调用通信系统功能函数进行编程,绘制频谱及误码率关系曲线图。

从而得出一条类似于抛物线的频谱与误码率关系的曲线。

针对信号与系统课程及电子信息类专业的特点, 提出将MATLAB引入到信号与系统课程的教与学中, 既能加强学生对理论知识的掌握及提高解决实际问题的能力, 又能为课堂教学及教学方法和手段的改革增添活力。

关键词:循环码;MATLAB;编码;译码;误码率
1 课程设计目的 (1)
2 课程设计要求 (1)
3 相关知识 (1)
4 课程设计分析 (5)
5 仿真 (6)
6结果分析 (9)
7 参考文献 (11)
循环码仿真
1 课程设计目的
(1)巩固并扩展通信原理课程的基本概念,基本理论,分析方法和实现方法 (2)学习和掌握MATLAB 和SIMULINK 软件的使用,并用它们进行建模,了解其设计方法;
(3)培养创新思维和设计能力
(4)增强软件编程实现能力和解决能力。

2 课程设计要求
(1)掌握循环码的编码与译码的相关知识; (2)能够设计程序并建立模型;
(3)通过程序调出并运行模型,并产生误码率与频谱的关系曲线图。

3 相关知识 3.1循环码
3.1.1 循环码多项式
为了利用代数理论研究循环码,可以将码组用代数多项是来表示,这个多项
式被称为码多项式,对于许用循环码)...0121a a a a A n n --=
(,可以将它的码多项式表示为:)......(x 012211a x a x a x a x a T i i n n n n ++++++=----)
(对于二进制码组,多项式的每个系数不是0就是1,x 仅是码元位置的标志。

因此,这里并不关心x 的取值。

3.1.2. 生成多项式和生成矩阵
(全0码字除外)称为生成多项式,用g(x)表示。

可以证明生成多项式g(x)具有以下特性:
(1) g(x)是一个常数项为1的r=n-k 次多项式; (2) g(x)是
1
x
+n 的一个因式;
(3) 该循环码中其它码多项式都是g(x)的倍式。

为了保证构成的生成矩阵G 的各行线性不相关,通常用g(x)来构造生成矩阵,这时,生成矩阵G 可以表示为:
其中)...(x 011
a x a x a x g r r r ++++=-)
(,因此,一旦生成多项式g(x)确
定以后,该循环码的生成矩阵就可以确定,进而该循环码的所有码字就可以确
定。

例如,一种(7,3)循环码的全部码元:
码元编号
信息位
456a a a
监督位 123a a a
码元编号
信息位
456a a a
监督位
123a a a
1 0000 000 5 1000 111
2 0001 011 6 1001 100
3 0010 101 7 1010 010 4
0111
000
8
1111
111
表3.1 一种(7,3)循环码的全部码元
在编码时,首先需要根据给定循环码的参数确定生成多项式g(x),也就是从1+n
x 的因子中选一个(n-k )次多项式作为g(x);然后,利用循环码的编码特点,即所有循环码多项式A(x)都可以被g(x)整除,来定义生成多项式g(x)。

根据上述原理可以得到一个较简单的系统循环码编码方法:设要产生(n,k )循环码,m(x)表示信息多项式,则其次数必小于k ,而)(*x m x k n -的次数必小于n ,用)(*x m x k n -除以g(x),可得余数r(x),r(x)的次数必小于(n-k ),将r(x)加到信息位后作监督位,就得到了系统循环码。

下面就将以上各步处理加以解释。

(1) 用)(*x m x k n -。

这一运算实际上是把信息码后附加上(n-k )个“0”。

例如,信息码为110,它相当于x x m(x )2+=。

当n-k =7-3=4时,
56)(*x x x m x k n +=-,它相当于1100000。

而希望的到得系统循环码多项式应当
是)()(*x x r x m x A k n +=-)
(。

(2) 求r(x)。

由于循环码多项式A(x)都可以被g(x)整除,也就是:
)
()
()()()()()()()()(x g x r x g x m x x g x r x m x x Q x g x A k n k n +•=+•==-- 因此,用)(*x m X k n -除以g(x),就得到商Q(x)和余式r(x),即
)
()
()()()(x g x r x Q x g x m x k n +
=•- 这样就得到了r(x)。

(3) 编码输出系统循环码多项式A(x)为:
)()(*x x r x m X A k
n +=-)(
例如,对于(7,3)循环码,若选用信息码110时,则:1)(24+++=x x x x g
1
1)1(1)()(2422
2
456+++++++=++++=•-x x x x x x x x x x x x g x m x k n 就相当于
10111
101
111101111100000+
= 这时的编码输出为:1100101
在译码时,对于接收端译码的要求通常有两个:检错与纠错。

达到检错目的的译码十分简单,通过判断接收到的码组多项式T(x)是否能被生成多项式g(x)整除来确定。

当传输中未发生错误时,也就是接收的码组与发送的码组相同,即A(x)=T(x),则接收的码组T(x)必能被g(x)整除;若传输中发生了错误,则A(x)
4 课程设计分析
4.1设计思想
4.2原理图
图4.2 循环码实现原理图
5仿真
5.1分模块参数设置
5.1.1 Bernoulli Random Binary Generator模块
(1)功能:伯努力随机二进制信号发生器,用于产生二进制随机信号并将它输出
(2)主要参数设置图
图5.1 信号发生器参数设置图
5.1.2 Binary Cyclic Encoder模块
(1)功能:二进制循环码编码器,用于将产生的二进制信号进行编码
(2)主要参数设置图
图5.2 编码器参数设置图
5.1.3 Binary Symmertric Channel 模块
(1)功能:二进制循环码均衡信道模块
(2)主要参数设置图
图5.3 均衡信道参数设置图
5.1.4 Binary Cyclic Dncoder模块
(1)功能:二进制循环码译码器,用于将产生的二进制信号进行译码(2)主要参数设置图
图5.4 译码器参数设置图
5.1.5 Error Rate Calculation模块和 Display 模块
(1)功能:误码率显示模块,用于计算和显示此配置参数情况下的误码率(2)主要参数设置图
图5.5 误码率参数显示模块参数设置图
图5.6误码率参数计算模块参数设置图6结果分析
6.1仿真结果
图6.1误码显示图
图6.2 误码率与频谱关系曲线图
(1)误码部分一共分为两个部分,第一个部分是Error Rate Calculation(误码率计算),它可以设定输出To workspace(到工作空间)。

输出的数据是一个n 行(与输入数据数目相等)3列的矩阵。

第1列是误码率,第2列是误码的数量,第3列是码元的总数就是前面所说的n。

所以Display模块的三行分别表示误码率为0.02059,误码的数量为206,码元的总量是1e+004。

(1)结果所示的是一个误码率与频谱关系曲线图,它的横坐标表示的是二进制均衡信道的误码概率,范围在[0 , 0.05],步长为0.01;纵坐标表示的是经过差错控制后仿真系统的误码率,范围在[0 , 0.05],步长为0.01。

6.2小结
在这次基于MATLAB的通信原理课程设计中,我最大的收获是对MATLAB软件的使用有了更深的了解,尤其是simulink仿真板块的运用,更加熟练,此外,对循环码的理论知识有了进一步的认识。

刚拿到题目的时候遇到很多的困难,当时通信原理的理论学习并没有学习到循环码的章节,并且在网上并没能找到很多资源,但是通过查找了大量的循环
码理论知识和MATLAB仿真应用的书籍之后,开始调试程序,并进一步了解MATLAB编程的关键字的运用,并且熟悉运用软件simulink、建模仿真、分析,在调试过程中不断出错,查阅资料之后进行不断的修正和更改,得出最终的结果。

这次MATLAB课程设计不仅仅加深了对课程理论知识的了解,并更加熟悉了计算机语言,软件的应用。

并让我了解,学习知识不仅仅只在课本上,还有更多更广的渠道获得更宽广的知识。

7 参考文献
[2]于润伟朱晓慧编.MATLAB基础及应用.机械工业出版社.2012.4
[3]樊昌信著.通信原理[M].国防工业出版社.2012(12):340-347
[8]吴伶达著.计算机通信原理与技术[M].国防科技大学出版社.2003.(3):256-258
[9]徐明远邵玉斌著.MATLAB仿真在通信与电子工程中的应用.西安电子科技大学出版社.2011(8):169-172。

相关主题