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

📄 msdeinterleaverinitialization.m

📁 CDMA2000的仿真平台,使用MATLAB设计完成
💻 M
字号:
%======================================
%MSDeInterleaverInitialization.m
%======================================
switch xRC
    case 3
        %根据原始数据帧的长度设置解交织器的长度,信号插入向量
        %以及去重复因子
        switch xFrameLength
            case 6120
                xDerepeatFactor=1;
                xInsertVector=[1];
                xInterleaverSize=12288;
            case 3048
                xDerepeatFactor=1;
                xInsertVector=[1];
                xInterleaverSize=12288;
            case 1512
                xDerepeatFactor=1;
                xInsertVector=[1];
                xInterleaverSize=6144;
            case 744
                xDerepeatFactor=1;
                xInsertVector=[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
                xDerepeatFactor=1;
                xInsertVector=[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
                xDerepeatFactor=2;
                xInsertVector=[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
                xDerepeatFactor=4;
                xInsertVector=[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
                xDerepeatFactor=8;
                xInsertVector=[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
                xDerepeatFactor=16;
                xInsertVector=[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
                xDerepeatFactor=2;
                xInsertVector=[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 + -