%单极性非归零码 snrz.m
function y=snrz(x)
%本函数实现将输入的一段代二进制代码编为相应的单极性非归零码输出
%输入X为二进制码,输出Y为编好的码
%给出计算每一个码元的点数,因为我们只有用离散的点来得出连续的函数表示
grid=300;
t=0:1/grid:length(x); %给出相应的时间序列
for i=1:length(x) %计算码元的值
if(x(i)==1) %若输入信息为1
for j=1:grid, %该码元对应的点值取1
y((i-1)*grid+j)=1;
end
else
for j=1:grid, %反之信息为0,码元对应点值取0
y((i-1)*grid+j)=0;
end; end; end
y=[y,x(i)]; %给序列Y加上最的一位,便于做图
M=max(y); m=min(y);
subplot(2,1,1);
plot(t,y);axis([0,i,m-0.1,M+0.1]);
title('1 0 0 1 1 0 0 0 0 1 0 1');
%单极性归零码 srz.m
function y=srz(x)
%本函数实现将输入的一段代二进制代码编为相应的单极性归零码输出
%输入X为二进制码,输出Y为编好的码
grid=200;
t=0:1/grid:length(x); %给出相应的时间序列
for i=1:length(x) %进行码型变换
if(x(i)==1) %若输入信息为1
for j=1:grid/2
y(grid/2*(2*i-2)+j)=1; %定义前半时间值为1
y(grid/2*(2*i-1)+j)=0; %定义后半时间值为0
end
else
for j=1:grid/2 %反之,输入信息为○
y(grid*(i-1)+j)=0; %定义所有时间值为○
end; end; end
y=[y,x(i)]; %给序列Y加上最的一位,便于做图
M=max(y); m=min(y);
plot(t,y);axis([0,i,m-0.1,M+0.1]);
title('1 0 0 1 1 0 0 0 0 1 0 1');
%双极性非归零码 dnrz.m
function y=snrz(x)
%本函数实现将输入的一段代二进制代码编为相应的双极性非归零码输出
%输入X为二进制码,输出Y为编好的码
%给出计算每一个码元的点数,因为我们只有用离散的点来得出连续的函数表示
grid=300;
t=0:1/grid:length(x); %给出相应的时间序列
for i=1:length(x) %计算码元的值
if(x(i)==1) %若输入信息为1
for j=1:grid, %该码元对应的点值取1
y((i-1)*grid+j)=1;
end
else
for j=1:grid, %反之信息为0,码元对应点值取0
y((i-1)*grid+j)=-1;
end; end; end
y=[y,x(i)]; %给序列Y加上最的一位,便于做图
M=max(y); m=min(y);
subplot(2,1,1);
plot(t,y);axis([0,i,m-0.1,M+0.1]);
title('1 0 0 1 1 0 0 0 0 1 0 1');
%双极性归零码 drz.m
function y=drz(x)
%本函数实现将输入的一段代二进制代码编为相应的双极性归零码输出
%输入X为二进制码,输出Y为编好的码
%给出计算每一个码元的点数,因为我们只有用离散的点来得出连续的函数表示
grid=300;
t=0:1/grid:length(x); %给出相应的时间序列
for i=1:length(x) %计算码元的值
if(x(i)==1) %若输入信息为1
for j=1:grid/2
<< 上一页 [11] [12] [13] [14] 下一页