资源描述
摘 要
本文关键是利用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 循环码多项式
为了利用代数理论研究循环码,能够将码组用代数多项是来表示,这个多项式被称为码多项式,对于许用循环码,能够将它码多项式表示为:对于二进制码组,多项式每个系数不是0就是1,x仅是码元位置标志。所以,这里并不关心x取值。
3.1.2. 生成多项式和生成矩阵
(全0码字除外)称为生成多项式,用g(x)表示。能够证实生成多项式g(x)含有以下特征:
(1) g(x)是一个常数项为1r=n-k次多项式;
(2) g(x)是一个因式;
(3) 该循环码中其它码多项式全部是g(x)倍式。为了确保组成生成矩阵G各行线性不相关,通常见g(x)来结构生成矩阵,这时,生成矩阵G能够表示为:
其中,所以,一旦生成多项式g(x)确定以后,该循环码生成矩阵就能够确定,进而该循环码全部码字就能够确定。
比如,一个(7,3)循环码全部码元:
码元编号
信息位
监督位
码元编号
信息位
监督位
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)循环码全部码元
3.2编码
在编码时,首先需要依据给定循环码参数确定生成多项式g(x),也就是从因子中选一个(n-k)次多项式作为g(x);然后,利用循环码编码特点,即全部循环码多项式A(x)全部能够被g(x)整除,来定义生成多项式g(x)。
依据上述原理能够得到一个较简单系统循环码编码方法:设要产生(n,k)循环码,m(x)表示信息多项式,则其次数必小于k,而次数必小于n,用除以g(x),可得余数r(x),r(x)次数必小于(n-k),将r(x)加到信息位后作监督位,就得到了系统循环码。下面就将以上各步处理加以解释。
(1) 用。这一运算实际上是把信息码后附加上(n-k)个“0”。比如,信息码为110,它相当于。当n-k=7-3=4时,,它相当于1100000。而期望到得系统循环码多项式应该是。
(2) 求r(x)。因为循环码多项式A(x)全部能够被g(x)整除,也就是:
所以,用除以g(x),就得到商Q(x)和余式r(x),即
这么就得到了r(x)。
(3) 编码输出系统循环码多项式A(x)为:
-
比如,对于(7,3)循环码,若选择信息码110时,则:
就相当于
这时编码输出为:1100101
3.3译码
在译码时,对于接收端译码要求通常有两个:检错和纠错。达成检错目标译码十分简单,经过判定接收到码组多项式T(x)是否能被生成多项式g(x)整除来确定。当传输中未发生错误时,也就是接收码组和发送码组相同,即A(x)=T(x),则接收码组T(x)必能被g(x)整除;若传输中发生了错误,则A(x)≠T(x),T(x)被g(x)除时可能除不尽而有余项,即有
所以,能够依据余项是否为零来判定码组中有没有错码。
需要指出是,有错码接收码组也有可能被g(x)整除,这时错码就不能检出了。这种错误被称为不可检错误,不可检错误中错码数必将超出这种编码检错能力。
在接收端为纠错而采取译码方法自然比检错要复杂很多,轻易了解,为了能够纠错,要求可纠正错误图样必需和一个特定余式有一一对应关系。这里,错误图样是指 中错码矩阵E多种具体取值图案,余式是指接收码组A(x)被生成多项式g(x)除所得余式。因为只存在上述一一对应关系时,才可能从上述余式唯一地决定错误图样,从而纠正错码。所以,标准上纠错能够分为以下三步进行:
(1)用生成多项式g(x)除接收码A(x),得出余式r(x);
(2)按余式r(x),用查表方法或经过某种计算得到错误图样E(x)。比如,经过计算校正子S和利用表关系,就能够确定错码位置。
(3)从A(x)中减去E(x),便得到已经纠正错误原发送码组T(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 参考文件
[1]徐明远,林华芳. 多元数字调制传输特征仿真研究. 昆明理工大学学报. 理工版,(4):114—117
[2]于润伟 朱晓慧编.MATLAB基础及应用.机械工业出版社..4
[3]樊昌信著.通信原理[M].国防工业出版社.(12):340-347
[8]吴伶达著.计算机通信原理和技术[M].国防科技大学出版社..(3):256-258
[9]徐明远 邵玉斌著.MATLAB仿真在通信和电子工程中应用.西安电子科技大学出版社.(8):169-172
展开阅读全文