基带信号常用码型转换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通信原理大作业
用matlab仿真
1.幅频失真
S(t)=sint+1/3sin3t,
S’(t)=sint+sin3t;
相频失真
S(t)=sint+1/3sin3t,
S’(t)=sin(t+2pi)+1/3sin(3t+3pi).
程序:
x=0:pi/20:3*pi;
y1=sin(x)+(sin(3*x))/3;
y2=sin(x)+sin(3*x);
y3=sin(x+2*pi)+(sin(3*x+3*pi))/3;
figure(1)
plot(x,y1);
hold on
plot(x,y2,'r-');
legend('S(t)=sint+1/3sin3t','S(t)=sint+sin3t')
figure(2)
plot(x,y1);
hold on
plot(x,y3,'r-');
legend('S(t)=sint+1/3sin3t','S(t)=sin(t+2*pi)+1/3sin(3t+3*pi)')
幅频失真
相频失真
2. 将输入的一串0,1编码
1) 转换成AMI 码 2) 转换成HDB3码 3) 转换成双相码 4) 转换成Miller 码 5) 转换成CMI 码 总流程
开始
输入数组
依次显示五种码形
结束
转换成AMI 码
转换成CMI
码
转换成
HDB3
码
转换成双相码
转换成Miller
码
转化成五种码具体流程
思路:数组xn 中0保持不变;并统计1个数,当为偶数1保持不变;当为奇数1变换为-1 1) 转换成AMI 码 no
no no
得到数组xn
Xn (i )是否=1
num=num+1
num 是否为偶数 得到数组xn 长度k i=1; num=0
yn(i)=xn(i)
yn(i)=xn(i)
yn(i)= -xn(i)
i 是否=k 得到数组yn i=i+1
2) 转换成HDB3码 思路:在AMI 码基础上
1. 当出现第一个四个连0 时v=前一个非0数
2. 当出现四个连0,v 和-v 交替出现
3. 判断破坏脉冲是否成立,如果不成立四个连0的第一个0做相应变换(即添加B ) 以后的1也要取负
得到v(1)
是
否
是
得到数组yn
i=1
yn (i )是否=0 num=num+1 num=0
num 是否=4
v=yn(i-4)
否
否
否 否
否
得到数组yn i=1 sign=1 num=0
yn (i )是否=0
num=num+1
num 是否=4
yh(i)=v(sign)
sign 是否为偶数 yh(i)= -v(sign)
yh(i)是否=yh(i-4) yh(i-3)=yh(i) yh(i:k)=Yh(i:k )
i 是否=k 得到数组yh
i=i+1
3) 转换成双相码
思路:
1.当出现0转换为01 2.当出现1转换为10;
no
no
得到数组xn
得到数组xn 长度k
ys(2i-1)=0;ys(2i-2)=1
Xn(i)是否=0
i=1
ys(2i-1)=1;ys(2i-2)=0
i 是否=k 得到数组ys i=i+1
4) 转换成密勒码 思路:
1.当第一个数出现1时转换成10;否则转换为00
2.以后当出现1时对应的第一个码不变,第二个变化;当出现一个0对应的两个码元都不变;出现连0对应的两个码元都变化。 no
no no
得到数组xn
得到数组xn 长度k
i=1
Xn(i)是否=0
ym(2i-1)=ym(2i-2); ym(2i-2)=~ym(2i-1)
是否为连0
ym(2i-1)=~ym(2i-2); ym(2i-2)=ym(2i-1)
ym(2i-1)=ym(2i-2); ym(2i-2)=ym(2i-1)
i 是否=k 得到数组ym i=i+1
5) 转换成CMI 码 思路:
1.当为0转换为01
2.当为0 时11和00交替出现 no
no
得到数组xn
得到数组xn 长度k
i=1;num=0 Xn(i)是否=1
yc(2i-1)=0;yc(2i-2)=1
num=num+1
num 是否为偶数 yc(2i-1)=0; yc(2i-2)=0
yc(2i-1)=1;yc(2i-2)=1 i=i+1
i 是否=k
得到数组yc
仿真结果:
clear
t=input('请输入一组0,1: ','s');%0,1 之间要有空格隔开xn=str2num(t)
yn=xn;%AMI码
num=0;
for k=1:length(xn)
if xn(k)==1
num=num+1;
if num/2==fix(num/2)
yn(k)=1;
else