5b1c实验完结报告资料.docx
《5b1c实验完结报告资料.docx》由会员分享,可在线阅读,更多相关《5b1c实验完结报告资料.docx(12页珍藏版)》请在冰点文库上搜索。
![5b1c实验完结报告资料.docx](https://file1.bingdoc.com/fileroot1/2023-6/20/ab76e6ad-a96f-4dbb-bafb-b51a6ab017b7/ab76e6ad-a96f-4dbb-bafb-b51a6ab017b71.gif)
5b1c实验完结报告资料
合肥学院
课程设计报告
题目:
5B1C编码的仿真和实现
系别:
电子信息与电气工程系___
专业:
通信工程专业
班级:
_____09级通信
(2)/
(2)/
(2)班
学号:
0905072010/0905072030/0905075033
姓名:
马跃/杨帆/汪皖春
导师:
____张倩____________
成绩:
________________________
2012年11月29日
论文
题目
5B1C编码的仿真与实现
设计类型
工程应用
导师姓名
张倩
学生姓名
马跃、扬帆、汪皖春
主要内容及目标
仿真与实现5B1C的编码,要求:
1、了解5B1C编码原理;
2、对5B1C编码进行仿真模型设计;
3、运用MATLAB软件或硬件描述语言对5B1C编码进行设计,并对各模块进行分析、仿真与验证;
4、要求有系统框图,电路原理图,软件流程图,模拟仿真结果图。
具有的设计条件
计算机
MATLAB软件
QuartusII软件
计划学生数及任务
计划需要3人:
1人主要进行5B1C编码仿真模型设计;
1人用MATLAB仿真实现。
1人分析5B1C编码用硬件描述语言的实现方案
计划设计进程
第12周查资料了解5B1C编码原理,设计实现方案,并进行仿真
第13周仿真实现5B1C编码,同时完成课程设计报告
参考文献
[1]刘增基,周洋溢,胡辽林,周绮丽.光纤通信(第二版)[M].西安:
西安电子科技大学出版社,2008.12
[2]姜雪松,刘东升.硬件描述语言VHDL教程[M].西安:
交通大学出版社.2004,6.
《通信技术综合课程设计》任务书
目录
摘要:
1
关键字:
1
正文:
1
一、5B1C编码原理1
1.15B1C码的编码规则1
1.25B1C码的编码原理2
二、程序流程图3
三、编码及仿真结果3
四、结果分析7
五、小结7
六、参考文献8
附件9
5B1C编码的仿真与实现
摘要:
本文首先介绍了数字光纤通信中5B1C线路传输码的工作原理,对其编解码和线路传输过程进行matlab程序设计,采用matlab语言进行5B1P功能仿真。
数字光纤通信通过发光器件发出的光的有无状态来传送信号。
但在进行数字传输时,必须考虑传输信道的特点,使终端信息与信道相匹配。
从光纤通信系统和光纤媒质的特性考虑,光线路码型应该是二电平、基带、连续运行的固定长度组码。
从其变换规则还可分为字母型与非字母型、平衡型与不平衡型。
线路码形有:
扰码、MBNB码、插入码,5B1C和5B1P码各是插入码的一种,正确地选择传输码型不但可以改善传输性能、提高通信质量,而且可以延长中继段的距离,使中继段结构简单,从而获得很好的通信和经济效果。
关健词:
5B1C5B1Pmatlab仿真
正文:
一、5B1C编码原理
1.15B1C码的编码规则
mB1C码也是一种比较典型的非字母型不平衡码,是一种插入型码。
其变换原理与mB1P码类似,只是在Mb后面插入的不是奇偶校验码,而是补码。
mB1C码编码是将输入的二进制码每m比特分为一组,插入的补码可以使其前i位的补码,因此准确的应与为mB1Ci码,通常情况下i=1,2比较常用,当i=1时简写为mB1C。
mB1C码的优点是可以控制长连“0”和长连“1”,其最大同符号连接数为m+1,误码倍增系数略小于1。
在此实验中,我们选取m=5且补码i=1的补码,即5B1C码。
5B1C码编码后的波型如图:
图15B1C编码波形
1.25B1C码的编码原理
5B1C编码的原理框图如下:
图25B1C编码原理框图
5B1C码编码时,原理比较简单。
首先是对输入的5B码流进行串并转换,然后对于转换后的并行数据的D0进行取反,作为补码位,这样5位数据加上1位补码共6位数据送入并/串联转换器,作为其数据的输入。
并行的6位数据经过并/串转换器后变6位的串行码,此码即为5B1C码。
2、程序流程图
N
图3程序流程图
3、编码及仿真结果
1先运行MATLAB7.0软件后,新建.m文件,输入实验代码。
图4代码输入窗口
2然后保存,运行在软件命令窗口出现如下提示:
“请输入需要转换的5B码的个数:
”
图5软件命令行窗口图
3输入5的倍数,按enter键即可出现编码结果。
图6编码结果截图
4如果输入的数不是5的倍数,则程序会自动报错并请求重新输入:
图7程序报错截图
4、结果分析
运行程序,输入m=100,产生如上截图结果:
由以上结果可知,编码后的5B1P码完全符合之前写的编码规则,表示编码正确。
具体程序内容见附件一。
5、小结
通过本次5B1C、5B1P编码仿真设计,了解了5B1C编码原理;对5B1C编进行仿真模型设计;运用MATLAB软件对5B1P码进行设计,并对各模块进行分析、仿真与验证;让我们对插入码编码方式有了更深入的了解,尤其是对5B1P的奇偶校验检错的理解。
同时通过此次的编码仿真实验使我对Matlab的使用更加熟练。
其实本次实验是5B1C的方真与实现,但由于学生的水平有限,只能完成与5B1C同为插入码的5B1P的仿真与实现,望老师能够谅解。
在这里感谢老师的谆谆教导。
六、参考文献
[1]刘增基,周洋溢,胡辽林,周绮丽.光纤通信(第二版)教程[M].西安:
西安电子科技大学出版社,2008.12.
[2]姜雪松,刘东升.硬件描述语言VHDL教程[M].西安:
交通大学出版社.2004,6.
[3]张倩.光纤通信实验指导书教程[M].2012,2.
[4]张威.MATLAB基础与编程入门教程[M].西安:
西安电子科技大学出版社,2008.1.
附件:
程序
functionmain_5B1P()
m=input('请输入需要转换的5B码的个数:
')
%----------判断是否为5的整数倍,若不是,重新输入-------
whilemod(m,5)|(m<=0)
disp('请输入五的正整数倍!
')
m=input('请重新输入需要转换的5B码的个数:
')
end
%--------------------------------------------------------------------------
r=round(rand(1,m))%随机产生m位0、1码
n=m/5
s=(reshape(r,5,n))'%对输入码重组,变成n*5矩阵s
forl=1:
32%设定标志位,判断输出码是否需要翻转
q(l)=0
end
fori=1:
n
c(i)=nnz(s(i,:
))%记录s矩阵中每行中1码的个数,即码重
end
fori=1:
n%循环调用bianma子程序,对s每行进行编码,并将输出码保存于o矩阵中
[o(i,:
),q]=bianma(c(i),s(i,:
),q)
end
%---------------------------------------------
disp('输入的5B码')
s
disp('编码之后的5B1P码')
o
end
%------------------------------编码子程序-------------------------------
function[x,q]=bianma(a,b,q)
ifa==2%若码重为2,后补1
x=b
x(6)=1
end
ifa==3%若码重为3,后补0
x=b
x(6)=0
end
ifa==4%若码重为3,后补0
x=b
x(6)=1
end
ifa==5%若码重为3,后补0
x=b
x(6)=0
end
ifa==0%若码重为3,后补0
x=b
x(6)=1
end
ifa==1%若码重为1,后补1,且下次出现时翻转
x=b
x(6)=0
str=num2str(b)
weizhi=bin2dec(str)
end
q(32)=1-q(32)
end
课程设计评语
指
导
教
师
评
语
设
计
成
绩
注