task4 done

This commit is contained in:
ti_mo
2026-06-12 14:22:18 +02:00
parent 9065374ea7
commit 7519c23442
4 changed files with 32 additions and 17 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
% this code is in no manner clean, much code copy because I was lazy
% this code is in no manner clean
% use these fields to select the task that should be calculated
do_task1 = true;
do_task1 = false;
do_task2 = false;
do_task3_1 = false;
do_task3_2 = false;
+15
View File
@@ -176,6 +176,21 @@ At very high SNR, pilot tracking can also have little visible impact because the
## Task 4
#### 4.1
![PER over SNR MCS sweep](per_snr_mcs.svg)
The MCS sweep shows that higher MCS values require higher SNR to achieve the same packet error rate. Lower MCS values are more robust and can reach PER values around $10^{-3}$ within the simulated SNR range, but this comes at the cost of a lower data rate. For MCS 12 and MCS 13, the PER does not fall below $10^{-1}$ in the observed SNR range. In particular, MCS 13 still shows a high packet error rate around 34 dB SNR where as MCS 0 reaches PER $10^{-3}$, so it is not reliable under these channel conditions.
Reflecting this analysis: Higher MCS values tend to be more sensitive to NTN Doppler and residual CFO.
#### 4.2
![PER over SNR channel bandwidth sweep](per_snr_cbw.svg)
Analyzing the bandwidth sweep, the observed PER improves as the channel bandwidth increases. In this simulation setup, CBW320 reaches a PER of approximately nearly $10^{-3}$ below 10 dB SNR, while CBW20 requires roughly 34-35 dB SNR to reach a comparable PER. This indicates that, for the fixed APEP length and MCS used here, a wider channel bandwidth improves the link robustness in the simulated NTN channel.
So in this simulation a higher bandwith improves PER.
<div style="page-break-after: always;"></div>
## Task 5

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

+15 -15
View File
@@ -1,11 +1,3 @@
if use_t1_as_t4
mcs_values_t1 = mcs_values;
progressTitle = "Task 4.1";
else
mcs_values_t1 = [2];
progressTitle = "Task 1";
end
[cfgEHT, simParameters, channel, chInfo, maxChDelay, satelliteDopplerShift, chanBW] = ...
create_baseline_configuration(ntn_tdl_delay_profiles(3), bandwidth, false, "None", ...
carrier_frequency, 0, ...
@@ -13,14 +5,22 @@ end
seed, tx_antenna_count, ...
rx_antenna_count, apep);
meanSlantRange = mean(slantRanges);
meanSatelliteDopplerShift = mean(dopplerShifts);
meanNormalizedCFO = meanSatelliteDopplerShift / wifi_be_subcarrier_spacing;
if use_t1_as_t4
mcs_values_t1 = mcs_values;
progressTitle = "Task 4.1";
else
mcs_values_t1 = [2];
progressTitle = "Task 1";
disp("Mean Elevation Angle: " + meanElevationAngle + "°")
disp("Mean Slant Range: " + meanSlantRange + "m")
disp("Mean Satellite Doppler Shift: " + meanSatelliteDopplerShift + "Hz")
disp("Normalized CFO: " + meanNormalizedCFO)
meanSlantRange = mean(slantRanges);
meanSatelliteDopplerShift = mean(dopplerShifts);
meanNormalizedCFO = meanSatelliteDopplerShift / wifi_be_subcarrier_spacing;
disp("Mean Elevation Angle: " + meanElevationAngle + "°")
disp("Mean Slant Range: " + meanSlantRange + "m")
disp("Mean Satellite Doppler Shift: " + meanSatelliteDopplerShift + "Hz")
disp("Normalized CFO: " + meanNormalizedCFO)
end
errorCounts = zeros(numel(mcs_values_t1), numel(snrs));
packetCounts = zeros(numel(mcs_values_t1), numel(snrs));