Fading channel
This module contains the FadingChan
class
which can be used to simulate OFDM transmission through a tapped delay line
(TDL) fading channel. The implementation is using GPU acceleration.
- class aerial.phy5g.chan_models.fading_chan.FadingChan
Fading channel class.
This class implements the fading channel that processes the frequency Tx samples and outputs frequency Rx samples. It includes OFDM modulation, tapped delay line (TDL) channel, OFDM demodulation, and adds noise based on input SNR.
- __init__(cuphy_carrier_prms, tdl_cfg, freq_in, proc_sig_freq=False, disable_noise=False, rand_seed=0)
Initialize the FadingChan class.
cuphy_carrier_prms: carrier parameters for the channel
tdl_config: configuration of TDL channel
freq_in: input frequency tx
proc_sig_freq: processing signal in freq domain will use the CFR from TDL class to process data on frequency domain. This mode may be inaccurate if CFO presents.
disable_noise: disable additive Gaussian noise
rand_seed: random seed for TDL channel generation
- Parameters
cuphy_carrier_prms (aerial.pycuphy.CuphyCarrierPrms) –
tdl_cfg (aerial.pycuphy.TdlConfig) –
freq_in (numpy.ndarray) –
proc_sig_freq (bool) –
disable_noise (bool) –
rand_seed (int) –
- Return type
None
- add_noise_with_snr(snr_db, enable_swap_tx_rx=False)
Add Gaussian noise to a complex signal with a specified SNR.
- Parameters
snr_db (float) – Desired Signal-to-Noise Ratio in decibels.
enable_swap_tx_rx (bool) – Swap tx and rx to simulate UL channel using DL class.
- Returns
The frequency-domain signal with noise added.
- Return type
np.ndarray
- add_noise_with_snr_numpy(snr_db, enable_swap_tx_rx=False)
Add Gaussian noise to a complex signal with a specified SNR.
- Parameters
snr_db (float) – Desired Signal-to-Noise Ratio in decibels.
enable_swap_tx_rx (bool) – Swap tx and rx to simulate UL channel using DL class.
pycuphy.GauNoiseAdder (This function is GPU-accelerated by add_noise_with_snr() and) –
- Returns
The frequency-domain signal with noise added.
- Return type
np.ndarray
- dump_channel(freq_in=None)
Dump TDL channel to numpy arrays.
- Returns
A tuple containing two numpy arrays (cfr_sc, cfr_prbg).
- Return type
tuple
- Parameters
freq_in (Optional[numpy.ndarray]) –
- get_genie_channel(freq_in=None, cfr_sc=None)
need to do ofdm demodulation of the rx-tx ant pair sample to get genie channel
- Parameters
freq_in (Optional[numpy.ndarray]) –
cfr_sc (Optional[numpy.ndarray]) –
- Return type
None
- run(tti_idx, snr_db, enable_swap_tx_rx=False, continous_fading=True, tx_column_major_ind=False, freq_in=None)
Run the fading channel.
- Parameters
tti_idx (int) – TTI index.
snr_db (float) – Signal-to-Noise Ratio in dB.
enable_swap_tx_rx (bool) – Swap tx and rx to simulate UL channel using DL class.
continous_fading (bool) – Whether enable continuous fading.
freq_in (np.ndarray) – Frequency domain input samples.
tx_column_major_ind (bool) –
- Returns
Frequency domain samples after channel processing.
- Return type
np.ndarray