EXEMPLAR FRAMES DATASET ======================= OVERVIEW -------- This dataset contains 1009 decoded Starlink Ku-band downlink frames representing high-quality OFDM frame data used for template analysis, modulation mapping, and signal intelligence research. Dataset Details: Satellite: STARLINK-31848 Hardware: v2.0-mini Frame Count: 1009 frames Capture Date: January 21, 2025 Dataset file: decodedExemplarFrames_20251019T2214.mat DATASET FIELDS ============== Primary Signal Data (3D Arrays) ------------------------------- yDataDec -- Hard-Decoded Symbols Dimensions: [1024 x 301 x nFrames] Type: Complex double Description: Frequency-domain symbols after demodulation and hard decision decoding. Each symbol is mapped to the nearest constellation point. Indexing: yDataDec(k+1, i, m+1) where: k = subcarrier index (0-indexed in paper, 1-indexed in MATLAB) i = OFDM symbol index within frame (1-301, same in both) m = frame number (0-indexed in paper, 1-indexed in MATLAB) Notes: Inactive subcarriers are zero-filled. First OFDM symbol (SSS) is excluded from this array. Valid data typically on subcarriers 3:1022. yDataSoft -- Soft-Decoded Symbols Dimensions: [1024 x 301 x nFrames] Type: Complex double Description: Normalized (soft) symbols after phase/timing correction and power normalization, before hard decision. Outer constellation ring lies on the unit circle. Indexing: Same as yDataDec Use case: Constellation analysis, SNR estimation, equalizer performance modEst -- Estimated Modulation Constellations Dimensions: [301 x nFrames] Type: Cell array Description: Estimated constellation points for each OFDM symbol in each frame. Each cell contains a vector of complex constellation values (e.g., QPSK = 4 points, 16-QAM = 16 points). Indexing: modEst{i, m+1} returns constellation for symbol i of frame m Use case: Adaptive modulation tracking, modulation classification Per-Frame Metadata (1D Arrays) ------------------------------ hasTemplate -- Reference Template Indicator Dimensions: [1 x nFrames] Type: Logical Description: Boolean flag indicating whether frame matches the known QPSK template pattern Use case: Identifying reference frames for synchronization and analysis SINRs -- Signal Quality Dimensions: [1 x nFrames] Type: Double Units: Decibels (dB) Description: Signal-to-interference-plus-noise ratio estimated during frame acquisition Typical range: 9-19 dB betas -- Doppler Shift Estimates Dimensions: [1 x nFrames] Type: Double Units: Fractional frequency offset (ppm when multiplied by 1e6) Description: Estimated carrier frequency offset due to satellite motion (Doppler) Use case: Doppler tracking, orbit propagation validation zRates -- Timing Drift Rates Dimensions: [1 x nFrames] Type: Double Units: Samples per symbol (rate of change) Description: Rate of change of residual timing error across OFDM symbols Use case: Clock offset tracking, timing synchronization analysis TOAs or TOAschunk -- Time of Arrival Dimensions: [1 x nFrames] Type: Double Units: Seconds (relative to start of IQ capture) Description: Estimated arrival time of each frame's first sample Use case: Timing analysis, pseudorange computation, navigation solutions Estimation Results (2D Arrays) ------------------------------ phiEstFrames -- Phase Estimates Dimensions: [301 x nFrames] Type: Double Units: Radians Description: Estimated residual carrier phase offset for each OFDM symbol in each frame (after initial Doppler correction) Indexing: phiEstFrames(i, m+1) = phase estimate for symbol i of frame m Use case: Phase tracking, carrier recovery analysis zEstFrames -- Timing Estimates Dimensions: [301 x nFrames] Type: Double Units: Fractional samples Description: Estimated residual timing offset for each OFDM symbol in each frame Indexing: zEstFrames(i, m+1) = timing estimate for symbol i of frame m Use case: Symbol timing recovery, clock drift analysis Processing Configuration ------------------------ filename -- Source Filename Type: String Description: Base name of the source IQ data file (without extension) validIndices -- Active Subcarriers Type: Integer vector Typical: 3:1022 (1-indexd) Description: Subcarrier indices used during decoding (excludes DC, guard bands) SINR_MINIMUM -- Quality Threshold Type: Double Units: Decibels (dB) Typical: 8 Description: Minimum acceptable SINR for frame inclusion in dataset FRAME_LOAD_MARGIN -- Timing Margin Type: Double Units: Fraction of frame period (1/750 s) Typical: 0.25 Description: Safety margin for IQ data loading around each TOA USAGE EXAMPLE ============= See loadAndPlotExemplarFrames.m for a complete visualization example. DATA PROCESSING PIPELINE ======================== 1. IQ Capture -> Raw baseband samples from SDR 2. Frame Acquisition -> Detect frame boundaries, estimate CFO and SINR 3. Doppler Compensation -> Resample and frequency-shift to remove satellite motion 4. ML Estimation -> Joint timing (z) and phase (phi) estimation 5. Modulation Detection -> Identify constellation per OFDM symbol 6. Decoding -> Channel equalization, normalization, hard decisions 7. Template Matching -> Flag all-QPSK reference frames SIGNAL PARAMETERS ================= Based on starlinkConstants.m: Sampling rate (Fs): 240 MHz FFT size (N): 1024 subcarriers Cyclic prefix (Ng): 32 samples Frame rate (Ff): 750 Hz Symbols per frame: 301 (1 SSS + 300 data symbols) Band center: 10.7-12.7 GHz (Ku-band downlink) NOTES ===== - Indexing: The paper uses 0-based indexing for k (subcarrier) and m (frame). MATLAB arrays use 1-based indexing, so add 1 to convert. The symbol index i uses the same convention in both (i=1..301 for data symbols, i=0 for SSS). - Reference templates contain all-QPSK modulation and match a known LFSR-based pattern. Used for reference and calibration. - NaN values indicate invalid or skipped subcarriers/symbols. - Phase/timing correction applied in frequency domain via exp(-1j*2*pi*d*z/N + 1j*phi) per symbol.