From 7519c23442d258e039c71dd57d9412e2bc76eebb Mon Sep 17 00:00:00 2001 From: ti_mo Date: Fri, 12 Jun 2026 14:22:18 +0200 Subject: [PATCH] task4 done --- lab_4/lab_4.m | 4 ++-- lab_4/link_level_measurements.md | 15 ++++++++++++ pnr_snr_cbw.svg => lab_4/per_snr_cbw.svg | 0 lab_4/task1.m | 30 ++++++++++++------------ 4 files changed, 32 insertions(+), 17 deletions(-) rename pnr_snr_cbw.svg => lab_4/per_snr_cbw.svg (100%) diff --git a/lab_4/lab_4.m b/lab_4/lab_4.m index c2eebb1..cfb54f5 100644 --- a/lab_4/lab_4.m +++ b/lab_4/lab_4.m @@ -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; diff --git a/lab_4/link_level_measurements.md b/lab_4/link_level_measurements.md index 30e310b..a431ebd 100644 --- a/lab_4/link_level_measurements.md +++ b/lab_4/link_level_measurements.md @@ -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. +
## Task 5 \ No newline at end of file diff --git a/pnr_snr_cbw.svg b/lab_4/per_snr_cbw.svg similarity index 100% rename from pnr_snr_cbw.svg rename to lab_4/per_snr_cbw.svg diff --git a/lab_4/task1.m b/lab_4/task1.m index 9615a45..4af6979 100644 --- a/lab_4/task1.m +++ b/lab_4/task1.m @@ -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));