turbo_ring_encode.m

来自「介绍了turbo码的编码和通用siso译码模块」· M 代码 · 共 31 行

M
31
字号
function [z,alpha]=turbo_ring_encode(x,N,g,puncture,M)
% clc
% clear
% puncture=1;
% M=2;
% N=10;
% g=[1 1 1;1 0 1];
% x=round(rand(1,N));
[alpha,S]=H_S_Random(N);  %%%% 交织
x1=x(alpha);
y(1,:)=x;
yy1 = ring_rsc_encode(M,g,x);
y(2,:)=yy1(2,:);
yy2 = ring_rsc_encode(M,g,x1);
y(3,:)=yy2(2,:);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if puncture==0
    for i=1:floor(N/2)        %%%% 删余
        yy(2*i-1)=y(2,2*i-1);
        yy(2*i)=y(3,2*i);
    end
    z(1,:)=y(1,:);
    z(2,:)=yy;
elseif puncture==1                    %%%% 不删余
    z=y;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
a=size(z);
z=reshape(z,1,a(1)*length(x));
z=2*z-M+1;

⌨️ 快捷键说明

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