?? turbo_code.m
字號:
function turbo_code=turbo_code(data)
%進行turbo編碼,data是輸入數(shù)據(jù)turbo_code是編碼后的turbo碼
g=[1 0 1 1;1 1 0 1];
K=2752;
f1=143;
f2=172;
x1=data;
for i=0:K-1
j=rem((f1*i+f2*i*i),K);
x2(i+1)=x1(j+1);
end
%完成交織,K是交織長度,也是data的數(shù)據(jù)長度
for i=1:3
x1(K+i)=0;
x2(K+i)=0;
end
%將最后3位設(shè)為0,實現(xiàn)狀態(tài)的歸0
[n,k]=size(g);
m=k-1;
state1=zeros(1,3);
state2=zeros(1,3);
%初始狀態(tài)設(shè)為0
for i=1:K+3
a_k1=rem(g(1,:)*[x1(i) state1]',2);
a_k2=rem(g(1,:)*[x2(i) state2]',2);
output1(i)=rem(g(2,:)*[a_k1 state1]',2);
output2(i)=rem(g(2,:)*[a_k2 state2]',2);
state1=[a_k1,state1(1:m-1)];
state2=[a_k2,state2(1:m-1)];
end
%實現(xiàn)編碼,三路輸出x1,output1,output2
n=1;
for i=1:K+3
y(n)=x1(i);
y(n+1)=output1(i);
y(n+2)=output2(i);
n=n+3;
end
%實現(xiàn)三路數(shù)據(jù)合并為一路串行數(shù)據(jù)
turbo_code=y;
%輸出的數(shù)據(jù)為turbo碼,作為返回值
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -