📄 input_options.m
字号:
function SimulationParameters = input_options
% number of FFT points
fftsixtyfour = get(findobj('Tag', 'FFTsixtyfour'),'Value');
if fftsixtyfour==1
FFTPoints=64;
end
fftonetwoeight = get(findobj('Tag', 'FFTonetwoeight'),'Value');
if fftonetwoeight==1
FFTPoints=128;
end
ffttwofivesix = get(findobj('Tag', 'FFTtwofivesix'),'Value');
if ffttwofivesix==1
FFTPoints=256;
end
fftfiveonetwo = get(findobj('Tag', 'FFTfiveonetwo'),'Value');
if fftfiveonetwo==1
FFTPoints=512;
end
% convolutional code options
conv_code_rate = get(findobj('Tag', 'ConvCodeRate'),'String');
conv_code_rate = conv_code_rate(get(findobj('Tag', 'ConvCodeRate'),'Value'),:);
%zero padding
zeropad=get(findobj('Tag', 'ZeroPad'),'Value');
% data carriers option
DataCarriers = eval(get(findobj('Tag', 'DataCarriers'),'String'));
if zeropad~=1
DataCarriers=FFTPoints;
end
if DataCarriers>FFTPoints
uiwait(errordlg('Number of data carriers exceeds FFT size.','Invalid Input','Modal'));
end
% Interleaving
InterleavingBits = get(findobj('Tag', 'InterleavingBits'),'Value');
% ModulationType
ModulationType = get(findobj('Tag', 'ModulationType'),'String');
ModulationType = ModulationType(get(findobj('Tag', 'ModulationType'),'Value'),:);
%channel estimation (LSE)
channel_estimation_lse = get(findobj('Tag', 'ChannelEstimation_LSE'),'Value');
%channel estimation (FFT)
channel_estimation_fft = get(findobj('Tag', 'ChannelEstimation_FFT'),'Value');
% Tx Diversity options
TwoTxAntennas= get(findobj('Tag', 'MIMO_TwoTxAntennas'),'Value');
if TwoTxAntennas==1
TransmitDiversity=2;
end
% Tx Diversity options
FourTxAntennas= get(findobj('Tag', 'MIMO_FourTxAntennas'),'Value');
if FourTxAntennas==1
TransmitDiversity=4;
end
if TwoTxAntennas==0 & FourTxAntennas==0
TransmitDiversity=0;
end
% Rx Diversity
TwoRxAntennas = get(findobj('Tag', 'MIMO_TwoRxAntennas'),'Value');
if TwoRxAntennas==1
ReceiveDiversity=2;
end
% Rx Diversity
FourRxAntennas = get(findobj('Tag', 'MIMO_FourRxAntennas'),'Value');
if FourRxAntennas==1
ReceiveDiversity=4;
end
if TwoRxAntennas==0 & FourRxAntennas==0
ReceiveDiversity=0;
end
% Channel models
if get(findobj('Tag', 'AWGN'),'Value')
ChannelModel = 'AWGN';
elseif get(findobj('Tag', 'MaxDelaySpread'),'Value')
ChannelModel = 'Rayleigh';
elseif get(findobj('Tag','Rician'),'Value')
ChannelModel = 'Rician';
end
TimeMaxDelay = eval(get(findobj('Tag', 'TimeMaxDelay'),'String'));
kfactor=eval(get(findobj('Tag','kfactor'),'String'));
%Packets per run options
SimulationPackets = eval(get(findobj('Tag', 'SimulationPackets'),'String'));
% No. of Tx. Antennas
Tx. Antennas = eval(get(findobj('Tag', 'MIMO_Tx. Antennas'),'String'));
% No. of Rx. Antennas
Rx. Antennas = eval(get(findobj('Tag', 'MIMO_Rx. Antennas'),'String'));
% OFDM-MIMO
vblast = get(findobj('Tag', 'VBLAST'),'Value');
if vblast==1
TransmitDiversity=1;
ReceiveDiversity=1;
end
%Save file
savefile=get(findobj('Tag', 'Savefile'),'Value');
if savefile==1
uiwait(msgbox('Please enter the file name. The file will be saved in the current directory. Press "OK" to continue. Otherwise press "CNTL + C" to exit the program','File Path','modal'));
end
filename = get(findobj('Tag', 'FileName'),'String');
str1=filename;
if isempty(str1) & savefile==1
uiwait(errordlg('Enter file name!! Press "CNTL + C" to exit the program.','Invalid Input','Modal'));
end
SimulationParameters = struct('FFTPoints', FFTPoints, ...
'ConvCodeRate', conv_code_rate, ...
'ZeroPad', zeropad, ...
'DataCarriers', DataCarriers, ...
'InterleavingBits', InterleavingBits, ...
'ModulationType', ModulationType,...
'TxDiv', TransmitDiversity, ...
'RxDiv', ReceiveDiversity, ...
'ChannelModel', ChannelModel, ...
'TimeMaxDelay', TimeMaxDelay, ...
'kfactor',kfactor, ...
'SNR', (0:2:30),...
'ChannelEstimation_LSE', channel_estimation_lse, ...
'ChannelEstimation_FFT', channel_estimation_fft, ...
'SimulationPackets', SimulationPackets,...
'M',Tx. Antennas,...
'N',Rx. Antennas,...
'VBLAST',vblast,...
'Savefile',savefile,...
'FileName',filename);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -