📄 main_stbc_44.m
字号:
% 16qam 64qam ; t4*r4系统; 码率= 3/4;
% 添加定点dsp仿真
clear
clc
global Time_length Ofdm_bits Tx_num Rx_num Mod_type table16 table64
global Max_bit_num Max_value Min_value Max_add_value scale_eff st2
snr_min=0;
snr_max=35;
stepsize = 2.5;
Ofdm_bits = 10000; %一个ofdm符号长度
Mod_type = 6; %qam调制 4=16qam;
%------------------------仿真参数设定-------------------------------------%
Max_bit_num = 8;
scale_eff = 3; % 加法器缩放系数
Max_value = 2^(Max_bit_num-1); % Max_value = 2^15
Min_value = -Max_value;
Max_add_value = 2^(2*Max_bit_num-1);
star_index_length = 16;
Tx_num = 4; %发送天线个数(4)
Rx_num = 4;
Time_length = 4;
pqam_length = Ofdm_bits*Mod_type;
%-------------------------------------------------------------------------%
j=sqrt(-1);
st2 = sqrt(2);
st2 = fix(st2*Max_value)/Max_value;
%------------------产生信号源------------------------%
sig_code = zeros(Tx_num,pqam_length);
sig_code = randint(Tx_num-1,pqam_length);
sig_code(4,:) = sig_code(3,:);
stbc_code = qam_mod(sig_code);
%-----------------------迭代开始 信噪比 由小到大-----------------------------------%
table16 = fix(table16*Max_value);
table64 = fix(table64*Max_value*127/138);
demap_out = zeros(Tx_num,pqam_length);
iterative_length = 0;
for snr_db_step =snr_min:stepsize:snr_max % 信噪比从snr_min--snr_max
iterative_length = iterative_length+1
[decode_out,demap_int] = stbc_decode44(stbc_code,snr_db_step);
demap_out = qam_demod(demap_int);
error_ratio = err_staric(sig_code,demap_out);
e_record(iterative_length) = error_ratio;
end % snr_db_step =snr_min:snr_max
xanxis = snr_min:stepsize:snr_max;
if Mod_type == 4
semilogy(xanxis,e_record,'r*-');
elseif Mod_type == 6
semilogy(xanxis,e_record,'ro-');
end
end
grid on;
hold on;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -