logo资料库

差分曼彻斯特编码课设及源码.doc

第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
资料共21页,剩余部分请下载后查看
课程设计报告 计算机网络 目: 差分曼彻斯特模拟编码 名: 业: 级: 号: 题 姓 专 班 学 指导教师: 2013.12.21 1
目 录 1.课程设计目的………………………………………………………01 2.课程设计要求………………………………………………………01 3.实验要求……………………………………………………………01 4.差分曼彻斯特编码简介……………………………………………01 5.设计思路……………………………………………………………02 6.图像示意……………………………………………………………02 7.算法流程图…………………………………………………………02 8.实验模块分析………………………………………………………03 9.运行结果……………………………………………………………10 10.实验总结 …………………………………………………………11 (1)结果分析 …………………………………………………………11 (2)实验感想 …………………………………………………………12 11.附录代码 …………………………………………………………13 1
一、课程设计目的: 通过课程设计,巩固《计算机网络》课程学习的内容,强化上机 动手能力,为后续各门计算机相关课程的学习打下坚实基础。课程设 计为学生提供了一个独立实践的机会,将课本上的理论知识和实际应 用问题进行有机结合,锻炼综合分析、解决实际问题的能力。 二、课程设计要求: 1、对系统进行功能模块分析、控制模块分析正确; 2、系统设计要实用; 3、编程简练,可用,功能全面,具有较好的健壮性; 4、说明书、流程图要清楚。 三、实验要求: 通过编译语言实现一个输入十六进制数输出差分曼彻斯特编码 模拟图像实验。 四、差分曼彻斯特编码简介: 差分曼彻斯特编码是对曼彻斯特编码的一种改进,保留了曼彻 斯特编码作为“自含时钟编码”的优点,仍将每比特中间的跳变作为 同步之用,但是每比特的取值则根据其开始处是否出现电平的跳变来 决定。其原理是:每一位中间都有一个跳变,每位开始时有跳变表示 “0”,无跳变表示“1”。位中间跳变表示时钟,位前跳变表示数据。 其优点是:时钟、数据分离,便于提取。 1
五、设计思路: 输入 16 进制数据,能够输出差分曼却斯特波形图,通过数组转 变,将十六进制数据转化成二进制数据,转化过程中,必须将一位十 六进制数据转化成四位二进制数据,并判断差分曼彻斯特编码,输出 模拟图像。 六、图像示意: 七、算法流程图: 开 始 输入一个十六进制数 将十六进制转换四位二进制数 表示 判 断 输 入 数 据进制 不是二进制数,则 运行结束 是二进制组成的数 据 2
输出差分曼彻斯特编码 波形 结 束 八、实验模块分析: 将一个十六进制数转化为二进制数 void test() { char c[MAX]; int a[16]={0}; int i=0,j; cout<<"请输入一个十六进制数:"<>c; while(c[i]) { if(c[i]>'0'&&c[i]<'9') c[i]=c[i++]-48; else if(c[i]>='A'&&c[i]<='Z') c[i]=c[i++]-55; else if(c[i]>='a'&&c[i]<='z') c[i]=c[i++]-87; 3
else { } cout<<"输入错误,请从新输入"<=0;j--) { } a[j]=c[i]%2; c[i]/=2; for(j=0;j<4;j++) cout<
判断输入的数据是不是由 01 组成的序列。若不是,则做出错处理。 bool check(char *ch) { //局部变量 bool flag=true; int index=1; char temp='n'; if(ch[0]=='\0') { } cout<<"(----请输入上述转换的数据!----)"<
if(ch[index]!='0' && ch[index]!='1') { cout<<"源数据有误!"<>temp; if(temp!='y') exit(1); flag=false; break; } index++; } return flag; } 差分曼彻斯特编码。第一个数据若是 1,则用 10 代替;若是 0,则用 01 代替。其他数据,后一个数据若是 1,则数据起始位置不跳变;若 是 0,则数据起始位置产生跳变。并且,每个数据中间都会产生跳变。 6
分享到:
收藏