📄 sttc_code.m
字号:
function output=STTC_code(N)
%------------------------------------------------------
%空时格状码的编码
%------------------------------------------------------
Frame=N;
temp1=[round(rand(1,Frame)),0];
temp2=[round(rand(1,Frame)),0];
state=zeros(1,Frame+2);
send1=zeros(1,Frame+1);
send2=zeros(1,Frame+1);
state(1)=0;
for i=2:1:Frame+2
if temp1(i-1)==0 & temp2(i-1)==0
if state(i-1)==0
state(i)=0;send1(i-1)=1*sqrt(1/2); send2(i-1)=1*sqrt(1/2);
elseif state(i-1)==1
state(i)=0;send1(i-1)=j*sqrt(1/2); send2(i-1)=1*sqrt(1/2);
elseif state(i-1)==2
state(i)=0;send1(i-1)=-1*sqrt(1/2);send2(i-1)=1*sqrt(1/2);
elseif state(i-1)==3
state(i)=0;send1(i-1)=-j*sqrt(1/2);send2(i-1)=1*sqrt(1/2);
end
elseif temp1(i-1)==0 & temp2(i-1)==1
if state(i-1)==0
state(i)=1;send1(i-1)=1*sqrt(1/2);send2(i-1)=j*sqrt(1/2);
elseif state(i-1)==1
state(i)=1;send1(i-1)=j*sqrt(1/2);send2(i-1)=j*sqrt(1/2);
elseif state(i-1)==2
state(i)=1;send1(i-1)=-1*sqrt(1/2);send2(i-1)=j*sqrt(1/2);
elseif state(i-1)==3
state(i)=1;send1(i-1)=-j*sqrt(1/2);send2(i-1)=j*sqrt(1/2);
end
elseif temp1(i-1)==1 & temp2(i-1)==0
if state(i-1)==0
state(i)=2;send1(i-1)=1*sqrt(1/2);send2(i-1)=-1*sqrt(1/2);
elseif state(i-1)==1
state(i)=2;send1(i-1)=j*sqrt(1/2);send2(i-1)=-1*sqrt(1/2);
elseif state(i-1)==2
state(i)=2;send1(i-1)=-1*sqrt(1/2);send2(i-1)=-1*sqrt(1/2);
elseif state(i-1)==3
state(i)=2;send1(i-1)=-j*sqrt(1/2);send2(i-1)=-1*sqrt(1/2);
end
elseif temp1(i-1)==1&temp2(i-1)==1
if state(i-1)==0
state(i)=3;send1(i-1)=1*sqrt(1/2);send2(i-1)=-j*sqrt(1/2);
elseif state(i-1)==1
state(i)=3;send1(i-1)=j*sqrt(1/2);send2(i-1)=-j*sqrt(1/2);
elseif state(i-1)==2
state(i)=3;send1(i-1)=-1*sqrt(1/2);send2(i-1)=-j*sqrt(1/2);
elseif state(i-1)==3
state(i)=3;send1(i-1)=-j*sqrt(1/2);send2(i-1)=-j*sqrt(1/2);
end
end
end
State=state;
output=[send1;send2];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -