📄 qam_mod.m
字号:
function stbc_code = qam_mod(sig_code);
global table16 table64 Mod_type Tx_num Ofdm_bits Time_length Max_value
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;
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
stbc_code = zeros(Time_length,Tx_num,Ofdm_bits); %stbc 编码矩阵
for m=1:Tx_num
stbc_code(1,m,:) = qam_code(m,:);
end
stbc_code(2,1,:) = -conj(qam_code(2,:));
stbc_code(2,2,:) = conj(qam_code(1,:));
ch_scale = sqrt(Tx_num);
stbc_code = stbc_code/ch_scale;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -