75 lines
3.1 KiB
Matlab
75 lines
3.1 KiB
Matlab
function [cfgEHT, simParameters, channel, chInfo, maxChDelay, satelliteDopplerShift, chanBW] = create_baseline_configuration(profile, ...
|
|
bandwidth_mhz, ...
|
|
include_free_space_pathloss, ...
|
|
delay_model, ...
|
|
carrier_frequency, ...
|
|
elevation_angle, ...
|
|
mobile_speed, ...
|
|
mobile_altitude, ...
|
|
satellite_altitude, ...
|
|
random_stream, ...
|
|
seed, ...
|
|
tx_antenna_count, ...
|
|
rx_antenna_count, ...
|
|
apep, ...
|
|
mcs)
|
|
|
|
switch bandwidth_mhz
|
|
case 20
|
|
chanBW = 'CBW20';
|
|
case 40
|
|
chanBW = 'CBW40';
|
|
case 80
|
|
chanBW = 'CBW80';
|
|
case 160
|
|
chanBW = 'CBW160';
|
|
case 320
|
|
chanBW = 'CBW320';
|
|
otherwise
|
|
error("Not supported bandwidth!");
|
|
end
|
|
|
|
cfgEHT = wlanEHTMUConfig(chanBW);
|
|
cfgEHT.User{1}.APEPLength = apep;
|
|
cfgEHT.NumTransmitAntennas = tx_antenna_count;
|
|
cfgEHT.User{1}.NumSpaceTimeStreams = 1;
|
|
cfgEHT.User{1}.MCS = mcs;
|
|
fs = wlanSampleRate(chanBW);
|
|
|
|
simParameters.IncludeFreeSpacePathLoss = include_free_space_pathloss;
|
|
simParameters.DelayModel = delay_model;
|
|
simParameters.CarrierFrequency = carrier_frequency;
|
|
simParameters.ElevationAngle = elevation_angle;
|
|
simParameters.MobileSpeed = mobile_speed;
|
|
simParameters.MobileAltitude = mobile_altitude;
|
|
simParameters.SatelliteAltitude = satellite_altitude;
|
|
simParameters.SampleRate = fs;
|
|
simParameters.RandomStream = random_stream;
|
|
simParameters.Seed = seed;
|
|
simParameters.NumTransmitAntennas = tx_antenna_count;
|
|
simParameters.NumReceiveAntennas = rx_antenna_count;
|
|
|
|
simParameters.NTNChannelType = "TDL";
|
|
simParameters.DelayProfile = "NTN-TDL-" + profile;
|
|
simParameters.DelaySpread = 30e-9;
|
|
|
|
c = physconst("lightspeed");
|
|
satelliteDopplerShift = dopplerShiftCircularOrbit( ...
|
|
simParameters.ElevationAngle,simParameters.SatelliteAltitude, ...
|
|
simParameters.MobileAltitude,simParameters.CarrierFrequency);
|
|
|
|
channel = nrTDLChannel;
|
|
channel.DelayProfile = simParameters.DelayProfile;
|
|
channel.DelaySpread = simParameters.DelaySpread;
|
|
channel.SatelliteDopplerShift = satelliteDopplerShift;
|
|
channel.MaximumDopplerShift = simParameters.MobileSpeed*simParameters.CarrierFrequency/c;
|
|
channel.NumTransmitAntennas = simParameters.NumTransmitAntennas;
|
|
channel.NumReceiveAntennas = simParameters.NumReceiveAntennas;
|
|
|
|
channel.SampleRate = simParameters.SampleRate;
|
|
channel.RandomStream = simParameters.RandomStream;
|
|
channel.Seed = simParameters.Seed;
|
|
|
|
chInfo = info(channel);
|
|
maxChDelay = ceil(max(chInfo.PathDelays*channel.SampleRate)) + chInfo.ChannelFilterDelay;
|
|
end |