LTE Primopredajnik
Loading...
Searching...
No Matches
examples.rx_pss_correlation_demo Namespace Reference

Functions

list[int] symbol_start_indices (OFDMModulator ofdm)
tuple[np.ndarray, float, int] build_pss_template_time (int n_id_2, int ndlrb, bool normal_cp)
tuple[np.ndarray, int, int] correlate_templates_norm (np.ndarray rx, dict[int, np.ndarray] templates)
None plot_three_subplots (np.ndarray metrics, int tau_hat, int nid_hat, float fs, Path out_path, int|None tau_expected, int half_win=1200, int smooth_len=21)
 main ()

Variables

 THIS_FILE = Path(__file__).resolve()
 PROJECT_ROOT = THIS_FILE.parents[1]

Detailed Description

RX-only: PSS korelacija (3 krive) + odabir N_ID_2

Šta treba da vidiš na slici (očekivano):
- Imaš 3 subplota: N_ID_2 = 0, 1, 2 (tri kandidata PSS sekvence).
- Na JEDNOM subplotu treba biti dominantan peak oko stvarne pozicije PSS-a:
    - To je onaj subplot čiji je N_ID_2 jednak N_ID_2_hat (označeno "(odabrano)").
- Vertikalna isprekidana crna linija = detektovani tau_hat.
- Siva tačkasta linija (ako je prikazana) = očekivani položaj (tau_expected) za ovaj demo.
- Y osa je rel dB: maksimum svake krive je 0 dB → peak se odmah vidi, šum je negativan.

Kako pokrenuti:
    python examples/rx_pss_correlation_demo.py

Output:
    examples/results/rx/pss_correlation_metrics_3subplots_relDB.png

Function Documentation

◆ build_pss_template_time()

tuple[np.ndarray, float, int] examples.rx_pss_correlation_demo.build_pss_template_time ( int n_id_2,
int ndlrb,
bool normal_cp )
Napravi TX waveform samo sa PSS (1 subframe), pa izvadi vremenski segment PSS simbola (CP+FFT dio).
Vraća: (template, fs, pss_symbol_start_index_u_subframe_waveformu).

◆ correlate_templates_norm()

tuple[np.ndarray, int, int] examples.rx_pss_correlation_demo.correlate_templates_norm ( np.ndarray rx,
dict[int, np.ndarray] templates )
Normalizovana korelacija:
    metric(tau) = |sum r[tau+n] * conj(t[n])| / (sqrt(sum|r|^2) * sqrt(sum|t|^2))

Bitno:
- np.correlate za kompleksne nizove već radi conj nad drugim argumentom,
  zato se poziva kao np.correlate(rx, t), a NE np.conj(t).

◆ plot_three_subplots()

None examples.rx_pss_correlation_demo.plot_three_subplots ( np.ndarray metrics,
int tau_hat,
int nid_hat,
float fs,
Path out_path,
int | None tau_expected,
int half_win = 1200,
int smooth_len = 21 )
Pravi jedan graf sa 3 subplota (rel dB), zumiran oko tau_hat.

◆ symbol_start_indices()

list[int] examples.rx_pss_correlation_demo.symbol_start_indices ( OFDMModulator ofdm)
Start indeksi OFDM simbola u waveform-u.