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

📄 turboenc_1513.m

📁 turbo 码matlab编译码程序
💻 M
字号:
function y=TurboEnc_1513(x)
%1/2 rate turbo
global I
state=0;
register_num=3;
m=2^(register_num-1);
K=length(x);
for i=1:K
    [next_state,output]=nxt_stat1513(state,x(i));
    Parity_1(i)=output;
    state=next_state;
end
for i=K+1:K+register_num
    [next_state,output]=nxt_stat1513(state,0);
    if floor(next_state/m)==1
        x(i)=1;
        [next_state,output]=nxt_stat1513(state,1);
        Parity_1(i)=output;
        state=next_state;
    else
        x(i)=0;
        Parity_1(i)=output;
        state=next_state;
    end
end
% x is not original x
N=K+register_num;
Interleaver_x=Interleaver(x,I);
if state~=0
    fprintf('\n This programme is failure1\n\n');
else
    for i=1:N
        [next_state,output]=nxt_stat1513(state,Interleaver_x(i));
        Parity_2(i)=output;
        state=next_state;
    end
end
% puncturing
Parity_1=Parity_1(1:2:end);
Parity_2=Parity_2(2:2:end);
if length(Parity_1)>length(Parity_2)
    for i=1:length(Parity_2)                       
        Parity(2*i-1)=Parity_1(i);
        Parity(2*i)=Parity_2(i);
    end
    Parity(2*i+1)=Parity_1(length(Parity_1));
else
    for i=1:length(Parity_2)                       
        Parity(2*i-1)=Parity_1(i);
        Parity(2*i)=Parity_2(i);
    end

end
%
for i=1:N
    y(2*i-1)=x(i);
    y(2*i)=Parity(i);
end


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -