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

📄 turbo_code.m

📁 是一个根据最新LTE标准写的一个链路实现程序和信道估计程序
💻 M
字号:
function turbo_code=turbo_code(data)
%进行turbo编码,data是输入数据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的数据长度
for i=1:3
    x1(K+i)=0;
    x2(K+i)=0;
end
%将最后3位设为0,实现状态的归0
[n,k]=size(g);
m=k-1;
state1=zeros(1,3);
state2=zeros(1,3);
%初始状态设为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
%实现编码,三路输出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
%实现三路数据合并为一路串行数据
turbo_code=y;
%输出的数据为turbo码,作为返回值

⌨️ 快捷键说明

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