mtx_add_subinter.m

来自「OFDMA 物理层开发的matlab 源码.飞思卡尔提供.对物理层开发的工程师有」· M 代码 · 共 50 行

M
50
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Property of Freescale
%  Freescale Confidential Proprietary
%  Freescale Copyright (C) 2005 All rights reserved
%  ----------------------------------------------------------------------------
%  $RCSfile: mTx_add_subinter.m.rca $
%  $Revision: 1.1 $
%  $Date: Mon Jan 22 10:28:18 2007 $
%  Target: Matlab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% add = mTx_add_subinter(N) generates address information for
% subblock interleavers defined in 8.4.9.2.3.4.2 Subblock
% interleaving IEEE Std. 802.16-2004, P601
%
% Output:
% add => Interleaver address
% Input:
% N => No. of couples in one block equal to Nep/2


function add = mTx_add_subinter(N)

% Get m & J value depending on N
% Table 330 Parameters for the subblock interleavers when supporting H-ARQ
[m,J] = mTx_p_subinter (N);

% Initialize k,i to 0
k = 0;
i = 0;

for n = 1:N
    tmp_state = mBin_state(fix(k/J), m);
    BRO_state(1:m) = tmp_state(m:-1:1);
    % Calculate a tentative output address Tk
    Tk = 2^m * mod(k,J) + mInt_state(BRO_state);
    while Tk >= N
        k = k+1;
        tmp_state = mBin_state(fix(k/J), m);
        BRO_state(1:m) = tmp_state(m:-1:1);
        % Calculate a tentative output address Tk
        Tk = 2^m * mod(k,J) +  mInt_state(BRO_state);
    end

    add(i+1) = Tk;
    k = k+1;
    i = i+1;
end

⌨️ 快捷键说明

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