您好,欢迎访问三七文档
实验五NRZ编码一、实验目的加深理解NRZ编码的基本原理,掌握NRZ编码的实现方法。二、实验原理2.1NRZ编码特点数字信号可以直接采用基带传输,所谓基带就是指基本频带。基带传输就是在线路中直接传送数字信号的电脉冲,这是一种最简单的传输方式。基带传输时,需要解决数字数据的数字信号表示以及收发两端之间的信号同步问题。对于传输数字信号来说,最简单最常用的方法是用不同的电压电平来表示两个二进制数字,也即数字信号由矩形脉冲组成。根据信号是否归零,还可以划分为归零码和非归零码,归零码码元中间的信号回归到0电平,而非归零码遇1电平翻转,零时不变。按数字编码方式,可以划分为单极性码和双极性码,单极性码使用正(或负)的电压表示数据;双极性码是二进制码,1为反转,0为保持零电平。单极性不归零码、双极性不归零码,都是在一个码元的全部时间内发出或不发出电流(单极性),以及发出正电流或负电流(双极性)。每一位编码占用了全部码元的宽度,故这两种编码都属于全宽码,也称作不归零码NRZ(NonReturnZero)。如果重复发送1码,势必要连续发送正电流;如果重复发送0码,势必要连续不送电流或连续发送负电流,这样使某一位码元与其下一位码元之间没有间隙,不易区分识别。非归零码在传输中难以确定一位的结束和另一位的开始,需要用某种方法使发送器和接收器之间进行定时或同步。2.2NRZ编码基本方式NRZ编码方式基本上分为两类:一类称为单极性不归零码,另一类称为双极性不归零码。单极性不归零码,无电压(也就是元电流)用来表示0,而恒定的正电压用来表示1。每一个码元时间的中间点是采样时间,判决门限为半幅度电平(即0.5)。也就是说接收信号的值在0.5与1.0之间,就判为1码,如果在0与0.5之间就判为0码。每秒钟发送的二进制码元数称为码速。双极性不归零码,1码和0码都有电流,但是1码是正电流,0码是负电流,正和负的幅度相等,故称为双极性码。此时的判决门限为零电平,接收端使用零判决器或正负判决器,接收信号的值若在零电平以上为正,判为1码;若在零电平以下为负,判为0码。本实验实现的双极性不归零码。三、实验步骤1)打开MicrosoftvisualC++应用程序。2)点击菜单栏的file菜单下的new,弹出以下对话框:选择“MFCAppwizard(exe)”,在右边的“projectname”中输入项目的名称:NRZ,在“location”选择项目所在的路径点击“ok”,弹出以下对话框:点击next,进入如下对话框点击next,进入如下对话框:点击“next”,弹出如下对话框:点击“Finish”,弹出:点击“ok”,进入程序编写界面:3)将“确定”、“取消”按钮,“TODO在这里设置对话控制”文本框删除,点击“工具箱”中“Aa”的添加一个静态文本框,得到如下图界面:鼠标右键点击“static”文本框,在弹出的菜单选择“properties”得到如下对话框:在“caption“对话框中输入“请输入01序列”,关闭对话框,程序界面如下图所示:按照上面方式的添加“变换后的NRZ码”文本框,再添加一个“NRZ变换”button在“请输入01序列”文本框的右边添加“editbox”并设置属性为输入数字;在“请变换后的NRZ码”的右边添加“editbox”并设置属性为“disable”,得到如下图所示4)双击“NRZ变换”按钮,进入voidCTestDlg::OnButton1()程序编写:在其中输入如下代码:CStringstr,str1;GetDlgItem(IDC_EDIT1)-GetWindowText(str);for(inti=0;istr.GetLength();i++){if(str.GetAt(i)=='0')str1=str1+-1;elseif((str.GetAt(i)=='1'))str1=str1++1;else{MessageBox(只能输入01序列);str1=;break;}}GetDlgItem(IDC_EDIT2)-SetWindowText(str1);即完成了NRZ编码四、实验结果运行后在输入01序列文本框里面输入01序列,点击NRZ变换按钮,得到如下图所示结果:图5-1:NRZ编码后结果对照NRZ原理进行分析编程的正确性。
本文标题:实验五-NRZ编码
链接地址:https://www.777doc.com/doc-5424760 .html