gusucode.com > matlab通信工程仿真源码(张德丰等编著)程序书籍 > matlab_code/matlab通信工程仿真源码(张德丰等编著)/第8章/machester.m

    function y=machester(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, 
            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,    %反之,信息为0
            y(grid/2*(2*i-2)+j)=0;     %定义前半时间为1
            y(grid/2*(2*i-1)+j)=1;      %定义后半时间为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函数来实现标记出各码元对应的二元信息
title('1       0        0       1         1        0    0       0        0        1        0        1');