Files
WirelessNetworkingTechnologies/lab_5/create_baseline_configuration.m
2026-06-22 22:03:28 +02:00

73 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, ...
mobile_speed, ...
mobile_altitude, ...
satellite_altitude, ...
random_stream, ...
seed, ...
tx_antenna_count, ...
rx_antenna_count, ...
apep)
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 = 0; % default to sweep later
fs = wlanSampleRate(chanBW);
simParameters.IncludeFreeSpacePathLoss = include_free_space_pathloss;
simParameters.DelayModel = delay_model;
simParameters.CarrierFrequency = carrier_frequency;
simParameters.ElevationAngle = 0; % default to sweep later
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