lab5 task1 done, task2 nearly finished
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
profile = "C";
|
||||
bandwidth = 20;
|
||||
include_free_space_pathloss = true;
|
||||
delay_model = "None";
|
||||
carrier_frequency = 2.4e9;
|
||||
mobile_speed = 0;
|
||||
mobile_altitude = groundStation.Altitude;
|
||||
satellite_altitude = satConfig.satAltitude;
|
||||
random_stream = "mt19937ar with seed";
|
||||
seed = 666;
|
||||
tx_antenna_count = 1;
|
||||
rx_antenna_count = 1;
|
||||
apep = 1000;
|
||||
txPower = 20;
|
||||
wifiSensitivity = -85;
|
||||
reliableRxPower = -75;
|
||||
amplifierGain = 30;
|
||||
|
||||
[cfgEHT, simParameters, channel, chInfo, maxChDelay, satelliteDopplerShift, chanBW] = create_baseline_configuration(profile, bandwidth, include_free_space_pathloss, delay_model, carrier_frequency, mobile_speed, mobile_altitude, satellite_altitude, random_stream, seed, tx_antenna_count, rx_antenna_count, apep);
|
||||
cfgEHT.User{1}.MCS = 3;
|
||||
simParameters.TransmitPower = txPower;
|
||||
|
||||
[~, numPacketsSimulated, ~, rxPower, pathLoss] = simulateTransmission(accessAnalysisResults, cfgEHT, channel, maxChDelay, [], inf, simParameters);
|
||||
|
||||
packetIdx = 1:numPacketsSimulated;
|
||||
packetTimes = accessAnalysisResults.times(packetIdx);
|
||||
rxPower = rxPower(packetIdx);
|
||||
pathLoss = pathLoss(packetIdx);
|
||||
|
||||
figure;
|
||||
plot(packetTimes, rxPower);
|
||||
grid on;
|
||||
xlabel("Time");
|
||||
ylabel("Power [dBm]");
|
||||
title("Receive power over time plot of satellite pass");
|
||||
yline(wifiSensitivity, "--", "receive sensitivity -85 dBm");
|
||||
yline(reliableRxPower, "--", "reliable reception -75 dBm");
|
||||
|
||||
lambda = physconst("lightspeed") / carrier_frequency;
|
||||
maxPathLossDetectable = txPower - wifiSensitivity;
|
||||
maxDistanceDetectable = lambda / (4 * pi) * 10^(maxPathLossDetectable / 20);
|
||||
|
||||
maxPathLossReliable = txPower - reliableRxPower;
|
||||
maxDistanceReliable = lambda / (4 * pi) * 10^(maxPathLossReliable / 20);
|
||||
|
||||
requiredTxPower = reliableRxPower + pathLoss;
|
||||
|
||||
figure;
|
||||
plot(packetTimes, requiredTxPower);
|
||||
grid on;
|
||||
xlabel("Time");
|
||||
ylabel("Power [dBm]");
|
||||
title("Required transmit power for -75 dBm receive power");
|
||||
|
||||
amplifiedTxPower = txPower + amplifierGain;
|
||||
requiredAntennaGain = max(requiredTxPower - amplifiedTxPower, 0);
|
||||
|
||||
validRequiredTxPower = requiredTxPower(isfinite(requiredTxPower));
|
||||
validRequiredAntennaGain = requiredAntennaGain(isfinite(requiredAntennaGain));
|
||||
|
||||
fprintf("Maximum detectable distance at %.0f dBm TX power: %.2f km\n", txPower, maxDistanceDetectable / 1e3);
|
||||
fprintf("Maximum reliable distance at %.0f dBm TX power: %.2f km\n", txPower, maxDistanceReliable / 1e3);
|
||||
fprintf("Required TX power for -75 dBm reception: %.2f dBm to %.2f dBm\n", min(validRequiredTxPower), max(validRequiredTxPower));
|
||||
fprintf("Required antenna gain with %.0f dB amplifier: %.2f dB to %.2f dB\n", amplifierGain, min(validRequiredAntennaGain), max(validRequiredAntennaGain));
|
||||
Reference in New Issue
Block a user