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

📄 ui_read_options.m

📁 MATLAB Simulation of OFDM System
💻 M
字号:
function sim_options = ui_read_options

%分组长度,用比特表示,注意输入的是以字节为单位的。
pkt_length = eval(get(findobj('Tag', 'PktLen'),'String'))*8;

%卷积编码的选项(码率)
conv_code_rate = get(findobj('Tag', 'ConvCodeRate'),'String');
conv_code_rate = conv_code_rate(get(findobj('Tag', 'ConvCodeRate'),'Value'),:);

%是否交织
interleave_bits = get(findobj('Tag', 'InterleaveBits'),'Value');

% 交织方式
modulation = get(findobj('Tag', 'Modulation'),'String');
modulation = modulation(get(findobj('Tag', 'Modulation'),'Value'),:);

% 是否采用发射分集
use_tx_div = get(findobj('Tag', 'UseTxDiversity'),'Value');

%是否采用接收分集
use_rx_div = get(findobj('Tag', 'UseRxDiversity'),'Value');

% 频偏
freq_error = eval(get(findobj('Tag', 'FreqError'),'String'));

%信道模型
if get(findobj('Tag', 'AWGN'),'Value')
   chan_model = 'AWGN';
elseif get(findobj('Tag', 'ExponentialDecay'),'Value')
   chan_model = 'ExponentialDecay';
end
exp_decay_trms = eval(get(findobj('Tag', 'ExpDecayTrms'),'String'));

% SNR
snr = eval(get(findobj('Tag', 'SNR'),'String'));

% 同步选项
packet_detection = get(findobj('Tag', 'PacketDetection'),'Value');
fine_time_sync = get(findobj('Tag', 'FineTimeSync'),'Value');
freq_sync = get(findobj('Tag', 'FreqSync'),'Value');
pilot_phase_tracking = get(findobj('Tag', 'PilotPhaseTrack'),'Value');
channel_estimation = get(findobj('Tag', 'ChannelEst'),'Value');
rx_timing_offset = eval(get(findobj('Tag', 'RxTimingOffset'),'String'));

%每次循环的分组数
pkts_per_run = eval(get(findobj('Tag', 'PktsToSimulate'),'String'));

sim_options = struct('PacketLength', pkt_length, ...
   'ConvCodeRate', conv_code_rate, ...
   'InterleaveBits', interleave_bits, ...
   'Modulation', modulation,...
   'UseTxDiv', use_tx_div, ...
   'UseRxDiv', use_rx_div, ...
   'FreqError', freq_error, ...
   'ChannelModel', chan_model, ...
   'ExpDecayTrms', exp_decay_trms, ...
   'SNR', snr,...        
   'PacketDetection', packet_detection, ...
   'FineTimeSync', fine_time_sync, ...
   'FreqSync', freq_sync, ...
   'PilotPhaseTracking', pilot_phase_tracking, ...
   'ChannelEstimation', channel_estimation, ...
   'RxTimingOffset', rx_timing_offset, ...
   'PktsToSimulate', pkts_per_run);

⌨️ 快捷键说明

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