resource_grid.py
Modul za kreiranje LTE resource grid-a i mapiranje PSS i PBCH simbola
u centar 6 RB (NDLRB = 6), u skladu sa poglavljima 7.5 i 7.6
knjige "Digital Signal Processing in Modern Communication Systems"
(A. Schwarzinger).
Ovaj modul koristi OOP pristup preko klase ResourceGrid, ali sadrži i
wrapper funkcije radi kompatibilnosti sa starim pozivima.
| np.ndarray transmitter.resource_grid.create_resource_grid |
( |
int | ndlrb = 6, |
|
|
int | num_subframes = 1, |
|
|
bool | normal_cp = True ) |
Kreira prazan LTE resource grid (kompatibilno sa starom verzijom).
Parametri
----------
ndlrb : int, opcionalno
Broj downlink resource blokova (NDLRB).
num_subframes : int, opcionalno
Broj subfrejmova u gridu.
normal_cp : bool, opcionalno
Ako je True, koristi se normalni CP (14 simbola po subfrejmu),
u suprotnom prošireni CP (12 simbola po subfrejmu).
Povratna vrijednost
-------------------
np.ndarray (complex128)
Prazan resource grid dimenzija (12 * ndlrb, broj_OFDM_simbola).
Primjer
-------
>>> from transmitter.resource_grid import create_resource_grid
>>> grid = create_resource_grid(ndlrb=6, num_subframes=1, normal_cp=True)
>>> grid.shape
(72, 14)
| None transmitter.resource_grid.map_pbch_to_grid |
( |
np.ndarray | grid, |
|
|
np.ndarray | pbch_symbols, |
|
|
Iterable[int] | pbch_symbol_indices, |
|
|
int | ndlrb = 6, |
|
|
Optional[np.ndarray] | reserved_re_mask = None ) |
Wrapper funkcija za mapiranje PBCH simbola (radi kompatibilnosti).
Interno kreira ResourceGrid objekat, postavlja njegov `grid` na ulazni
i poziva `ResourceGrid.map_pbch`.
Parametri
----------
grid : np.ndarray (complex128)
Resource grid dimenzija (12 * ndlrb, broj_OFDM_simbola).
pbch_symbols : np.ndarray (complex128)
Jednodimenzionalni niz QPSK simbola.
pbch_symbol_indices : Iterable[int]
Indeksi OFDM simbola u koje se PBCH mapira.
ndlrb : int, opcionalno
Broj downlink resource blokova.
reserved_re_mask : np.ndarray (bool), opcionalno
Maska rezervisanih RE (isti oblik kao grid).
Povratna vrijednost
-------------------
None
Funkcija radi in-place i mijenja sadržaj `grid`.
Primjer
-------
>>> from transmitter.resource_grid import create_resource_grid, map_pbch_to_grid
>>> import numpy as np
>>> grid = create_resource_grid(ndlrb=6)
>>> pbch = np.ones(240, dtype=complex)
>>> map_pbch_to_grid(grid, pbch, pbch_symbol_indices=[7, 8, 9, 10], ndlrb=6)
| None transmitter.resource_grid.map_pss_to_grid |
( |
np.ndarray | grid, |
|
|
np.ndarray | pss_sequence, |
|
|
int | symbol_index, |
|
|
int | ndlrb = 6 ) |
Wrapper funkcija za mapiranje PSS-a (radi kompatibilnosti sa starim kodom).
Interno kreira ResourceGrid objekat, postavlja njegov `grid` na ulazni
i poziva `ResourceGrid.map_pss`.
Parametri
----------
grid : np.ndarray (complex128)
Resource grid dimenzija (12 * ndlrb, broj_OFDM_simbola).
pss_sequence : np.ndarray (complex128)
PSS sekvenca dužine 62.
symbol_index : int
Indeks OFDM simbola u koji se PSS mapira.
ndlrb : int, opcionalno
Broj downlink resource blokova.
Povratna vrijednost
-------------------
None
Funkcija radi in-place i mijenja sadržaj `grid`.
Primjer
-------
>>> from transmitter.resource_grid import create_resource_grid, map_pss_to_grid
>>> import numpy as np
>>> grid = create_resource_grid(ndlrb=6)
>>> pss = np.ones(62, dtype=complex)
>>> map_pss_to_grid(grid, pss, symbol_index=6, ndlrb=6)