- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于matlab的码型转换说明书
PAGE PAGE 30实验内容:利用Matlab软件的GUI界面编程,做一个简单的界面,通过此界面调用相关的程序去实现由抽样判决后的AMI码型、CMI码型和HDB3码型数字序列恢复出原始的PCM脉冲编码信号。实验目的:1,熟悉Matlab的GUI的编程操作,学会运用GUI来建立一个界面2.掌握AMI,CMI,HDB3码型的特点和意义,学会将PCM脉冲编码信号转化为AMI,CMI,HDB3的编码以及AMI,CMI,HDB3解码的方式。实验方法:实验中采用的方法是先建立大概的界面,其中包括输入框、按钮、提示内容及坐标系等。然后再对各种组件设置好属性,并对各个组件编写回调函数,最后进行调试验证饥渴。实验代码:AMI码型转换: %%%%%%%%%%%% 编码 %%%%%%%%%%%%%p = -1;for i=1:length(f); if f(i)==1 e(i) = (-1)*p; p = e(i); else e(i) = f(i); endend%%%%%%%%%%%% 译码 %%%%%%%%%%%%for i=1:length(f); if e(i)~=0 l(i) = 1; else e(i) = 0; endend编码:代码中的f代表着输入字符串转化后的ASCII码,用变量p来实现原信号中1的正负交替。例如,f(1)=1,则e(1)=1,p=1;f(2)=1,则e(2)=-1,p=-1。如此就可以得到正负1交替了。译码:当e(i)不等于0,就把结果等于1。CMI码型转换 %%%%%%%%%%%% 编码 %%%%%%%%%%%%%m=1;p=-1; for i=1:length(f) if(f(i)==1m==1) s(i)=3; m=m*p; else if(f(i)==1m==-1) s(i)=0; m=m*p; else s(i)=1; endend end k=dec2bin(s,2); l=k; x=l(:); y=x; n=str2num(y(1));for i=2:length(y) n=[n str2num(y(i))];end%%%%%%%%%%%% 译码 %%%%%%%%%%%%% if n(1)==0 if n(2)==1 cm=[0]; else cm=[1]; end else cm=[1]; endr=3;while rlength(n) if n(r)==0 if n(r+1)==1 cm=[cm 0]; else cm=[cm 1]; end else cm=[cm 1]; end r=r+2;endHDB3码型转换 %%%%%%%%%%%% 编码 %%%%%%%%%%%%%yn=xn;% 输出yn初始化num=0;% 计数器初始化for k=1:length(xn) if xn(k)==1 num=num+1; % 1计数器 if num/2 == fix(num/2) % 奇数个1时输出-1,进行极性交替 yn(k)=1; else yn(k)=-1; end endend % HDB3编码num=0; % 连零计数器初始化yh=yn; % 输出初始化sign=0; % 极性标志初始化为0V=zeros(1,length(yn));% V脉冲位置记录变量 B=zeros(1,length(yn));% B脉冲位置记录变量for k=1:length(yn) if yn(k)==0 num=num+1; % 连“0”个数计数 if num==4 % 如果4连“0” num=0; % 计数器清零 yh(k)=1*yh(k-4); % 让0000的最后一个0改变为与前一个非零符号相同极性的符号 V(k)=yh(k); % V脉冲位置记录 if yh(k)==sign % 如果当前V符号与前一个V
文档评论(0)