📄 turbocoding.m
字号:
function [data_out,len_out]=turbocoding(data_in,len_in);
%len_in=4*256*4;
%data_in=zeros(1,len_in);
len_out=3*len_in;
data_temp=zeros(1,len_in);
data_out=zeros(1,len_out);
s1=zeros(1,len_in);
s2=zeros(1,len_in);
ad=zeros(1,len_in);
a_cd1=[0,0];
a_cd2=[0,0];
for i=1:len_in
b_cd1=xor(data_in(i),xor(a_cd1(1),a_cd1(2)));
s1(i)=xor(b_cd1,a_cd1(1));
a_cd1(1)=a_cd1(2);
a_cd1(2)=b_cd1;
if(i==len_in)
a_cd1=[0,0];
end
end
%4*4*256 interving
a_inv=[1,0,0,0,0,0,0,0,0,0,0,0];
for i_inv=1:len_in
if(i_inv==1)
ad(i_inv)=1;
else
ad(i_inv)=a_inv(1)*2048+a_inv(2)*1024+a_inv(3)*512+a_inv(4)*256+a_inv(5)*128+a_inv(6)*64+a_inv(7)*32+a_inv(8)*16+a_inv(9)*8+a_inv(10)*4+a_inv(11)*2+a_inv(12)+1;
x_inv=xor(xor(a_inv(1),a_inv(12)),xor(a_inv(4),a_inv(6)));
for j_inv=11:-1:1
a_inv(j_inv+1)=a_inv(j_inv);
end
a_inv(1)=x_inv;
end
data_temp(ad(i_inv))=data_in(i_inv);
end
for i=1:len_in
b_cd2=xor(data_temp(ad(i)),xor(a_cd2(1),a_cd2(2)));
s2(i)=xor(b_cd2,a_cd2(1));
a_cd2(1)=a_cd2(2);
a_cd2(2)=b_cd2;
if(i==len_in)
a_cd2=[0,0];
end
end
data_out=[data_in,s1,s2];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -