• 大小: 16KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Matlab
  • 标签:

资源简介

MATLAB软件中,用于实现harq技术重传,已经通过测试,可以运行

资源截图

代码片段和文件信息

function [soft_outex_info]=constituent_decoder_max(inapp)
%****************************************************************
% 内容概述:子译码器。
%          利用硬件化的方式实现TURBO码的MAX-LOG-MAP译码
%          生成矩阵按照3GPP标准为[1 1 0 1;1 0 1 1]
%          输入为经过高斯信道的RSC软输入,而输出为软输出和外部信息
% 创 建 人:朱殿荣/QQ:235347/MSN:njzdr@msn.com
% 单    位:南京邮电大学,通信工程系
% 创建时间:2005年7月23日
% 修改时间:2006年3月10日
% 参考文献:《数字通信--基础与应用》
%          《改进的Turbo码算法及其FPGA实现过程的研究》天津大学,张宁,赵雅兴
%        K.K.Loo T.Alukaidey S.A.Jimaa “High Performance Parallelized
%           3GPP Turbo Decoder” Personal Mobile Communications
%        Conference 2003. 5th European (Conf. Publ. No. 492)
% 版权声明:任何人均可复制、传播、修改此文件,同时需保留原始版权信息。
%****************************************************************

x=in(1:);              %输入系统位
y=in(2:);              %输入校验位
in_length=length(in);

%---初始化&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Infty = -128;
d=zeros(82in_length);     %分支量度,8种可能状态,输入为0或者1
                            %D(Sik)
a=Infty*ones(8in_length);  %前向分支量度,A(Sk)
a(11)=0;                   %寄存器状态由全零开始
b=Infty*ones(8in_length+1);%后向分支量度,B(Sk)
b(1in_length+1)=0;           %寄存器状态由全零结束

%---计算分支度量和LLR&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
for k=1:in_length
    d(12k)=x(k)+y(k)+app(k);
    d(22k)=d(12k);
    d(72k)=d(12k);
    d(82k)=d(12k);

    d(32k)=x(k)+app(k);
    d(42k)=d(32k);
    d(52k)=d(32k);
    d(62k)=d(32k);

    d(31k)=y(k);
    d(41k)=d(31k);
    d(51k)=d(31k);
    d(61k)=d(31k);
    
    if k>1
        a(1k)=max(a(1k-1)(a(2k-1)+d(22k-1)));
        a(2k)=max((a(4k-1)+d(41k-1))(a(3k-1)+d(32k-1)));
        a(3k)=max((a(5k-1)+d(51k-1))(a(6k-1)+d(62k-1)));
        a(4k)=max(a(8k-1)(a(7k-1)+d(72k-1)));
        a(5k)=max(a(2k-1)(a(1k-1)+d(12k-1)));
        a(6k)=max((a(3k-1)+d(31k-1))(a(4k-1)+d(42k-1)));
        a(7k)=max((a(6k-1)+d(61k-1))(a(5k-1)+d(52k-1)));
        a(8k)=max(a(7k-1)(a(8k-1)+d(82k-1)));      
    end
    
    if k==in_length
        b(1k)=max(b(1k+1)(b(5k+1)+d(12k)));
        b(2k)=max(b(5k+1)(b(1k+1)+d(22k)));
        b(3k)=max((b(6k+1)+d(31k))(b(2k+1)+d(32k)));
        b(4k)=max((b(2k+1)+d(41k))(b(6k+1)+d(42k)));
        b(5k)=max((b(3k+1)+d(51k))(b(7k+1)+d(52k)));
        b(6k)=max((b(7k+1)+d(61k))(b(3k+1)+d(62k)));
        b(7k)=max(b(8k+1)(b(4k+1)+d(72k)));
        b(8k)=max(b(4k+1)(b(8k+1)+d(82k)));

        %计算LLR--------------------------------------
        l(k)=max([...
            (a(1k)+d(12k)+b(5k+1))(a(2k)+d(22k)+b(1k+1))...
            (a(3k)+d(32k)+b(2k+1))(a(4k)+d(42k)+b(6k+1))...
            (a(5k)+d(52k)+b(7k+1))(a(6k)+d(62k)+b(3k+1))...
            (a(7k)+d(72k)+b(4k+1))(a(8k)+d(82k)+b(8k+1))...
            ])-max([...
            (a(1k)+b(1k+1))(a(2k)+b(5k+1))...
   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-03-04 13:51  delay-of-relay-HARQ\
     文件        4645  2006-04-09 11:29  delay-of-relay-HARQ\constituent_decoder_max.m
     文件         756  2008-10-12 13:14  delay-of-relay-HARQ\CrcDecode.m
     文件         569  2012-06-19 03:14  delay-of-relay-HARQ\CrcEncode.m
     文件        1734  2009-07-08 17:44  delay-of-relay-HARQ\decoder_all_algorithm.m
     文件       11596  2011-06-16 23:17  delay-of-relay-HARQ\different_yima_CQI_menxian.m
     文件        1050  2006-03-10 08:59  delay-of-relay-HARQ\encode_bit.m
     文件        2796  2011-06-14 14:47  delay-of-relay-HARQ\encoderm.m
     文件        3944  2006-04-09 10:55  delay-of-relay-HARQ\interleaver_3GPP.m
     文件       13465  2011-06-21 13:00  delay-of-relay-HARQ\main.m
     文件         704  2008-07-12 20:07  delay-of-relay-HARQ\QpskInverseMapping.m
     文件        1533  2011-02-04 14:09  delay-of-relay-HARQ\QpskMapping.m
     文件         467  2008-10-06 09:11  delay-of-relay-HARQ\RayleighCH.m
     文件        1860  2012-06-12 19:49  delay-of-relay-HARQ\rsc_encode.m
     文件        1063  2011-06-14 17:12  delay-of-relay-HARQ\turbo.m

评论

共有 条评论

相关资源