ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:154.11KB ,
资源ID:7392627      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7392627.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(差分曼彻斯特编码课程设计及代码.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

差分曼彻斯特编码课程设计及代码.docx

1、差分曼彻斯特编码课程设计及代码课程设计报告计算机网络 题 目: 差分曼彻斯特模拟编码姓 名: 专 业: 班 级: 学 号: 指导教师: 2013.12.211.课程设计目的012.课程设计要求013.实验要求014.差分曼彻斯特编码简介015.设计思路026.图像示意027.算法流程图028.实验模块分析039.运行结果1010.实验总结 11(1)结果分析 11 (2)实验感想 1211.附录代码 13一、课程设计目的: 通过课程设计,巩固计算机网络课程学习的内容,强化上机动手能力,为后续各门计算机相关课程的学习打下坚实基础。课程设计为学生提供了一个独立实践的机会,将课本上的理论知识和实际应

2、用问题进行有机结合,锻炼综合分析、解决实际问题的能力。二、课程设计要求:1、对系统进行功能模块分析、控制模块分析正确;2、系统设计要实用;3、编程简练,可用,功能全面,具有较好的健壮性;4、说明书、流程图要清楚。三、实验要求: 通过编译语言实现一个输入十六进制数输出差分曼彻斯特编码模拟图像实验。四、差分曼彻斯特编码简介: 差分曼彻斯特编码是对曼彻斯特编码的一种改进,保留了曼彻斯特编码作为“自含时钟编码”的优点,仍将每比特中间的跳变作为同步之用,但是每比特的取值则根据其开始处是否出现电平的跳变来决定。其原理是:每一位中间都有一个跳变,每位开始时有跳变表示“0”,无跳变表示“1”。位中间跳变表示时

3、钟,位前跳变表示数据。其优点是:时钟、数据分离,便于提取。五、设计思路: 输入16进制数据,能够输出差分曼却斯特波形图,通过数组转变,将十六进制数据转化成二进制数据,转化过程中,必须将一位十六进制数据转化成四位二进制数据,并判断差分曼彻斯特编码,输出模拟图像。六、图像示意:七、算法流程图: 八、实验模块分析: 将一个十六进制数转化为二进制数void test() char cMAX; int a16=0; int i=0,j; cout请输入一个十六进制数:c; while(ci) if(ci0&ci=A&ci=a&ci=z) ci=ci+-87; else cout输入错误,请从新输入=0;

4、j-) aj=ci%2; ci/=2; for(j=0;j4;j+) coutajendl; i+; coutendl; 判断输入的数据是不是由01组成的序列。若不是,则做出错处理。bool check(char *ch) /局部变量 bool flag=true; int index=1; char temp=n; if(ch0=0) cout(-请输入上述转换的数据!-)endl; flag=false; /只有ch0!=0时才会进入这个循环 while(chindex!=0 & ch0!=0) if(chindex= ) /如果输入的数据中有空格则忽略 index+; continue;

5、 if(chindex!=0 & chindex!=1) cout源数据有误!endlendl; /根据用户需要决定是否继续编码过程 couttemp; if(temp!=y) exit(1); flag=false; break; index+; return flag;差分曼彻斯特编码。第一个数据若是1,则用10代替;若是0,则用01代替。其他数据,后一个数据若是1,则数据起始位置不跳变;若是0,则数据起始位置产生跳变。并且,每个数据中间都会产生跳变。void Differential_Manchester_Encody(char *ch) int index=1; char temp;

6、/用temp来记录前一个数据后半部分是0还是1 cout差分曼彻斯特编码图像为: endl; if(ch0=0) cout-_ ; temp=1; else cout_- ; temp=0; while(chindex!=0) /编码未完成才继续 if(chindex= ) index+; continue; if(chindex=1) if(temp=1) cout_- ; temp=0; else cout-_ ; temp=1; else if(temp=1) cout-_ ; temp=1; else cout_- ; temp=0; index+; coutendlendl;主函数部

7、分:int main() test(); /char bufferMAX;/存放输入数据的缓冲区 char cMAX; /bufferMAX=cMAX; char temp=y; while(temp=y) cout非归零码为: endl; gets(c); /利用gets而不用cin是为了当输入的数据中含有空格时能读取完整的码 if(check(c) /首先检查输入的数据是否符合要求,01串符合要求 Differential_Manchester_Encody(c); /根据用户需要决定是否继续编码过程 couttemp; getchar(); /这个getchar()是必须存在的,否则ge

8、ts函数会读取cintemp中的回车 return 0;九、运行结果:十、实验总结: 1、结果分析: (1)差分曼彻斯特码编码规则: 从上图可看出差分曼彻斯特码的编码规则,即: i.每个单位周期内,以1/2周期的时刻处,分为高低两个等时长电平。有两种:上升(先高后低)或下降(先低后高)。 ii.数据流的二进制编码中,第一个数据位是1,则编码为下降。0则相反。 iii.数据流的二进制编码中,其它数据位,则根据此位跟前一位的电平比较。相同则编码为不跳变(跟上一位后半部分一样)。不同则相反。 (2)差分曼彻斯特码特点:在信号为开始时不改变信号极性,表示逻辑“1”;在信号为开始时改变信号极性,表示逻辑

9、“0”。当比特为1时,前T/2比特位的电平与上一个比特位的后T/2的比特位的电平相同;当比特为0时,前T/2比特位的电平与上一个比特位的后T/2比特位的电平相反。2、实验感想:首先,让我对差分曼彻斯特编码原理有了进一步的了解。差分曼彻斯特码又叫数字双相码,每个时钟中间都有一次跳变这个跳变作同步之用。其次,通过这次课程设计,我认识到了完成一项课程设计工作不但需要对知识的掌握和理解,还需要不懂就问,同学间共同努力来解决课程设计当中的种种困难,开拓创新能力的目的。最后,通过这次课程设计,让我对说明书的模板有了更清晰的了解,加深了我思想中对文章模范化的概念,对我一年后的毕业论文也起了轮廓性作用。这将会

10、变成我们在大学生活中获得的又一笔巨大的财富。附录代码:#includeusing namespace std;#define MAX 1024bool check(char *ch) bool flag=true; int index=1; char temp=n; if(ch0=0) cout(-请输入上述转换的数据!-)endl; flag=false; while(chindex!=0 & ch0!=0) if(chindex= ) /如果输入的数据中有空格则忽略 index+; continue; if(chindex!=0 & chindex!=1) cout源数据有误!endlen

11、dl; couttemp; if(temp!=y) exit(1); flag=false; break; index+; return flag;void test() char cMAX; int a16=0; int i=0,j; cout请输入一个十六进制数:c; while(ci) if(ci0&ci=A&ci=a&ci=z) ci=ci+-87; else cout输入错误,请从新输入=0;j-) aj=ci%2; ci/=2; for(j=0;j4;j+) coutajendl; i+; coutendl; void Differential_Manchester_Encody(

12、char *ch) int index=1; char temp; cout差分曼彻斯特编码图像为: endl; if(ch0=0) cout-_ ; temp=1; else cout_- ; temp=0; while(chindex!=0) if(chindex= ) index+; continue; if(chindex=1) if(temp=1) cout_- ; temp=0; else cout-_ ; temp=1; else if(temp=1) cout-_ ; temp=1; else cout_- ; temp=0; index+; coutendlendl;int main() test(); char cMAX; char temp=y; while(temp=y) cout非归零码为: endl; gets(c); if(check(c) Differential_Manchester_Encody(c); couttemp; getchar(); return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1