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

📄 msinterleaverinitialization.m

📁 CDMA2000的仿真平台,使用MATLAB设计完成
💻 M
字号:
%==========================================================================
% MS_Interleaver_Initialization.m
%==========================================================================
%根据无线配置设置交织器的信号重复因子,符号抽取向量以及交织器的长度
%只支持RC3和RC4
switch xRC
    case 3
        %根据原始数据帧的长度设置的信号重复因子,信号抽取向量以及交织器长度
        switch xFrameLength
            case 6120
                xRepetitionCount=1;
                xPunctureVector=[1];
                xInterleaverSize=12288;
            case 3048
                xRepetitionCount=1;
                xPunctureVector=[1];
                xInterleaverSize=12288;  
            case 1512
                xRepetitionCount=1;
                xPunctureVector=[1];
                xInterleaverSize=6144;
            case 744
                xRepetitionCount=1;
                xPunctureVector=[1];
                %xInterleaverSize=3072;
                m=6;
                J=48;
                % Even interleaved Symbol
                i = [0:2:3072-2]';
                x = i/2;
                Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
                % Odd interleaved Symbol
                i = [1:2:3072-1]';
                x= 3072 - (i+1)/2;
                Aodd =  2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
        
               int_table = reshape([Aeven Aodd]',3072,[]) + 1;
            case 360
                xRepetitionCount=1;
                xPunctureVector=[1];
                %xInterleaverSize=1536;
                m=6;
                J=24;
                % Even interleaved Symbol
                i = [0:2:1536-2]';
                x = i/2;
                Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
                % Odd interleaved Symbol
                i = [1:2:1536-1]';
                x= 1536 - (i+1)/2;
                Aodd =  2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
        
               int_table = reshape([Aeven Aodd]',1536,[]) + 1;
            case 172
                %xRepetitionCount=2;
                %xPunctureVector=[1];
                %xInterleaverSize=1536;
                m=6;
                J=24;
                % Even interleaved Symbol
                i = [0:2:1536-2]';
                x = i/2;
                Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
                % Odd interleaved Symbol
                i = [1:2:1536-1]';
                x= 1536 - (i+1)/2;
                Aodd =  2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
        
               int_table = reshape([Aeven Aodd]',1536,[]) + 1;
            case 80
                xRepetitionCount=4;
                xPunctureVector=[1];
               % xInterleaverSize=1536;
                m=6;
                J=24;
                % Even interleaved Symbol
                i = [0:2:1536-2]';
                x = i/2;
                Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
                % Odd interleaved Symbol
                i = [1:2:1536-1]';
                x= 1536 - (i+1)/2;
                Aodd =  2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
        
               int_table = reshape([Aeven Aodd]',1536,[]) + 1;
            case 40
                xRepetitionCount=8;
                xPunctureVector=[1 1 1 1 1 1 1 1 0];
                %xInterleaverSize=1536;
                m=6;
                J=24;
                % Even interleaved Symbol
                i = [0:2:1536-2]';
                x = i/2;
                Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
                % Odd interleaved Symbol
                i = [1:2:1536-1]';
                x= 1536 - (i+1)/2;
                Aodd =  2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
        
               int_table = reshape([Aeven Aodd]',1536,[]) + 1;
            case 16
                xRepetitionCount=16;
                xPunctureVector=[1 1 1 1 0];
                %xInterleaverSize=1536;
                m=6;
                J=24;
                % Even interleaved Symbol
                i = [0:2:1536-2]';
                x = i/2;
                Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
                % Odd interleaved Symbol
                i = [1:2:1536-1]';
                x= 1536 - (i+1)/2;
                Aodd =  2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
        
               int_table = reshape([Aeven Aodd]',1536,[]) + 1;
            case 24
                xRepetitionCount=2;
                xPunctureVector=[1];
                %xInterleaverSize=384;
                m=6;
                J=6;
                % Even interleaved Symbol
                i = [0:2:384-2]';
                x = i/2;
                Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
                % Odd interleaved Symbol
                i = [1:2:384-1]';
                x= 384 - (i+1)/2;
                Aodd =  2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
        
               int_table = reshape([Aeven Aodd]',384,[]) + 1;
            otherwise
                error('Error:Invalid Frame Length for Radio Configuration 3 in cdma 2000 Mobile Station block<Interleaver>');
                int_table = [ ];
        end
end

⌨️ 快捷键说明

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