matlabhdb编码译码数字信号调制解调

matlabhdb编码译码数字信号调制解调

ID:22779463

大小:770.01 KB

页数:12页

时间:2018-10-31

matlabhdb编码译码数字信号调制解调_第1页
matlabhdb编码译码数字信号调制解调_第2页
matlabhdb编码译码数字信号调制解调_第3页
matlabhdb编码译码数字信号调制解调_第4页
matlabhdb编码译码数字信号调制解调_第5页
资源描述:

《matlabhdb编码译码数字信号调制解调》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、HDB3码的编码和译码1、实验要求:掌握HDB3码的编码规则,利用MATLAB设计并实现HDB3码的编码和译码。2、原理简述:编码规则:  1)先将消息代码变换成AMI码,若AMI码中连0的个数小于4,此时的AMI码就是HDB3码;  2)若AMI码中连0的个数大于3,则将每4个连0小段的第4个0变换成与前一个非0符号(+1或-1)同极性的符号,用表示(+1+,-1-);  3)为了不破坏极性交替反转,当相邻符号之间有偶数个非0符号时,再将该小段的第1个0变换成+B或-B,符号的极性与前一非零符号的相反,并让后面的

2、非零符号从符号开始再交替变化。 例如:  消息代码:100001 0000 11000011  AMI码:+10000-1 0000 +1-10000+1-1  HDB3码:+1000+V-1 000-V +1-1+B00+V-1+1简易编码方法:原理:HDB3码既要包含AMI的交替特性使输出无直流特性,又要不出现四个以上的连0,因此可以先满足后者。  1)把"0000"换为取代节。  规则:先将"0000"分离开来,第一个"0000"直接变为"000V",然后数相邻两个"0000"之间"1"的个数,奇数则变为"000

3、V",偶数则变为"B00V"。  2)更新符号。  根据教材有:B总是与其前面的1或V符号相反,V总是与前面的1或B相符号相同,1总是与前面的V或B符号相反,就可以编符号了。 例如:  消息代码:100001 0000 11000011 0000 0000111 0000 1  中间码:1000V1 000V 11B00V11 B00V B00V111 000V 1HDB3码:+1000+V-1 000-V +1-1+B00+V-1+1-B00-V +B00+V-1+1-1 000-V +1解码规则:1)虽然编码很复杂

4、,但解码规则很简单,若3连“0”前后非零脉冲同极性,则将最后一个非零元素译为零,如+1000+1就应该译成“10000”;若2连“0”前后非零脉冲极性相同,则两零前后都译为零,如-100-1,就应该译为0000.2)再将所有的-1变换成+1后,就可以得到原消息代码。3、程序运行结果运行程序可自定义二进制序列,第一个窗口显示所输入的二进制码元,第二个窗口为HDB3编码后的结果,最后一个窗口为解码后的窗口。4、程序源代码%ch7example6prog1.m%AMI码的编码xn=[101100000001100000010

5、];%输入单极性码yn=xn;%输出yn初始化num=0;%计数器初始化fork=1:length(xn)ifxn(k)==1num=num+1;%"1"计数器ifnum/2==fix(num/2)%奇数个1时输出-1,进行极性交替yn(k)=1;elseyn(k)=-1;endendend%HDB3编码num=0;%连零计数器初始化yh=yn;%输出初始化sign=0;%极性标志初始化为0V=zeros(1,length(yn));%V脉冲位置记录变量B=zeros(1,length(yn));%B脉冲位置记录变量f

6、ork=1:length(yn)ifyn(k)==0num=num+1;%连“0”个数计数ifnum==4%如果4连“0”num=0;%计数器清零yh(k)=1*yh(k-4);%让0000的最后一个0改变为与前一个非零符号相同极性的符号V(k)=yh(k);%V脉冲位置记录ifyh(k)==sign%如果当前V符号与前一个V符号的极性相同yh(k)=-1*yh(k);%则让当前V符号极性反转,以满足V符号间相互极性反转要求yh(k-3)=yh(k);%添加B符号,与V符号同极性B(k-3)=yh(k);%B脉冲位置记

7、录V(k)=yh(k);%V脉冲位置记录yh(k+1:length(yn))=-1*yh(k+1:length(yn));%并让后面的非零符号从V符号开始再交替变化endsign=yh(k);%记录前一个V符号的极性endelsenum=0;%当前输入为“1”则连“0”计数器清零endend%编码完成re=[xn',yn',yh',V',B'];%结果输出:xnAMIHDB3V&B符号%HDB3解码input=yh;%HDB3码输入decode=input;%输出初始化sign=0;%极性标志初始化fork=1:len

8、gth(yh)ifinput(k)~=0ifsign==yh(k)%如果当前码与前一个非零码的极性相同decode(k-3:k)=[0000];%则该码判为V码并将*00V清零endsign=input(k);%极性标志endenddecode=abs(decode);%整流error=sum([xn'-decode']);%解码

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。