data=[1 1 1 0 1 0 0 0 1 1 0 0 1 0];
t0=400;
t1=0:1/t0:length(data); %给出相应的时间序列
y=1/t0:1/t0:length(data);
for i=1:length(data)
if data(i)==1
for j=1:t0
y((i-1)*t0+j)=1;
end
else
for j=1:t0
y((i-1)*t0+j)=0;
end
end
end
figure(1);
subplot(1,1,1)
y1=[y data(i)];
plot(t1,y1);
title('单极性非归零码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
data=[1 1 1 0 1 0 0 0 1 1 0 0 1 0];
t0=200;
t1=0:1/t0:length(data); %给出相应的时间序列
y=1/t0:1/t0:length(data);
for i=1:length(data)
if data(i)==1
for j=1:t0
y((i-1)*t0+j)=1;
end
else
for j=1:t0
y((i-1)*t0+j)=0;
end
end
end
figure(2)
subplot(2,1,1)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,2*y1-1);
title('双极性非归零码');
axis([0,i,-1.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
for i=1:length(data)
if data(i)==1
for j=1:t0
y((i-1)*t0+j)=1;
end
else
for j=1:t0
y((i-1)*t0+j)=0;
end
end
end
subplot(2,1,2)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('双极性非归零码解码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
data=[1 1 1 0 1 0 0 0 1 1 0 0 1 0];
t0=200;
t1=0:1/t0:length(data); %给出相应的时间序列
y=1/t0:1/t0:length(data);
for i=1:length(data)
if data(i)==1
for j=1:(t0/2)
y((2*i-2)*t0/2+j)=1;
y((2*i-1)*t0/2+j)=0;
end
else
for j=1:t0
y((i-1)*t0+j)=0;
end
end
end
figure(3);
subplot(2,1,1)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('单极性归零码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
for i=1:length(data)
if y((2*i-2)*t0/2+t0/4)==1&&y((2*i-1)*t0/2+t0/4)==0
for j=1:t0
y((i-1)*t0+j)=1;
end
else
for j=1:t0
y((i-1)*t0+j)=0;
end
end
end
subplot(2,1,2)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('单极性归零码解码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
data=[1 1 1 0 1 0 0 0 1 1 0 0 1 0];
t0=200;
t1=0:1/t0:length(data); %给出相应的时间序列
y=1/t0:1/t0:length(data);
for i=1:length(data)
if data(i)==1
for j=1:(t0/2)
y((2*i-2)*t0/2+j)=1;
y((2*i-1)*t0/2+j)=0;
end
else
for j=1:(t0/2)
y((2*i-2)*t0/2+j)=-1;
y((2*i-1)*t0/2+j)=0;
end
end
end
figure(4);
subplot(2,1,1)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('双极性归零码');
axis([0,i,-1.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
for i=1:length(data)
if y((2*i-2)*t0/2+t0/4)==1&&y((2*i-1)*t0/2+t0/4)==0
for j=1:t0
y((i-1)*t0+j)=1;
end
else
for j=1:t0
y((i-1)*t0+j)=0;
end
end
end
subplot(2,1,2)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('双极性归零码解码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
data=[1 1 1 0 1 0 0 0 1 1 0 0 1 0];
t0=200;
t1=0:1/t0:length(data); %给出相应的时间序列
y=1/t0:1/t0:length(data);
for j=1:t0
y(j)=1;
end
for i=2:length(data)
if (data(i)~=y((i-1)*t0))
for j=1:t0
y((i-1)*t0+j)=1;
end
else
for j=1:t0
y((i-1)*t0+j)=0;
end
end
end
figure(5);
subplot(2,1,1)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('传号差分码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
yx=1/t0:1/t0:length(data);
for j=1:t0
yx(j)=1;
end
for i=2:length(data)
if y((i-1)*t0+t0/2)==0
for j=1:t0
yx((i-1)*t0+j)=y((i-2)*t0+t0/2);
end
else
for j=1:t0
if y((i-2)*t0+t0/2)==0
yx((i-1)*t0+j)=1;
else
yx((i-1)*t0+j)=0;
end
end
end
end
subplot(2,1,2)
y1=[yx yx((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('传号差分码解码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
data=[1 1 1 0 1 0 0 0 1 1 0 0 1 0];
t0=200;
t1=0:1/t0:length(data); %给出相应的时间序列
y=1/t0:1/t0:length(data);
for j=1:t0
y(j)=0;
end
for i=2:length(data)
if (data(i)~=y((i-1)*t0))
for j=1:t0
y((i-1)*t0+j)=0;
end
else
for j=1:t0
y((i-1)*t0+j)=1;
end
end
end
figure(6);
subplot(2,1,1)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('空号差分码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
yx=1/t0:1/t0:length(data);
for j=1:t0
yx(j)=1;
end
for i=2:length(data)
if y((i-1)*t0+t0/2)==1
for j=1:t0
yx((i-1)*t0+j)=y((i-2)*t0+t0/2);
end
else
for j=1:t0
if y((i-2)*t0+t0/2)==0
yx((i-1)*t0+j)=1;
else
yx((i-1)*t0+j)=0;
end
end
end
end
subplot(2,1,2)
y1=[yx yx((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('空号差分码解码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
data=[1 1 1 0 1 0 0 0 1 1 0 0 1 0];
t0=200;
t1=0:1/t0:length(data); %给出相应的时间序列
y=1/t0:1/t0:length(data);
for i=1:length(data)
if data(i)==1
for j=1:(t0/2)
y((2*i-2)*t0/2+j)=-1;
y((2*i-1)*t0/2+j)=1;
end
else
for j=1:(t0/2)
y((2*i-2)*t0/2+j)=1;
y((2*i-1)*t0/2+j)=-1;
end
end
end
figure(7);
subplot(2,1,1)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('数字双相码');
axis([0,i,-1.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
for i=1:length(data)
if y((2*i-2)*t0/2+t0/4)==-1&&y((2*i-1)*t0/2+t0/4)==1
for j=1:t0
y((i-1)*t0+j)=1;
end
else
for j=1:t0
y((i-1)*t0+j)=0;
end
end
end
figure(7);
subplot(2,1,2)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('数字双相码解码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
data=[1 1 1 0 1 0 0 0 1 1 0 0 1 0];
t0=200;
t1=0:1/t0:length(data); %给出相应的时间序列
y=1/t0:1/t0:length(data);
for j=1:t0/2
y(j)=-1;
end
for j=t0/2+1:t0
y(j)=1;
end
for i=2:length(data)
if data(i)==1
for j=1:(t0/2)
y((2*i-2)*t0/2+j)=y((i-2)*t0+3/4*t0);
y((2*i-1)*t0/2+j)=-y((i-2)*t0+3/4*t0);
end
else
if(data(i-1)==1)
for j=1:t0
y((i-1)*t0+j)=y((i-2)*t0+3/4*t0);
end
end
if(data(i-1)==0)
for j=1:t0
y((i-1)*t0+j)=-y((i-2)*t0+t0/2);
end
end
end
end
figure(8);
subplot(2,1,1)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('密勒码');
axis([0,i,-1.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
for i=1:length(data)
if y((2*i-2)*t0/2+t0/4)==-1&&y((2*i-1)*t0/2+t0/4)==1||y((2*i-2)*t0/2+t0/4)==1&&y((2*i-1)*t0/2+t0/4)==-1
for j=1:t0
y((i-1)*t0+j)=1;
end
else
for j=1:t0
y((i-1)*t0+j)=0;
end
end
end
subplot(2,1,2)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('密勒码解码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
data=[1 1 1 0 1 0 0 0 1 1 0 0 1 0];
t0=200;
t1=0:1/t0:length(data); %给出相应的时间序列
y=1/t0:1/t0:length(data);
s=1;
for j=1:t0
y(j)=1;
end
for i=2:length(data)
if data(i)==1
s=0-s;
for j=1:t0
y((i-1)*t0+j)=s;
end
else
for j=1:(t0/2)
y((2*i-2)*t0/2+j)=-1;
y((2*i-1)*t0/2+j)=1;
end
end
end
figure(9);
subplot(2,1,1)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('信号反转码');
axis([0,i,-1.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
for i=1:length(data)
if y((2*i-2)*t0/2+t0/4)==-1&&y((2*i-1)*t0/2+t0/4)==1
for j=1:t0
y((i-1)*t0+j)=0;
end
else
for j=1:t0
y((i-1)*t0+j)=1;
end
end
end
subplot(2,1,2)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('信号反转码解码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
data=[1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1];
t0=200;
t1=0:1/t0:length(data); %给出相应的时间序列
y=1/t0:1/t0:length(data);
s=1;
for j=1:t0/2
y(j)=1;
end
for j=t0/2+1:t0
y(j)=0;
end
for i=2:length(data)
if data(i)==1
s=0-s;
for j=1:t0/2
y((2*i-2)*t0/2+j)=s;
y((2*i-1)*t0/2+j)=0;
end
else
for j=1:t0
y((i-1)*t0+j)=0;
end
end
end
figure(10);
subplot(2,1,1)
y1=[y y(13*t0+3/4*t0)];
plot(t1,y1);
title('AMI码');
axis([0,i,-1.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
for i=1:length(data)
if y((2*i-2)*t0/2+t0/4)==0&&y((2*i-1)*t0/2+t0/4)==0
for j=1:t0
y((i-1)*t0+j)=0;
end
else
for j=1:t0
y((i-1)*t0+j)=1;
end
end
end
subplot(2,1,2)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('AMI解码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
data=[1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1];
t0=200;
t1=0:1/t0:length(data); %给出相应的时间序列
y=1/t0:1/t0:length(data);
cnt_0 = 0; %记录连续0的个数
cnt_1=0;
s=1;
for i=1:length(data)
if(data(i)==0)
cnt_0=cnt_0+1;
for j=0:t0
y((i-1)*t0+j)=0;
end
if(cnt_0 >= 4)
cnt_0=0;
if(rem(cnt_1,2)==1)
cnt_1=0;
for j=1:(t0/2)
y((2*i-2)*t0/2+j)=-s;
y((2*i-1)*t0/2+j)=0;
end
else
cnt_1=0;
for j=1:(t0/2)
y((2*(i-3)-2)*t0/2+j)=s;
y((2*(i-3)-1)*t0/2+j)=0;
y((2*i-2)*t0/2+j)=s;
y((2*i-1)*t0/2+j)=0;
end
s=-s;
end
end
else
for j=1:(t0/2)
y((2*i-2)*t0/2+j)=s;
y((2*i-1)*t0/2+j)=0;
end
s=-s;
cnt_0=0;
cnt_1=cnt_1+1;
end
end
figure(11)
subplot(2,1,1)
y1=[y y((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('HDB3码');
axis([0,i,-1.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')
s=1;
for i=1:length(data)
if y((2*i-2)*t0/2+t0/4)==0
for j=1:t0
yx((i-1)*t0+j)=0;
end
elseif (y((2*i-2)*t0/2+t0/4)==-s)
for j=1:t0
yx((i-1)*t0+j)=0;
end
if i>4&&y((i-4)*t0+t0/4)~=0
for j=1:t0
yx((i-4)*t0+j)=0;
end
end
else
for j=1:t0
yx((i-1)*t0+j)=1;
end
s=-s;
end
end
subplot(2,1,2)
y1=[yx yx((i-1)*t0+3/4*t0)];
plot(t1,y1);
title('HDB3解码');
axis([0,i,-0.1,1.1]);
xlabel('时间 t/s')
ylabel('幅度A')