基带信号常用码型转换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档