数字数据编码波形生成器的设计与实现.docx
- 文档编号:7218381
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:17
- 大小:131.29KB
数字数据编码波形生成器的设计与实现.docx
《数字数据编码波形生成器的设计与实现.docx》由会员分享,可在线阅读,更多相关《数字数据编码波形生成器的设计与实现.docx(17页珍藏版)》请在冰豆网上搜索。
数字数据编码波形生成器的设计与实现
ASP.NET课程设计报告
数字数据编码波形生成器的设计与实现
学生学院
专业班级
学生姓名
指导老师
设计时间
目录
前言1
一、课程设计目的1
二、课程设计的要求1
三、课程设计需求分析1
四、课程设计的原理2
4.1数字数据各种编码原理2
4.1.1二电平码2
4.1.2差分码3
4.1.3双极性信号交替反转码3
4.1.4双极性8零替换码3
4.1.5曼彻斯特码4
4.1.6差分曼彻斯特码5
4.1.7多电平码7
4.1.8双二进制码7
4.1.9密勒码9
4.1.10高密度双极性3零码10
4.2数字编码波形在网页上的显示原理12
4.2.1网页中线条的绘制12
4.2.2波形图的保存原理13
五、课程设计总结13
六、参考文献13
附件具体分工13
前言
随着计算机和互联网的普及,网页应用程序已经成为时代的主流。
本课程设计主要基于.NET开发,实现通信过程中数字数据编码的波形生成器。
利用ASP.NET动态网页技术,通过网页的形式实现和显示波形图,完成单极性编码、极化编码、双极性编码的所有波形的设计,使用户能够像使用本地应用程序一样在互联网上实现对数字的数据编码,并能够方便快捷的讲显示波形保存为本地图片文件。
一、课程设计目的
课程设计是“ASP.NET动态网页设计”课程的一个重要的实践性环节,其目的是使我们:
1.进一步巩固和加深“ASP.NET动态网页设计”课程的基本知识,了解ASP动态网页设计知识在实际中的应用。
2.综合运用“ASP.NET动态网页设计”课程的理论及生产实际知识去分析和解决问题,进行的相关训练。
3.学习ASP.NET动态网页设计的方法,了解和掌握网站的设计过程和进行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是网站功能规划的能力和实现相关功能的能力。
4.通过系统的分析、系统设计、数据库设计和功能的实现等,培养ASP.NET动态网页设计的基本技能。
5.实现数字数据编码波形生成器的实现与图片的保存。
二、课程设计的要求
1.项目设计符合专业课程要求。
2.设计报告要求格式正确,要素完整,层次清楚,思路清晰,文字流畅。
实现以下类型数据的编码:
二电平码、差分码、双极性信号交替反转码、双极性8零替换码、曼彻斯特码、差分曼彻斯特码、多电平自然码、多电平码格雷码、双二进制码、密勒码、高密度双极性3零码。
3.实现数字的数据编码后能把数据的编码图像直接导出。
三、课程设计需求分析
本课程设计主要针对的是老师和学生人群,把数字数据的各种编码(二电平码、差分码、交替反转码、曼彻斯特码、差分曼彻斯特码、密勒码、多电平码、二进制编码、密勒码和高密度双极性3零码等)通过网页的形式进行显示并能够快速保存。
主要应用ASP.NET动态网络技术,C#图形技术,实现数字数据的各种编码、图片的显示及保存,在实现波形的同时,提供良好的编码原理帮助功能,使用者能够结合编码原理与图形,来更好的掌握各种编码。
四、课程设计的原理
4.1数字数据各种编码原理
数字数据基带信号常用码型有二电平码、差分码、交替反转码(AMI)、曼彻斯特码、差分曼彻斯特码、密勒码、多电平码、二进制编码、密勒码和高密度双极性3零码等。
4.1.1二电平码
电平码是最简单、最基本的一种码型,它采用两种不同的电平来分别表示二进制中的0和1,最为常见的方法是采用一个正电平表示0,用一个负电平表示1,这种码型被称为非归零电平码(NRZL)。
非归零电平码对数据流110001011010进行编码如图2所示:
图2非归零电平码
4.1.2差分码
与二电平码不同,差分码是一种以电平跳转状况来表示数据信息的码型。
非归零反相码(NRZ-1,NonReturntoZero-Invertonones)就是一种差分码。
采用这种编码时,如果传输一个比特的起始时刻电平发生了跳转,那么这个比特就表示二进制的1;如果此刻电平没有发生跳转,那么这个比特就代表二进制的0。
非归零反相码对数据流110001011010进行编码如图3所示:
图3非归零反相码
4.1.3双极性信号交替反转码
双极性信号交替反转码用无电压的状态表示二进制0,用交替的正、负电平表示二进制1。
图4描述了用双极性信号交替反转码对数据110001011010进行编码的情况。
图4双极性信号交替反转码
4.1.4双极性8零替换码
8零替换码(B8ZS,Bipolarwith8-ZeroSubstitution)是北美地区使用的一种AMI变形码,它在一定程度上解决了为长0串提供同步信息的问题。
B8ZS通过对连续8个比特0进行替换来实现上述功能。
8零替换码的具体替换方法如图5所示:
图58零替换码的交替方式
实现代码如下:
先进行编码,将一输入的一串编码转换成另一串编码,然后根据变换后的编码画图。
变换代码如下:
stringa=TextBox1.Text;
stringm="";
stringc="";
intb=a.Length;
ints=0;
inth=0;
for(intt=1;t<=b;t++)
{
if(a.Substring(t-1,1)=="1")
{
s=s+1;
if(s%2==1)
{
m=m+"1";
c="1";
}
if(s%2==0)
{
m=m+"-";
c="-";
}
h=0;
}
if(a.Substring(t-1,1)=="0")
{
m=m+"0";
h=h+1;
if(h==8&&c=="1")
{
m=m.Substring(0,t-8)+"0001-0-1";
h=0;
}
if(h==8&&c=="-")
{
m=m.Substring(0,t-8)+"000-101-";
h=0;
}
}
4.1.5曼彻斯特码
曼彻斯特码(ManchesterEncoding)是一种将出现在比特中点位置的电平跳变既作为数据信息又作为同步信息的裂相码。
它以在比特中点位置上出现的从负电平到正电平的跳变表示二进制的1,将此刻出现从正电平到负电平的跳变表示二进制的0。
图6描述了用曼彻斯特码对数据110001011010进行编码的情况。
图6曼彻斯特码
4.1.6差分曼彻斯特码
差分曼彻斯特码(DifferentialManchesterEncoding)是一种融入了差分码特点的裂相码这种码型以比特中点位置的电平跳转作为同步信息,以比特开始时刻是否出现电平跳变的情况作为数据信息。
若在比特开始时刻出现电平跳变,则该比特表示0,否则表示1。
图7描述了用差分曼彻斯特码对数据110001011010进行编码的情况。
图7差分曼彻斯特码
代码如下:
先进行编码,将一输入的一串编码转换成另一串编码,然后根据变换后的编码画图。
变换代码如下:
stringa=TextBox1.Text;
stringc1="10";
stringc0="01";
stringm="";
inth=0;
if(a[0]=='1')
{
m+=c1;
}
else
{
m+=c0;
}
for(inti=1;i { if(a[i-1]==a[i]&&a[i]=='1') { if(m.Substring(h,2)==c1) { m+=c0; h+=2; } else { m+=c1; h+=2; } } elseif(a[i-1]==a[i]&&a[i]=='0') { if(m.Substring(h,2)==c1) { m+=c1; h+=2; } else { m+=c0; h+=2; } } elseif(a[i-1]! =a[i]) { if(a[i-1]=='1'&&a[i]=='0') { if(m.Substring(h,2)==c1) { m+=c1; h+=2; } else { m+=c0; h+=2; } } elseif(a[i-1]=='0'&&a[i]=='1') { if(m.Substring(h,2)==c1) { m+=c0; h+=2; } else { m+=c1; h+=2; } } } } 4.1.7多电平码 多电平码是一种以M个电平状态表示由n个比特组成的码元的编码(其中n与M的关系是n=log2M)。 较为常见的多电平码有自然码和格雷码。 采用四电平自然码和四电平格雷码对数据001110011000进行编码的详细情况如图8、图9所示: 图8四电平自然码 图9四电平格雷码 4.1.8双二进制码 双二进制码是一种通过电平状态表示数据信息的码型,它用无电压状态表示二进制中的1,用正、负电平交替表示二进制的0。 当两个比特0之间出现奇数个比特1时,则位置靠后的那个比特0需改变电平极性。 图10描述了用双二进制码对数据110001011010进行编码的情况。 图10双二进制码 代码如下: 先进行编码,将一输入的一串编码转换成另一串编码,然后根据变换后的编码画图。 变换代码如下: stringa=TextBox1.Text; stringm=""; intb=a.Length; inth=0; ints=0; for(intt=1;t<=b;t++) { if(a.Substring(t-1,1)=="1") { m=m+"0"; if(h==1) { s=s+1; } } if(a.Substring(t-1,1)=="0") { h=1; if(s%2==1) { m=m+"_"; } if(s%2==0) { m=m+"1"; } } } 4.1.9密勒码 密勒码也是一种利用电平的跳变表示数据信息的码型。 它以位于比特中的电平跳转表示二进制的1,而比特中点没有出现电平跳转时则表示二进制的0。 若当前传输的比特0后面紧跟另一个比特0,则该比特0的传输要进行电平跳转。 图11描述了用密勒码对数据110001011010进行编码的情况。 图11密勒码 代码如下: 先进行编码,将一输入的一串编码转换成另一串编码,然后根据变换后的编码画图。 变换代码如下: stringa=TextBox1.Text; stringm=""; intb=a.Length; inth=0; for(intt=1;t<=b;t++) { if(a.Substring(t-1,1)=="1") { h=0; if(t==1) { m=m+"10"; } else { if(m.Substring((t-1)*2-1,1)=="0") { m=m+"01"; } if(m.Substring((t-1)*2-1,1)=="1") { m=m+"10"; } } } if(a.Substring(t-1,1)=="0") { h=h+1; if(t==1) { m=m+"00"; } else { if(h==1) { if(m.Substring((t-1)*2-1,1)=="0") { m=m+"00"; } if(m.Substring((t-1)*2-1,1)=="1") { m=m+"11"; } } if(h>=2) { if(m.Substring((t-1)*2-1,1)=="0") { m=m+"11"; } if(m.Substring((t-1)*2-1,1)=="1") { m=m+"00"; } } } } } 4.1.10高密度双极性3零码 高密度双极性3零码(HDB3,High-DensityBipolar3-Zero)是日本和欧洲地区用于处理长0串的一种AMI变形码。 采用这种码型时,如果遇到由连续的4个比特0组成的序列,则根据位于上一次已转换序列和本次待转换序列之间比特1的数量来决定待转换序列的转换模式。 高密度双极性3零码的具体实现方法为: 1.如果上一次已转换的特殊序列与本次转换的序列0000之间有奇数个比特1,则使用特殊序列000D来替代比特序列0000,否则使用特殊序列100D进行替代。 2.替换时特殊序列中的0仍用无用电平状态表示,特殊序列100D中的1仍用正电平或负电平表示,其极性与前面相邻最近的比特1极性相反。 特殊序列中的D相当于比特1,也用正电平或负电平表示,但其极性与前面相邻最近的比特1极性相同。 3.接收端通过比较相邻最近的两个比特1的极性来确定需还原序列的位置。 若两个相邻最近的比特1极性相同,则可确定两者中的后一个比特1正是破坏点。 此后接收端便可进行下一步恢复序列的工作。 图12描述了用密勒码对数据100000000010000进行编码的情况。 图12高密度双极性3零码 代码如下: 先进行编码,将一输入的一串编码转换成另一串编码,然后根据变换后的编码画图。 变换代码如下: stringa=TextBox1.Text; stringm=""; stringc=""; intb=a.Length; ints=0; inth=0; for(intp=1;p<=b;p++) { if(a.Substring(p-1,1)=="1") { s=s+1; if(s%2==1) { m=m+"1"; c="1"; } if(s%2==0) { m=m+"-"; c="1"; } h=0; } if(a.Substring(p-1,1)=="0") { m=m+"0"; h=h+1; if(h==4&&s%2==1) { if(c=="1") { m=m.Substring(0,p-4)+"0001"; s=s+1; } if(c=="-") { m=m.Substring(0,p-4)+"000-"; } h=0; } if(h==4&&s%2==0) { if(c=="1") { m=m.Substring(0,p-4)+"-00-"; } if(c=="-") { m=m.Substring(0,p-4)+"1001"; s=s+2; } h=0; } } } 4.2数字编码波形在网页上的显示原理 4.2.1网页中线条的绘制 在网页中绘制线条主要使用的是bitmap类,简单的线条绘制如下: Bitmapimg=newBitmap(600,400);//定义一个画板 Graphicsg=Graphics.FromImage(img); Penp=newPen(Color.blue,2);//定义一个蓝色宽度为2的画笔 g.DrawLine(p,10,10,100,100);//在画板上画直线,起始坐标为(10,10),终点坐标为(100,100) img.Dispose(); 4.2.2波形图的保存原理 在网页中使用img.Save函数实现图片的保存,例如: img.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Gif); 五、课程设计总结 本次课程设计顺利完成,具体实现了数字数据编码波形生成器的实现以及输入数据的验证,未来将需要扩充的是图片的保存以及打印。 本次实验的缺陷是图片出来后无法返回主页。 从根本上进一步的提高了我们每个人在学习和课程设计中的学习能力、编程能力和动手能力。 本次课程设计相对于以往课程设计来说,题目难度比较大,创新性高,对于每位同学都是一种挑战。 每一个成功的课程设计,都需要一个好的团体,一个好的目标,一个好的方法。 一个好的团体,从每个人的长处出发,各有分工,人人参与。 一个好的目标,进行最严密的分析,真正理解题目要求,确定应该做什么需要考虑什么。 一个好的方法,运用最精粹的算法最简约的代码语言来实现目标要求。 从零点做起,通过图书、互联网网络查询搜索,发现问题解决问题。 这次实验使我们更深层次的学习和掌握了ASP.NET课程知识,并了解到了现实社会中ASP.NET的发展前景。 这些是课程设计后感触最深的。 六、参考文献 【1】潘新民.计算机通信技术.北京: 电子工业出版社,2005 【2】李千目.严哲.ASP.NET程序设计与应用开发.北京: 清华大学出版社,2007 【3】张立.C#2.0完全自学手册.北京: 机械工业出版社,2001 附件具体分工 吴赛和秦永姣具体负责页面设计、二电平码和差分码的实现(占全部的30%);陈正伟和张涛负责课程设计报告、多电平自然码和多电平格雷码的实现(占全部的30%);李会贞、郭瑜瑜和张向云(组长)负责双极性信号交替反转码、双极性8零替换码、曼彻斯特码、差分曼彻斯特码、密勒码、高密度双极性3零码和双二进制码七种编码的实现(占全部的40%)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 数据 编码 波形 生成器 设计 实现