Matlab实现HDB3码的编解码过程.doc_第1页
Matlab实现HDB3码的编解码过程.doc_第2页
Matlab实现HDB3码的编解码过程.doc_第3页
Matlab实现HDB3码的编解码过程.doc_第4页
Matlab实现HDB3码的编解码过程.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

通信工程专业通信系统课程设计研究报告Matlab实现HDB3码的编解码过程学生姓名:学生学号:指导教师:所在学院: 专业班级: 2018年7月信息技术学院课 程 设 计 任 务 书 电气与信息 院 通信工程 专业 通信S17 级,学号 姓名 一、课程设计课题:Matlab实现HDB3码的编解码过程 二、课程设计工作日自 2018 年 6 月 25 日至 2018 年 7 月 5 日三、课程设计进行地点: 信息馆 四、 程设计任务要求: 1.课题来源:指定教师指定题目2.目的意义:数字基带信号的传输是数字通信系统的重要组成部分。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。采用AMI码的信号交替反转,有可能出现四连零现象,这不利于接收端的定时信号提取。而HDB3码因其无直流成份、低频成份少和连0个数最多不超过三个等特点,而对定时信号的恢复十分有利,并已成为CCITT协会推荐使用的基带传输码型之一。3.基本要求:a.掌握HDB3编解码原理。b.对HDB3编解码进行仿真模型设计。c.有系统框图,电路原理图,软件流程图,模拟仿真结果图。课程设计评审表指导教师评语:成绩: 签字: 日期: Matlab实现HDB3码的编解码过程概述 :数字信号的传输方式按其在传输中对应的信号的不同可分为数字基带传输系统和数字频带传输系统。在数字通信中,选择合适在信道中传输的码型是十分重要的,常用的传输码型是AMI码,但当原信码出现长连“0”串时,信号的电平长时间不调变时,造成提取定时信号的困难。解决连“0”码问题的有效方法之一是采用HDB3码。HDB3码(三阶高密度码)是比较常用的信道传输码型, HDB3码具有较强的检错能力,当数据序列用HDB3码传输时,若传输过程中出现单个误码,其极性交替变化规律将受到破坏,因而在接收端根据HDB3码这一独特规律特性,可检出错误并纠正错误,同时HDB3码方便提取位定时信息。第一部分 原理介绍(一)HDB3编码解码原理HDB3码:三阶高密度双极性码。 HDB3码与二进制序列的关系: (1)二进制信号序列中的“0”码在HDB3码中仍编为“0”码,二进制信号中“1”码,在HDB3码中应交替地成+1和-1码,但序列中出现四个连“0”码时应按特殊规律编码(引入传号交替反转码的“破坏点”V码); (2)二进制序列中四个连“0”按以下规则编码:信码中出现四个连“0”码时,要将这四个连“0”码用000V或B00V取代节来代替(B和V也是“1”码,可正、可负)。这两个取代节选取原则是,使任意两个相邻v脉冲间的传号数为奇数时选用000V取代节,偶数时则选用B00V取代节。(二)在实际的传输系统中,并不是所有的代码电气波形都可以信道中传输。含有直流分量和较丰富的单极性基带波形就不适宜在低频传输特性差的信道中传输,因为它有可能造成信号的严重的畸变。在传输码(或称线路码)的结构将取决于实际信道特性和系统的工作条件。通常,传输码的结构应具有以下的特性:1.相应的基带信号无直流分理,且低频分量少:2.便于从信号中提取定时信息:3.信号中高频分应尽量少以节省传输频带并减少码间串扰。4.不受信号源统计特性影响,即能适应于信息源变化:5.具有内在的检错能力,传输的码型应具有一定的规律性,以便利用这一规律性进行宏观监测:6.编译码设备要尽可能简单,等等。满足以上特性的传输码型种类繁多,这里使用HDB3。要了解HDB3码的编码规则,首先要知道AMI码的构成规则,AMI码就是把单极性脉冲序列中相邻的“1”码(即正脉冲)变为极性交替的正、负脉冲。将“0”码保持不变,把“1”码变为+1、-1交替的脉冲。如:AMI码:-10000 +10000-1 +10000-1 +1HBD3码(3nd Order High Density Bipolar)的全称是三阶高密度双极性码,它是AMI码的一种改进型,改进目的是为了保持AMI码的优点而克服其缺点,使连“0”个数不超过3个。其编码规则:a.检查消息码中连“0”的个数。当连“0”数目小于等于3时,HBD3码与AMI码一样(“1”交替的变换为“+1”和“-1”,“0”保持不变)。b.当连“0”数目超过3时,将每4个连“0”化作一小节,定义为“B00V称为破坏节,其中V称为破坏脉冲,而B称为调节脉冲;c.V与前一个相邻的非“0”脉冲的极性相同(这破坏了极性交替的规则,所以V称破坏脉冲),并且要求相邻的V码之间极性必须交替。V的取值为“+1”或“-1”;d.B的取值可选0、+1或-1,以使V同时满足两个要求;e.V码后面的传号码极性也要交替。例如:消息码: 1 000 0 1 000 0 1 1 000 0 000 0 1 1AMI码: -1 000 0 +1 000 0 -1+1 000 0 000 0 -1+1HDB3码:-1 000-V +1 000+V -1+1-B00-V +B00+V -1+1其中的B脉冲和V脉冲与1脉冲波形相同,用V或B表示的目的是为了示意其中的该非“0”码是由原信码的“0”变换而来的。当相邻两个V码之间有奇数个“1”码时,能保证V码满足要求,B取“0”;当相邻两个V码之间有偶数个“1”码时,不能保证V码极性交替,B取“+1”或“-1”,B码的符号与前相邻“1”相反,而其后面的V码与B码极性相同。第二部分 MATLAB编程仿真M文件调用函数functionyn,decode=HDB3(xn)yn=xn;num=0;for k=1:length(xn) if xn(k)=1 num=num+1; if num/2 = fix(num/2) yn(k)=1; else yn(k)=-1; end endend num=0; yh=yn; sign=0; V=zeros(1,length(yn); B=zeros(1,length(yn);for k=1:length(yn) if yn(k)=0 num=num+1; if num=4 num=0; yh(k)=1*yh(k-4); V(k)=yh(k); if yh(k)=sign yh(k)=-1*yh(k); yh(k-3)=yh(k); B(k-3)=yh(k); V(k)=yh(k); yh(k+1:length(yn)=-1*yh(k+1:length(yn); end sign=yh(k); end else num=0; endend re=xn,yn,yh,V,B; input=yh; decode=input; sign=0; for k=1:length(yh) if input(k) = 0 if sign=yh(k) decode(k-3:k)=0 0 0 0; end sign=input(k); endenddecode=abs(decode); error=sum(xn-decode); subplot(3,1,1);stairs(0:length(xn)-1,xn);axis(0 length(xn) -2 2);subplot(3,1,2);stairs(0:length(xn)-1,yh);axis(0 length(xn) -2 2);subplot(3,1,3);stairs(0:length(xn)-1,decode);axis(0 length(xn) -2 2);M文件运行程序xn=1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1;yn=HDB3(xn);(运行效果图)第三部分 设计过程和体会通过这两周的通信原理课程设计实践,我复习了MATLAB编程语言的基本概念、语法、语义和数据类型的使用特点,加深了对课堂所学理论知识的理解,掌握了运用结构化程序设计的基本思想和方法,更重要的是培养了自己的自学能力。因为这是我们第二次接触MATLAB编程语言,在编写程序以及调试的过程中遇到了很多困难,但是我通过去图书馆查找资料,请教同学老师,再自己一点点改善程序,最终编写出一个比较完善的程序,实现了所有要求功能,这是最值得我欣慰的一点。 以下是我的几点切身感受: (一)编写程序需要一个清醒的头脑,明确的思路,同时也要有耐心毅力。刚拿到程序设计课题时,我感觉一片茫然,因为在之前的信号处理学习中,只是在一些例题中接触过MATLAB语言,甚至没有看过一些基础的书籍,更没有上过课,所以初次遇到一个实际问题,感觉无从下手。这是由于自己对MATLAB的模块设计不够理解,同时对MATLAB的基本语句一无所知,不过通过请教老师懂得了首先要设计guide目录,再根据用户输入,执行swtich语句,在每个case后调用一个函数,来实现要求的功能,这样一下子豁然开朗,掌握了基本设计思路之后,后面的编程就顺利多了。至此,我真真体会到清晰地思路对成功编写一个程序的重要性。 当然成功编写一个程序绝非易事,之前,我总以为程序能够正常运行,就代表着编程成功,后来我才发现我大错特错了。我用了三天时间,完成了程序的编写、改错,但我立刻发现尽管程序能够正常运行,部分功能却不完善,甚至不能实现。经过一次又一次调试、修改又修改,一点一点发现问题并改正,我才真正发现编程远没有想象中的简单。它需要的不仅是清晰地编程思路、编程技巧,还需要有耐心有毅力,不要放弃。(二)我们在大学需要学习的不仅是基础知识、专业知识,更重要的是一种学习能力。正如老师所说学习是终生的,因此学习能力也就能让我们受益终生。由于课堂时间有限,MATLAB课程只能靠我们自学,然而guide画图功能我们必须用到,因此只能通过自习,实践也证明我们是有自学的潜能的,通过自学课本,不理解的知识,通过查找资料,请教老师,最终掌握知识,因此,这次课程设计时间培养了我们的自学能力。(三)要学会向他人请教,与他人合作。在编程过程中,我遇到了许多问题,通过查找资料也未能找到原因,每次我想老师请教,老师总能不厌其烦地一点点讲解。有时,老师为了帮我在那几百行的程序中找到问题,花上一个多小时,这让我非常感动。大学中的老师是每个大学生的好资源,他的博学、重教,向他们请教会有很大收获。在编程过程中,我与我组成员共同讨论,为对方查找错误,提示建议,在这个过程中我收获甚多,也培养了自己的合作精神。 (四)要学会总结,提高。在编程过程中,我发现自己的程序还有很多地方可以完善。程序的界面可以做得更加人性化,这样使用户使用更加方便,画图函数也还可以改进,例如:在使用figure分图显示的时候,我尽量选择部分图,都在一个figure中显示,这样既符合了,老师的要求

温馨提示

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

最新文档

评论

0/150

提交评论