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

📄 qam_mod.m

📁 stbc在2发2收
💻 M
字号:
function stbc_code = qam_mod(sig_code);
global table16 table64 Ofdm_bits Max_value Mod_type Tx_num Time_length st2

%-------------------------QAM 映射,STBC编码--------------%
table16 = [1+j, 3+ j, 1+3j, 3+3j,...
        1-j, 1-3j, 3- j, 3-3j,...
        -1+j,-1+3j,-3+ j,-3+3j,...
        -1-j,-3- j,-1-3j,-3-3j];
table64 = [1+j, 3+ j, 1+3j, 3+3j, 7+1j, 5+ j, 7+3j, 5+3j, 1+7j, 3+7j, 1+5j, 3+5j, 7+7j, 5+7j, 7+5j, 5+5j,...
        1-j, 1-3j, 3- j, 3-3j, 1-7j, 1-5j, 3-7j, 3-5j, 7- j, 7-3j, 5- j, 5-3j, 7-7j, 7-5j, 5-7j, 5-5j,...
        -1+j,-1+3j,-3+ j,-3+3j,-1+7j,-1+5j,-3+7j,-3+5j,-7+ j,-7+3j,-5+ j,-5+3j,-7+7j,-7+5j,-5+7j,-5+5j,...
        -1-j,-3- j,-1-3j,-3-3j,-7- j,-5- j,-7-3j,-5-3j,-1-7j,-3-7j,-1-5j,-3-5j,-7-7j,-5-7j,-7-5j,-5-5j];
table16 = table16/sqrt(10);
table64 = table64/sqrt(42);
table16 = round(table16*Max_value)/Max_value;
table64 = round(table64*Max_value)/Max_value;

qam_code = zeros(Tx_num,Ofdm_bits);           %qam映射矩阵的大小(stbc编码之前)
switch Mod_type
    case 4
        for i=1:Tx_num
            for n=1:Ofdm_bits
                table_index = sig_code(i,(n-1)*Mod_type+1)*8+sig_code(i,(n-1)*Mod_type+2)*4+...
                    sig_code(i,(n-1)*Mod_type+3)*2+sig_code(i,(n-1)*Mod_type+4);
                qam_code(i,n) = table16(table_index+1);
            end
        end
    case 6
        for i=1:Tx_num
            for n=1:Ofdm_bits
                table_index = sig_code(i,(n-1)*Mod_type+1)*32+sig_code(i,(n-1)*Mod_type+2)*16+...
                    sig_code(i,(n-1)*Mod_type+3)*8+sig_code(i,(n-1)*Mod_type+4)*4+...
                    sig_code(i,(n-1)*Mod_type+5)*2+sig_code(i,(n-1)*Mod_type+6);       
                qam_code(i,n) = table64(table_index+1);
            end
        end  
end
%qam_code = qam_code/sqrt(10);
stbc_code = zeros(Time_length,Tx_num,Ofdm_bits);   %stbc 编码矩阵
stbc_code(1,1,:) = qam_code(1,:);
stbc_code(1,2,:) = qam_code(2,:);
stbc_code(1,3,:) = qam_code(3,:)/st2;
stbc_code(1,4,:) = qam_code(3,:)/st2;

stbc_code(2,1,:) = -conj(qam_code(2,:));
stbc_code(2,2,:) =  conj(qam_code(1,:));
stbc_code(2,3,:) =  qam_code(3,:)/st2;
stbc_code(2,4,:) = -qam_code(3,:)/st2;

stbc_code(3,1,:) = conj(qam_code(3,:)/st2);
stbc_code(3,2,:) = conj(qam_code(3,:)/st2);
stbc_code(3,3,:) = -real(qam_code(1,:))+j*imag(qam_code(2,:));
stbc_code(3,4,:) = -real(qam_code(2,:))+j*imag(qam_code(1,:));

stbc_code(4,1,:) =  conj(qam_code(3,:)/st2);
stbc_code(4,2,:) = -conj(qam_code(3,:)/st2);
stbc_code(4,3,:) =   real(qam_code(2,:))+j*imag(qam_code(1,:));
stbc_code(4,4,:) = -(real(qam_code(1,:))+j*imag(qam_code(2,:)));
ch_scale = sqrt(4);  % Tx_num = 4
ch_scale = fix(ch_scale*Max_value)/Max_value;
stbc_code = stbc_code/ch_scale;   %  所有发送天线发送信号归一化function 

⌨️ 快捷键说明

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