密勒码编码,有问题吗?运行不出来啊?
grid=100;
t=0:1/grid:length(x); 定义时间序列
i=1; 由于第一码元的编码不定,我们直接给出
if(x(i)==1) 输入为1,则
for j=1:grid/2
y(grid/2*(2*i-2)+j)=0; %前半时间为0
y(grid/2*(2*i-1)+j)=1; %后半时间为1
end
else
for j=1:grid %反之,输入为0
y(grid*(i-1)+j)=0; %所有时间为0
end
end
for i=2:length(x) %开始进行密勒编码
if(x(i)==1) %输入信息为1
for j=1:grid/2
y(grid/2*(2*i-2)+j)=y(grid/2*(2*i-3)+grid/4);
%前半时间与前一码元后半时间取值相同
y(grid/2*(2*i-1)+j)=1-y(grid/2*(2*i-2)+j);
%后半时间与前半时间相反
end
else
if(x(i-1)==1) %反之,若前一信息为1,输入信息0
for j=1:grid
y(grid*(i-1)+j)=y(grid/2*(2*i-3)+grid/4);
%所有时间与前一码元后半时间值相同
end
else %否则,前一信息为0
for j=1:grid
y(grid*(i-1)+j)=1-y(grid/2*(2*i-3)+grid/4);
所有时间与前一码元后半时间值相反
end;end; end;end