- finished task 2

- fixed perform_access_analysis to use 2.4GHz instead of 2GHz
- finished task 3
This commit is contained in:
ti_mo
2026-06-24 21:48:12 +02:00
parent eb4d72c7c2
commit edbc22bcf6
13 changed files with 1263 additions and 348 deletions
+26 -18
View File
@@ -27,15 +27,20 @@ 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");
if calc_task2
figure;
plot(packetTimes, rxPower);
grid on;
xtickformat("HH:mm");
xlabel("Time of day [HH:mm]");
ylabel("Power [dBm]");
title("Receive power over time plot of satellite pass");
yline(wifiSensitivity, "--", "receive sensitivity -85 dBm");
yline(reliableRxPower, "--", "reliable reception -75 dBm");
end
% this site helped in providing formulas and a calculator to verify
% https://calculatorshub.net/telecom-calculators/dbm-to-range-calculator/
lambda = physconst("lightspeed") / carrier_frequency;
maxPathLossDetectable = txPower - wifiSensitivity;
maxDistanceDetectable = lambda / (4 * pi) * 10^(maxPathLossDetectable / 20);
@@ -45,12 +50,15 @@ 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");
if calc_task2
figure;
plot(packetTimes, requiredTxPower);
grid on;
xtickformat("HH:mm");
xlabel("Time of day [HH:mm]");
ylabel("Power [dBm]");
title("Required transmit power for -75 dBm receive power");
end
amplifiedTxPower = txPower + amplifierGain;
requiredAntennaGain = max(requiredTxPower - amplifiedTxPower, 0);
@@ -58,7 +66,7 @@ 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));
fprintf("Maximum detectable distance at %.0fdBm TX power: %.2fkm\n", txPower, maxDistanceDetectable / 1e3);
fprintf("Maximum reliable distance at %.0fdBm TX power: %.2fkm\n", txPower, maxDistanceReliable / 1e3);
fprintf("Required TX power for -75dBm reception: %.2fdBm to %.2fdBm\n", min(validRequiredTxPower), max(validRequiredTxPower));
fprintf("Required antenna gain with %.0fdB amplifier: %.2fdB to %.2fdB\n", amplifierGain, min(validRequiredAntennaGain), max(validRequiredAntennaGain));