- 36
- 0
- 约1.26万字
- 约 14页
- 2017-08-11 发布于重庆
- 举报
基于matlab的码型转换
实验内容:
利用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);
end
end
%%%%%%%%%%%% 译码 %%%%%%%%%%%%
for i=1:length(f);
if e(i)~=0
l(i) = 1;
else
e(i) = 0;
end
end
编码:代码中的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;
end
end
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];
end
r=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;
end
HDB3码型转换
%%%%%%%%%%%% 编码 %%%%%%%%%%%%%
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
end
end
% HDB3编码
num=0; % 连零计数器初始化
yh=yn; % 输出初始化
sign=0; % 极性标志初始化为0
V=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改变为与前一个非零
您可能关注的文档
最近下载
- 个人简历表格填写2021简历模板.docx VIP
- 针灸推拿学习题库(附答案).docx VIP
- 毕业设计(论文)-五边形凸台零件铣削加工.doc VIP
- 2026届山东省淄博市高三上学期期末考试(摸底质量检测)历史试题(含答案).docx VIP
- 常见词组固定搭配.pdf VIP
- 2023年山东泰安中考地理试题及答案.pdf VIP
- 胎动管理专家共识最新2025.pptx
- (小学综合实践课标复习题全.doc VIP
- 0—3岁婴幼儿心理发展与教育 第四章 0-3岁婴幼儿心理发展与教育 课件PPT.pptx VIP
- 0—3岁婴幼儿心理发展与教育 第三章 0-3岁婴幼儿心理发展与教育 课件PPT.pptx VIP
原创力文档

文档评论(0)