LTE Primopredajnik
Loading...
Searching...
No Matches
transmitter.resource_grid.ResourceGrid Class Reference

Public Member Functions

None __init__ (self, int ndlrb=6, int num_subframes=1, bool normal_cp=True)
None map_pss (self, np.ndarray pss_sequence, int symbol_index)
None map_pbch (self, np.ndarray pbch_symbols, Iterable[int] pbch_symbol_indices, Optional[np.ndarray] reserved_re_mask=None)

Public Attributes

 ndlrb = ndlrb
 num_subframes = num_subframes
 normal_cp = normal_cp
int num_subcarriers = 12 * ndlrb
int num_symbols_per_subframe = 14 if normal_cp else 12
int num_symbols_total = self.num_symbols_per_subframe * num_subframes
 grid

Detailed Description

Klasa za reprezentaciju LTE resource grid-a i mapiranje PSS i PBCH simbola.

Resource grid je dvodimenzionalna matrica kompleksnih brojeva dimenzija
(12 * NDLRB, broj_OFDM_simbola), gdje redovi predstavljaju podnosioca
(subcarriere), a kolone OFDM simbole.

Parametri
----------
ndlrb : int, opcionalno
    Broj downlink resource blokova (NDLRB). Za 1.4 MHz LTE vrijedi 6.
num_subframes : int, opcionalno
    Broj LTE 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).

Atributi
--------
ndlrb : int
    Broj downlink resource blokova.
num_subframes : int
    Broj subfrejmova u gridu.
normal_cp : bool
    Označava da li se koristi normalni ili prošireni CP.
num_subcarriers : int
    Ukupan broj podnosioca (12 * ndlrb).
num_symbols_per_subframe : int
    Broj OFDM simbola po subfrejmu (14 ili 12).
num_symbols_total : int
    Ukupan broj OFDM simbola u gridu.
grid : np.ndarray (complex128)
    Kompleksna matrica oblika (num_subcarriers, num_symbols_total)
    koja predstavlja LTE resource grid.

Primjer
-------
>>> from transmitter.resource_grid import ResourceGrid
>>> rg = ResourceGrid(ndlrb=6, num_subframes=1, normal_cp=True)
>>> rg.grid.shape
(72, 14)

Member Function Documentation

◆ map_pbch()

None transmitter.resource_grid.ResourceGrid.map_pbch ( self,
np.ndarray pbch_symbols,
Iterable[int] pbch_symbol_indices,
Optional[np.ndarray] reserved_re_mask = None )
Mapira PBCH QPSK simbole u resource grid (centar 6 RB).

PBCH se mapira na zadane OFDM simbole (tipično l = 7, 8, 9, 10
u subfrejmu 0 za normalni CP), u centralnih 6 resource blokova
(NDLRB = 6). Ako je zadana `reserved_re_mask`, PBCH preskače te RE.

Parametri
----------
pbch_symbols : np.ndarray (complex128)
    Jednodimenzionalni niz kompleksnih QPSK simbola (npr. 240 simbola
    za normalni CP nakon CRC, konvolucijskog kodiranja i
    rate matchinga).
pbch_symbol_indices : Iterable[int]
    Indeksi OFDM simbola (kolone u gridu) u koje se PBCH mapira.
reserved_re_mask : np.ndarray (bool), opcionalno
    Bool matrica istih dimenzija kao `grid`, gdje je True na
    pozicijama koje su rezervisane (CRS itd.). PBCH se ne mapira
    na te resource elemente.

Povratna vrijednost
-------------------
None
    Funkcija radi in-place i mijenja atribut `grid` unutar objekta.

Izuzeci
-------
AssertionError
    Ako dimenzije grida ne odgovaraju 12 * NDLRB,
    ako je neki indeks u pbch_symbol_indices van opsega,
    ili ako reserved_re_mask nije istih dimenzija kao grid.

Primjer
-------
>>> from transmitter.resource_grid import ResourceGrid
>>> import numpy as np
>>> rg = ResourceGrid(ndlrb=6)
>>> pbch = np.ones(240, dtype=complex)
>>> rg.map_pbch(pbch_symbols=pbch, pbch_symbol_indices=[7, 8, 9, 10])

◆ map_pss()

None transmitter.resource_grid.ResourceGrid.map_pss ( self,
np.ndarray pss_sequence,
int symbol_index )
Mapira PSS sekvencu u centar resource grid-a na zadati OFDM simbol.

PSS sekvenca dužine 62 se mapira na 62 uzastopna resource elementa
(RE) oko DC komponente, u skladu sa specifikacijom za NDLRB = 6.
Za normalni CP i subfrejm 0, PSS je u zadnjem simbolu slota 0 (l = 6).

Parametri
----------
pss_sequence : np.ndarray (complex128)
    Kompleksni niz dužine 62 koji predstavlja PSS sekvencu
    u frekvencijskom domenu (Zadoff–Chu).
symbol_index : int
    Indeks OFDM simbola (kolona) u koji se PSS mapira.
    Mora biti u opsegu [0, broj_OFDM_simbola - 1].

Povratna vrijednost
-------------------
None
    Funkcija radi in-place i mijenja atribut `grid` unutar objekta.

Izuzeci
-------
AssertionError
    Ako dimenzije grida ne odgovaraju 12 * NDLRB.
    Ako PSS sekvenca nema tačno 62 elementa.
    Ako je symbol_index van važećeg opsega.

Primjer
-------
>>> from transmitter.resource_grid import ResourceGrid
>>> import numpy as np
>>> rg = ResourceGrid(ndlrb=6)
>>> pss = np.ones(62, dtype=complex)
>>> rg.map_pss(pss_sequence=pss, symbol_index=6)
>>> rg.grid[0, 6]  # jedan od mapiranih RE
(1+0j)

Member Data Documentation

◆ grid

transmitter.resource_grid.ResourceGrid.grid
Initial value:
= np.zeros(
(self.num_subcarriers, self.num_symbols_total),
dtype=complex,
)

The documentation for this class was generated from the following file:
  • transmitter/resource_grid.py