- 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
+35 -15
View File
@@ -4,6 +4,8 @@ satSim = create_satellite_sim(satConfig, groundStation);
sampleTimes = satConfig.startTime:seconds(satConfig.sampleTime):satConfig.stopTime;
distancesToSat = zeros(size(sampleTimes));
elevationAnglesToSat = zeros(size(sampleTimes));
satelitteVisibilities = zeros(size(sampleTimes));
dopplerShifts = zeros(size(sampleTimes));
progressStartText = "Starting ...";
f = waitbar(0, progressStartText, "Name", "Task 1");
@@ -18,6 +20,8 @@ parfor idx = 1:numel(sampleTimes)
res = perform_access_analysis(satSim, sampleTimes(idx));
distancesToSat(idx) = res.distanceToSatellite;
elevationAnglesToSat(idx) = res.elevationAngleToSatellite;
satelitteVisibilities(idx) = res.satelliteVisible;
dopplerShifts(idx) = res.fshift;
send(progressQueue, sprintf("Index %d", idx));
end
@@ -26,20 +30,36 @@ if ishandle(f)
close(f);
end
figure;
plot(sampleTimes, distancesToSat);
grid on;
xlabel("Time [s]");
ylabel("Distance to Satellite [m]");
title("Distance over time plot of satellite pass");
figure;
plot(sampleTimes, elevationAnglesToSat);
grid on;
xlabel("Time [s]");
ylabel("Elevation angle to satellite [degree]");
title("Elevation angle over time plot of satellite pass");
accessAnalysisResults.times = sampleTimes;
accessAnalysisResults.distances = distancesToSat;
accessAnalysisResults.elevationAngles = elevationAnglesToSat;
accessAnalysisResults.elevationAngles = elevationAnglesToSat;
accessAnalysisResults.satelitteVisibilities = satelitteVisibilities;
accessAnalysisResults.dopplerShifts = dopplerShifts;
carrierFrequency = 2.4e9;
timeSeconds = seconds(sampleTimes - sampleTimes(1));
rangeRate = gradient(accessAnalysisResults.distances, timeSeconds);
dopplerShift = -(rangeRate / physconst("lightspeed")) * carrierFrequency;
accessAnalysisResults.geometricDopplerShifts = dopplerShift;
% prevent figure plot when only the other tasks should be calculated
% task2 needs task1
if calc_task1
figure;
plot(sampleTimes, distancesToSat);
grid on;
xtickformat("HH:mm");
xlabel("Time of day [HH:mm]");
ylabel("Distance to Satellite [m]");
title("Distance over time plot of satellite pass");
figure;
plot(sampleTimes, elevationAnglesToSat);
grid on;
xtickformat("HH:mm");
xlabel("Time of day [HH:mm]");
ylabel("Elevation angle to satellite [degree]");
title("Elevation angle over time plot of satellite pass");
end