5B6B编码的仿真与实现-课程设计_第1页
5B6B编码的仿真与实现-课程设计_第2页
5B6B编码的仿真与实现-课程设计_第3页
5B6B编码的仿真与实现-课程设计_第4页
5B6B编码的仿真与实现-课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、HEFEI UNIVERSITY 课 程 设 计 报 告 主 题 5B6B编码的仿真与实现 专 业 通信工程 班 级 11通信(1)班 姓 名 孟万媛 1105021002 陈若梦 1105021013 方 三 1105021025 导 师 张 倩 完成时间 2014年12月4号 现代通信技术课程设计论文题目5B6B编码的仿真与实现设计类型工程应用导师姓名张倩主要内容及目标仿真与实现5B6B的编码,要求:1、了解5B6B编码原理;2、对5B6B编码进行仿真模型设计;3、运用MATLAB软件或硬件描述语言对5B6B编码进行设计,并对各模块进行分析、仿真与验证;4、要求有系统框图,电路原理图,软件

2、流程图,模拟仿真结果图。具有的设计条件计算机MATLAB软件 Quartus II软件计划学生数及任务计划需要3人:1人主要进行5B6B编码仿真模型设计;1人用MATLAB仿真实现。1人分析5B6B编码用硬件描述语言的实现方案计划设计进程第12周 查资料了解5B6B编码原理,设计实现方案,并进行仿真第13周 仿真实现5B6B编码,同时完成课程设计报告参考文献1李勇权, 刘永强, 何云状, 樊建明.一种基于FPGA的5B6B编译码的实现J. 微计算机信息 , 2007,(14)2 张少锋, 杨章顺, 戴琦, 齐恒, 冉立新. 光纤数字通信系统5B6B编译码的FPGA实现J. 光通信技术 , 20

3、04,(12)3 刘增基,周洋溢,胡辽林,周绮丽. 光纤通信 (第二版) M. 西安:西安电子科技大学出版社,2008.12目录1.5B6B编码原理- 1 -2.程序流程图- 3 -3.编码程序部分- 4 -4.运行结果- 13 -5.总结- 15 -6.参考文献- 15 -摘要:在光纤通信系统中,选取适当的码型,对提高系统的可靠性,实现线路的高速、低误码率、最大容量传输,具有重要意义。5B6B码是mBnB线路码型中的一种。5B6B码是常用的线路码型,具有最大相同码元连码数少、定时信息丰富、匀衡性好、误码监视、同步性好等优点。从电端机输入的信号,输出时必须要进行码型变换,才可适合线路传输。5B

4、6B译码是将传输到接收端机的6B数据码流,译成5B数据码流输出;而编码则是将自编数据按照一定的规律,编成6B码组后输出 ,二者互为逆过程。本文介绍了基于对5B6B码编码的仿真与实现。着重介绍了编码的工作原理并用程序对其进行仿真,最终得出正确的结果,以实现5B6B码编码在理论上的功能实现。关键词:5B6B 编码仿真 MATLAB 1.5B6B编码原理最简单的mBnB 码是1B2B 码,即曼彻斯特码,这就是把原码的“0”变换为“01”, 把“1”变换为“10”。因此最大的连“0”和连“”的数目不会超过两个,例如1001 和0110。但是在相同时隙内,传输1比特变为传输2 比特,码速提高了1倍。以3

5、B4B 码为例,输入的原始码流3B 码,共有(23)8 个码字, 变换为4B 码时, 共有(24)16个码字。为保证信息的完整传输,必须从4B 码的16 个码字中挑选8 个码字来代替3B 码。设计者应根据最佳线路码特性的原则来选择码表。例如:在3B 码中有2 个“0”,变为4B 码时补1 个“”;在3B 码中有2 个“1”, 变为4B 码时补1 个“0”。而000 用0001 和1110 交替使用; 111 用0111 和1000 交替使用。同时,规定一些禁止使用的码字, 称为禁字,例如0000 和1111。作为普遍规则,引入“码字数字和”(WDS)来描述码字的均匀性,并以WDS 的最佳选择来

6、保证线路码的传输特性。所谓“码字数字和”,是在nB 码的码字中,用“-1”代表“0”码, 用“+1”代表“”码,整个码字的代数和即为WDS。如果整个码字“1”码的数目多于“0”码,则WDS为正;如果“0”码的数目多于“1”码, 则WDS 为负;如果“0”码和“1”码的数目相等,则WDS为0。例如:对于0111,WDS=+2;对于0001, WDS=-2;对于0011,WDS=0。mBnB 码的特点是:(1)码流中“0”和“1”码的概率相等,连“0”和连“1”的数目较少,定时信息丰富。(2) 高低频分量较少,信号频谱特性较好,基线漂移小。(3) 在码流中引入一定的冗余码,以便在线误码检测。5B6

7、B 的编码规则:5B 共有(2 的5 次方)32 个码字,变换6B 码时共有(2 的6 次方)64 个码字,其中WDS=0 的码字有20 个,WDS=+2 的码字有15 个,WDS=-2 的码字有15个,因此共有50 个|WDS|最小的码字供选择。由于变换为6B 时只需32 个码字,为减少连“1”和连“0”的数目,删去:000011、110000、001111 和111100,同时禁用|WDS|=4 和6的码字。见表1编码过程,随机产生一64*5 矩阵代表原始的输入5B 码流,然后按顺序将这些码字转换成十进制即为对应6B 的地址。若对应的6B 码WDS=0 则直接输出模式1,若不是0 则交替输

8、出模式1 和模式2。信号码(5B)线路码(6B)模式1(正组)模式2(负组)码字WDS码字WDS000000010111+2101000-2100001100111+2011000-2200010011011+2100100-230001100011100001110400100101011+2010100-2500101001011000101106001100011010001101070011100111000011100801000110011+2001100-290100101001101010000100101001010100110000110101101011001001000

9、1201100011001000011101301101011010001010001401110011100000101101501111101101+2001101-21610000011101+2001110-217100011000110001100-21810010100101010100001910011100110001100002010100101001010010002110101101010000011102210110101100001010002310111110101+2001011-224110001100010001101025110011100100001110

10、02611010110100000110002711011111001+2101000-22811100111000001100002911101101110+2100100-23011110110110+2000111-23111111111010+2010100-2表1 5B6B码表2.程序流程图图1 程序流程图3.编码程序部分#include#include #define N 301void main()char b5N;char _b5N;int i=0;int flag0=0;int flag1=0;int flag2=0;int flag4=0;int flag8=0;int f

11、lag15=0;int flag16=0;int flag23=0;int flag27=0;int flag29=0;int flag30=0;int flag31=0;char s06=00000;char s16=00001;char s26=00010;char s36=00011;char s46=00100;char s56=00101;char s66=00110;char s76=00111;char s86=01000;char s96=01001;char s106=01010;char s116=01011;char s126=01100;char s136=01101;

12、char s146=01110;char s156=01111;char s166=10000;char s176=10001;char s186=10010;char s196=10011;char s206=10100;char s216=10101;char s226=10110;char s236=10111;char s246=11000;char s256=11001;char s266=11010;char s276=11011;char s286=11100;char s296=11101;char s306=11110;char s316=11111;char k0_17=0

13、10111;char k0_27=101000;char k1_17=100111;char k1_27=100100;char k2_17=011011;char k2_27=100100;char k37=000111;char k4_17=101011;char k4_27=010100;char k57=001011;char k67=001101;char k77=001110;char k8_17=110011;char k8_27=001100;char k97=010011;char k107=010101;char k117=010110;char k127=011001;c

14、har k137=011010;char k147=011100;char k15_17=101101;char k15_27=010010;char k16_17=011101;char k16_27=100010;char k177=100011;char k187=100101;char k197=100110;char k207=101001;char k217=101010;char k227=101100;char k23_17=110101;char k23_27=001010;char k247=110001;char k257=110010;char k267=110100;

15、char k27_17=111001;char k27_27=000110;char k287=111000;char k29_17=101110;char k29_27=010001;char k30_17=110110;char k30_27=001001;char k31_17=111010;char k31_27=000101;printf(请输入5B码:);gets(b5); /*读取输入码流到数组b5中*/if(strlen(b5)%5=0) /*判断是否满足码的长度*/printf(对应的6B码:);while(b5i!=0) /*判断是否读到码流的结尾*/int n;for(n

16、=0;n5;n+)_b5n=b5i+;_b55=0; /*将码流分组并以字符串形式存储*/if(strcmp(_b5,s0)=0)if(flag0+%2=0)printf(%s,&k0_1);elseprintf(%s,&k0_2);if(strcmp(_b5,s1)=0)if(flag1+%2=0)printf(%s,&k1_1);elseprintf(%s,&k1_2);if(strcmp(_b5,s2)=0)if(flag2+%2=0)printf(%s,&k2_1);elseprintf(%s,&k2_2);if(strcmp(_b5,s3)=0)printf(%s,&k3);if(s

17、trcmp(_b5,s4)=0)if(flag4+%2=0)printf(%s,&k4_1);elseprintf(%s,&k4_2);if(strcmp(_b5,s5)=0)printf(%s,&k5);if(strcmp(_b5,s6)=0)printf(%s,&k6);if(strcmp(_b5,s7)=0)printf(%s,&k7);if(strcmp(_b5,s8)=0)if(flag8+%2=0)printf(%s,&k8_1);elseprintf(%s,&k8_2);if(strcmp(_b5,s9)=0)printf(%s,&k9);if(strcmp(_b5,s10)=0

18、)printf(%s,&k10);if(strcmp(_b5,s11)=0)printf(%s,&k11);if(strcmp(_b5,s12)=0)printf(%s,&k12);if(strcmp(_b5,s13)=0)printf(%s,&k13);if(strcmp(_b5,s14)=0)printf(%s,&k14);if(strcmp(_b5,s15)=0)if(flag15+%2=0)printf(%s,&k15_1);elseprintf(%s,&k15_2);if(strcmp(_b5,s16)=0)if(flag16+%2=0)printf(%s,&k16_1);elsep

19、rintf(%s,&k16_2);if(strcmp(_b5,s17)=0)printf(%s,&k17);if(strcmp(_b5,s18)=0)printf(%s,&k18);if(strcmp(_b5,s19)=0)printf(%s,&k19);if(strcmp(_b5,s20)=0)printf(%s,&k20);if(strcmp(_b5,s21)=0)printf(%s,&k21);if(strcmp(_b5,s22)=0)printf(%s,&k22);if(strcmp(_b5,s23)=0)if(flag23+%2=0)printf(%s,&k23_1);elsepri

20、ntf(%s,&k23_2);if(strcmp(_b5,s24)=0)printf(%s,&k24);if(strcmp(_b5,s25)=0)printf(%s,&k25);if(strcmp(_b5,s26)=0)printf(%s,&k26);if(strcmp(_b5,s27)=0)if(flag27+%2=0)printf(%s,&k27_1);elseprintf(%s,&k27_2);if(strcmp(_b5,s28)=0)printf(%s,&k28);if(strcmp(_b5,s29)=0)if(flag29+%2=0)printf(%s,&k29_1);elsepri

21、ntf(%s,&k29_2);if(strcmp(_b5,s30)=0)if(flag30+%2=0)printf(%s,&k30_1);elseprintf(%s,&k30_2);if(strcmp(_b5,s31)=0)if(flag31+%2=0)printf(%s,&k31_1);elseprintf(%s,&k31_2); /*分组后的5B码与码表对比并输出相应的6B码*/elseprintf(你输入的码不满足5B码长度,请正确输入5B码);while(1);4.运行结果输入输出00000010111101000000011001110110000001001101110010000

22、011000111000111001001010110101000010100101100101100110001101001101001110011100011100100011001100110001001010011101000010100101010110000101101011010010001100011001000111011010110100101000111001110000101101111101101001101100000111010011101000110001100110010010100101101000100111001100110001010010100110010010101101010000111101101011000101001011111

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论