firstcounterinterleave.m

来自「用于WCDMA的交织编解码部分」· M 代码 · 共 46 行

M
46
字号
function [dataStreamOutput1] = firstCounterInterleave(dataStreamInput, TTI)
%计算交织矩阵的行数和列数
inputBitNumber = length(dataStreamInput);
if (TTI == 80)
    columnNumber = 8;
    permutationPattern = [1,5,3,7,2,6,4,8];
else 
    if (TTI == 40)
        columnNumber = 4;
        permutationPattern = [1,3,2,4];
    else
        if (TTI == 20)
            columnNumber = 2;
            permutationPattern = [1,2];
        else 
            columnNumber = 1;
            permutationPattern = [1];
        end
    end
end

rowNumber = inputBitNumber/columnNumber;
matrix = zeros(rowNumber, columnNumber);
index = 1;
for j = 1:columnNumber
    for i = 1:rowNumber
        matrix(i,j) = dataStreamInput(index);
        index = index + 1;
    end
end

%perform counter inter-column permutation
tempMatrix =[];
for i = 1:columnNumber
    tempMatrix(:, permutationPattern(i)) = matrix(:, i);
end
matrix = tempMatrix;

index = 1;
for i = 1:rowNumber 
    for j = 1:columnNumber
        dataStreamOutput1(index) = matrix(i, j);        
        index = index + 1;
    end
end

⌨️ 快捷键说明

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