5B6B编码-光纤通信_第1页
5B6B编码-光纤通信_第2页
5B6B编码-光纤通信_第3页
5B6B编码-光纤通信_第4页
5B6B编码-光纤通信_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、5B6B码编码与译码 MATLAB语言实现光 纤 通 信电子信息选院通信工程0801班王萌408030301131. 5B6B码5B6B码是把输入的二进制原始码流进行分组,每组有 5个二 进制码,记为5B,称为一个码子,然后把一个码字变换为6个二进 制码,记为6B ,并在同一个时隙内输出。这种码型是把 5B变换为 6B,称为5B6B码。mBnB其中m和n都是正整数,nm,般 选取 n二m+1, mBnB 码育 1B2B 3B4B、5B6B 等等2. 5B6B码的编码原理及框图5B6B码起编码规则如下:5B码共有32个码字,变换6B时共 有64个码字,其中 WDS=O有20个,WDS= 2有15

2、个,WDS=-2有 15个,共有50个|WDS最小的码字可供选择。由于变换为 6B码时只 需32个码字,为减少连“0”和“ 1”的数目,删去:000011、110000 001111和111100.当然禁用 WDS= 4和士 6的码字。框图:编码原理图3. 5B6B码的译码原理及框图5B6B译码就是编码的逆过程,它同样包含了串 /并变换电路、 缓存电路、译码电路、时钟变频器和并/串变换电路等,如下图所示:“问砒比別柿冲译码原理图4编码及译码仿真结果通过运行MATLAB7.0得出一下实验数据:Fiki tdiE Desuo Dcctoip Wi5Id set st art edj select

3、1ULELAE- Help oe DenchB roji Zh& He Ld menu main_5BB m林队The eLJient type nsrija noet be teiituiat sd tv the nnt ctiirig end-i agCotLA nM 卩 axes ths Mi Lb; e: nex 1 ah It ocltKXicc-ElLrkI,ii c ce liTikiiif a 荊.:、番要错損的5阚的桶:15n =01100010000100011 0 11 0 0 0 1 0 0 1 1 0 0 11 1 0 0 1 0 0 1 11 0 10 1 01 0

4、 11 0 0 0 1 0 0 0 11 1 01 0 1 0 1 0 0 1 0输入的5B码101100111011001001010011101编码N后的6B码译码之后的5B码0 二10i0100101010100011a10001a01110i1000i010110101a10译码之后的5E码=1010110010111001101001a0001a00010011a11Q1Q1注明:o是编码后的结果;ss是译码后的结果;仿真中s是随机输入的矩阵。5实验心得在大学生活前期已经掌握了实验软件 MATLAB7.0 的使用方法,对于本次 的实验能更加熟悉MATLAB的操作过程,起初由于实验程序

5、结果不正确,出现了 很多问题,但是在同学的帮助下逐一解决,最后顺利出现结果,本次的实验对于 以后的自主学习过程是个很好的锻炼, 难得拥有的一次机会,但是目前学生水平 有限,如果还出现问题,请老师见谅并予以指出,学生必将及时修改,圆满完成学业任务6.参考程序此次实验,我的输入数据为 45 function main_5B6B()m=input( 请输入需要转换的 5B 码的个数 :)% 判断是否为 5 的整数倍,若不是,重新输入while mod(m,5)|(m=0)disp( 请输入五的正整数倍! ) m=input( 请重新输入需要转换的 5B 码的个数 :) end%r=round(ran

6、d(1,m) % n=m/5s=(reshape(r,5,n) % for l=1:32 %q(l)=0endfor i=1:nc(i)=nnz(s(i,:) % end for i=1:n % 并将输出码保存于 o 矩阵中随机产生m位0、1码对输入码重组,变成 n*5 矩阵 s 设定标志位,判断输出码是否需要翻转记录 s 矩阵中每行中 1 码的个数,即码重循环调用 bianma 子程序,对 s 每行进行编码,o(i,:),q=bianma(c(i),s(i,:),q) end% 对编好的 6B 码组 o 进行译码,并将结果保存于 ss 矩阵中 for i=1:nd(i)=nnz(o(i,:)

7、endfor i=1:nss(i,:)=yima(d(i),o(i,:)end%disp( 输入的 5B 码)sdisp(编码之后的6B码)odisp( 译码之后的 5B 码)ss% 对译码之后的结果进行检验 norm(ss-s) % 求出译码矩阵与输入码矩阵差的范数, 若结果为零, 则表明 译码正确!%- end% 编码子程序 function x,q=bianma(a,b,q) if a=2 % 若码重为 2,后补 1 x=b x(6)=1end if a=3 % 若码重为 3,后补 0x=bx(6)=0endif a=1 % 若码重为 1,后补 1 ,且下次出现时翻转 x=bx(6)=1

8、str=num2str(b)weizhi= bin2dec(str)if q(weizhi+1)=1x=1 1 1 1 1 1-xendq(weizhi+1)=1-q(weizhi+1)endif (a=4) & norm(b-1 1 1 1 0) %若码重为 4 且不为 1 1 1 1 0 ,前补 0,且下次出现时翻转x(1)=0for j=1:5x(j+1)=b(j)endstr=num2str(b)weizhi= bin2dec(str)if q(weizhi+1)=1x=1 1 1 1 1 1-xendq(weizhi+1)=1-q(weizhi+1)endif a=0 %若为全 0

9、码,输出 0 0 0 1 1 0 ,且下次出现时翻转x=0 0 0 1 1 0if q(1)=1x=1 1 1 1 1 1-xendq(1)=1-q(1)end若为全 1 1 1 1 0 码,输出 0 1 0 1 0 0 ,且下if b=1 1 1 1 0 次出现时翻转 x=0 1 0 1 0 0 str=num2str(b) weizhi= bin2dec(str) if q(weizhi+1)=1 x=1 1 1 1 1 1-x end q(weizhi+1)=1-q(weizhi+1) end,且下次出现if a=5 % 若为全 1 码,输出 0 1 1 0 0 0 时翻转x=0 1 1

10、 0 0 0 if q(32)=1x=1 1 1 1 1 1-x endq(32)=1-q(32)end end% 译码子程序 function ss=yima(aa,bb) if (aa=3)&(bb(6)=1)for j=1:5 ss(j)=bb(j) end end if (aa=3)&(bb(6)=0)for j=1:5 ss(j)=bb(j) end end if (aa=4)&(bb(1)=0)for j=1:5 ss(j)=bb(j+1) end end if (aa=2)&(bb(1)=1)for j=1:5 ss(j)=bb(j+1) end end if (aa=2)&(bb(6)=1)for j=1:5ss(j)=bb(j)endendif (aa=4)&(bb(6)=0)for j=1:5 ss(j)=bb(j) end endif (norm(bb-0 0 0 1 1 0

温馨提示

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

评论

0/150

提交评论