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

📄 transmitter.m

📁 MATLAB Simulation of OFDM System
💻 M
字号:
% 产生一个分组的发射比特

function [tx_signal, inf_bits, tx_bits] = transmitter(sim_options);

global sim_consts;

%产生信息比特
inf_bits = randn(1, sim_options.PacketLength) > 0;

%卷积编码
coded_bit_stream = tx_conv_encoder(inf_bits);
%keyboard   
%比特打孔
tx_bits = tx_puncture(coded_bit_stream, sim_options.ConvCodeRate);
%keyboard
% 产生是OFDM符号整数倍的比特。
rdy_to_mod_bits = tx_make_int_num_ofdm_syms(tx_bits, sim_options);
%keyboard
if sim_options.InterleaveBits == 1
   %交织
   rdy_to_mod_bits = tx_interleaver(rdy_to_mod_bits, sim_options);
end
%keyboard
%调制
mod_syms = tx_modulate(rdy_to_mod_bits, sim_options.Modulation);
%keyboard
% 发射分集
mod_syms = tx_diversity(mod_syms, sim_options);
%keyboard
%添加导引符号
if ~sim_options.UseTxDiv
   mod_ofdm_syms = tx_add_pilot_syms(mod_syms, sim_options);
else
   mod_ofdm_syms(1,:) = tx_add_pilot_syms(mod_syms(1,:), sim_options);
   mod_ofdm_syms(2,:) = tx_add_pilot_syms(mod_syms(2,:), sim_options);
end
%keyboard
% 将发射信号转到时域
time_syms = tx_freqd_to_timed(mod_ofdm_syms);
%keyboard
%添加循环前缀
time_signal = tx_add_cyclic_prefix(time_syms);
%keyboard
%构造前导
preamble = tx_gen_preamble(sim_options);
%keyboard
%级联前导和数据部分并将平均信号功率归一化为1。
tx_signal = [preamble time_signal]*64/sqrt(52)/sqrt(size(time_signal,1));
%keyboard

⌨️ 快捷键说明

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