⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sttc_code.m

📁 STTC和OFDM编程
💻 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 + -