user_bit_gen.m
来自「OFDM的详细仿真代码」· M 代码 · 共 33 行
M
33 行
function [user_bit,user_bit_cnt] = user_bit_gen( N_user, N_data ,N_sym , Modulation )
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 功能: 产生不同用户的发送比特
% 用cell结构体封装不同用户的数据,因为cell结构体的矩阵元素可以维数不同
% 输入: N_user,用户数
% N_data,数据子载波数
% N_sym,本帧OFDM符号数
% Modulation, 调制方式
% 输出: user_bit, 每个用户的比特序列,为cell结构
% user_bit_cnt, 每个用户的序列长度
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 每个用户在一个OFDM符号期间发送的比特数
user_bit_tmp = cell( 1,N_user );
bit_per_sym = Modulation * N_data;
% 可以选择用户比特分布为:
% 1) 所有用户比特相同。
bit_cnt_sym = repmat(bit_per_sym/N_user,1,N_user);
% 2) 用户按照比例 (1:N_user)/((1 + N_user)*N_user/2) 发送比特数据
% 目的是为了仿真不同用户的信息比特长度不同的情况,也可以修改得到其他的用户数据比例
% bit_cnt_sym = round( [1:N_user]/((1 + N_user)*N_user/2) * bit_per_sym );
user_bit_cnt = bit_cnt_sym * N_sym ;
for u = 1:N_user
user_bit_tmp{u} = rand ( user_bit_cnt(u) ,1 ) > 0.5 ;
end
user_bit = user_bit_tmp;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?