comnum.cdl_profile#

comnum.cdl_profile(name, delay_spread_s)#

The power-delay profile of a CDL profile of 3GPP TR 38.901 for a desired RMS delay spread: one tap per cluster.

The five profiles are the Tables 7.7.1-1 to 7.7.1-5 of TR 38.901 V17.0.0: CDL-A, CDL-B and CDL-C without line of sight (23, 23 and 24 clusters), CDL-D and CDL-E with a specular component in the first cluster (13 and 14 clusters). The delays of the tables are normalised to a unit RMS delay spread and scaled by the desired one (Sec. 7.7.3, eq. 7.7-1), tau_n = tau_n,model * DS; the powers are the table entries normalised to a unit sum, the specular row of CDL-D/E added to its cluster. The result is the tap array TdlChannel takes, for a CDL profile with Clarke/Jakes fading instead of the ray geometry of CdlChannel.

Parameters:
  • name (str) – "CDL-A" to "CDL-E" (or "a" to "e", case-insensitive).

  • delay_spread_s (float) – desired RMS delay spread (s).

Returns:

the taps (n_clusters, 2), column 0 the delays (s) and column 1 the powers (dB), as power_delay_profile.

Return type:

numpy.ndarray

Raises:

ValueError – for an invalid parameter (the message names it).

Examples

>>> import comnum
>>> taps = comnum.cdl_profile("CDL-C", 100e-9)
>>> taps.shape, round(comnum.rms_delay_spread(taps) * 1e9, 1)
((24, 2), 100.0)