HDB3编码程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HDB3码 HDB3码 先把消息变为AMI码,然后检查AMI码的连“0”情况,当无三个连“0”以上的情况时,这时的AMI码就是HDB3码。 当代码序列中出现4个连“0”码或超过4个连“0”码时,把连“0”段按4个“0”分节,即“0000”,并使第4个“0”码变为“1”码,用V脉冲表示。这样可以消除长连“0”现象。为了便于识别V脉冲,使V脉冲极性与前一个“1”脉冲极性相同。这样就破坏了AMI?码极性交替的规律,所以V脉冲为破坏脉冲,把V脉冲和前3个连“0”称为破坏节“000V”; 为了使脉冲序列仍不含直流分量,则必须使相邻的破坏点V脉冲极性交替; 为了保证②、③两条件成立,必须使相邻的破坏点之间有奇数个“1”码。如果原序列中破坏点之间的“1”码为偶数个,则必须补为奇数,即将破坏节中的第一个“0”码变为“1”,用B脉冲表示。这时破坏节变为“B00V”形式。B脉冲极性与前一“1”脉冲极性相反,而B脉冲极性和V脉冲极性相同。如: (a)代码: 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 (b)AMI码: 0 +1 0 0 0 0 -1 +1 0 0 0 0 0 -1 0 +1 (c)加V: 0 +1 0 0 0 V+ -1 +1 0 0 0 V- 0 -1 0 +1 (c)加B’并调整B及B’极性: 0 +1 0 0 0 V+ -1 +1 B’- 0 0 V- 0 +1 0 -1 (e)HDB3码 0 +1 0 0 0 +1 -1 +1 -1 0 0 -1 0 +1 0 -1 C语言程序如下: #includestdio.h main() { char?s[]; int c,i,a,b,e,u,n,v,B;// 电平??“u”?代表负电平; ?“n”?代表?正电平;v为v脉冲;B为B脉冲;abe为计数变量 printf(输入数据:\n); ?scanf(%s,s);//扫描数据 c=strlen(s);//得出S的长度 for(i=0;i=c;i++)//转为 AMI码, 即“1”码变为“+1”、“- { if(s[i]==1) a++; If(a%2) s[i]=n1; else s[i]=u1; } for(i=0;i=c;i++)//加v, 消除长连四个“0” { if(s[i]==0) { b++; if(b==4) {e++; if(e%2) s[i]=nv; else s[i]=uv;//实现极性交替 } } else b=0; } for(i=4;i=c;i++)//加uB, 使相邻的破坏点之间有奇数个“1” { if(s[i]==nvs[i-4]==u1) s[i-3]=nB; if(s[i]== uvs[i-4]== n1) s[i-3]=uB; } /*---------------- ----------------*/ for(i=4;i=c;i++)//最终的HDB3码; { if(s[i]==nv||s[i]==nB) s[i]=n1; if(s[i]==uv||s[i]==uB) s[i]=u1; } printf(%s\n,s); }

文档评论(0)

138****7331 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档