📄 main_stbc_22.m
字号:
% 表示t2*r4系统,码率= 1;
% 16qam 64qam %qam调制有2种情况(4=16qam,6=64qam);
% Max_quantity_bits 输入输出量化比特位数
% Ofdm_bits 一个Ofdm符号的比特个数
% Time_length 假设在这个时间间隔中信道特性不发生变化
%------------需要自定义的参数-------------------------------------------%
% snr_min 迭代的最小的信噪比
% snr_max 迭代的最大的信噪比
% stepsize 迭代的步长
clear
clc
global table16 table64 Mod_type Ofdm_bits Time_length Tx_num Rx_num
global Max_quantity_bits Max_value Min_value Max_add_value
snr_min=0;
snr_max=30;
stepsize = 2.5;
Mod_type = 4;
Ofdm_bits = 10000; %一个ofdm符号长度
%-------------全局参量--------------------------------%
Tx_num = 2;
Rx_num = 2;
Time_length = 2;
pqam_length = Ofdm_bits*Mod_type;
%----------------量化参量-----------------------------%
Max_quantity_bits = 8;
Max_value = 2^(Max_quantity_bits-1);
Min_value = -Max_value;
Max_add_value = 2^(2*Max_quantity_bits-1);
%---------------------------------qam 映射--------------------------------------------------------%
sig_code = randint(Tx_num,pqam_length);
stbc_code = qam_mod(sig_code);
%-------------------函数stbc_decode完成stbc的译码(定点)-----------------------------------------%
table16 = table16*Max_value;
table64 = table64*Max_value;
table64 = fix(table64*127/138);
iterative_length = 0;
demap_out = zeros(Tx_num,pqam_length);
for snr_db_step =snr_min:stepsize:snr_max
iterative_length = iterative_length+1
[rec_code,ch_mul_noice] = mimo_channel(stbc_code,snr_db_step);
[decode_out,demap_int] = stbc_decode22(rec_code,ch_mul_noice,snr_db_step);
demap_out = qam_demod(demap_int);
error_ratio = err_static(demap_out,sig_code);
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,'mo-');
elseif Mod_type == 6
semilogy(xanxis,e_record,'k*-');
end
grid on;
hold on;
title('T2R2 系统');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -