Main Content

lteFadingChannel

Multipath fading MIMO channel propagation conditions

Description

[rx,info] = lteFadingChannel(model,tx) filters waveform tx through the Rayleigh fading channel parameterized by model. The function returns channel output waveform rx and channel model information info. For information about the multiple-input multiple-output (MIMO) multipath fading channel that this function implements, see Fading Channel Model Delay.

example

Examples

collapse all

Define the channel configuration structure.

model = struct(DelayProfile="EPA",NRxAnts=1, ...
    DopplerFreq = 5,MIMOCorrelation="Low", ...
    Seed=1,InitPhase="Random",ModelType="GMEDS", ...
    NTerms=16,NormalizeTxAnts="On", ...
    NormalizePathGains="On");

Define the transmission waveform configuration structure, initialized to reference measurement channel (RMC) R.10 and one subframe.

rmc = lteRMCDL("R.10");
rmc.TotSubframes = 1;

Generate ten subframes, one subframe at a time, by following these steps.

  1. Define delay, which accounts for a combination of implementation delay and channel delay spread.

  2. Set the subframe number and initialize the subframe start time, allocating 1 ms per subframe.

  3. Generate a transmit waveform.

  4. Initialize the number of transmit antennas and the waveform sampling rate.

  5. Send the waveform through the channel. Append delay zeros to the generated waveform prior to channel filtering.

delay = 25;
for subframeNumber = 0:9
    
    rmc.NSubframe = mod(subframeNumber,10);
    model.InitTime = subframeNumber/1000;
    
    [waveform,txGrid,info] = lteRMCDLTool(rmc,[1; 0; 1; 1]);
    
    numTxAnt = size(waveform,2);
    model.SamplingRate = info.SamplingRate;
    tx = [waveform; zeros(delay,numTxAnt)];
    
    [rx,info] = lteFadingChannel(model,tx);
end

Transmit two consecutive frames over a fading channel while maintaining continuity in the fading process between the end of the first frame and the beginning of the second frame.

Initialize a resource grid to RMC R.10 and generate a transmit waveform for the first frame.

rmc = lteRMCDL("R.10");
[waveform,~,info] = lteRMCDLTool(rmc,[1; 0; 1]);

Initialize a propagation channel configuration structure and set the start time for the first frame.

model = struct(DelayProfile="EPA",NRxAnts=1, ...
    DopplerFreq=5,MIMOCorrelation="Low", ...
    SamplingRate=info.SamplingRate,Seed=1, ...
    InitPhase="Random",ModelType="GMEDS", ...
    NTerms=16,NormalizeTxAnts="On", ...
    NormalizePathGains="On",InitTime=0);
nTxAnts = size(waveform,2);

Define delay and append zeros to the generated waveform prior to channel filtering.

delay = 25;
tx = [waveform; zeros(delay,nTxAnts)];

Filter the first frame through the channel.

[rx1,info1] = lteFadingChannel(model,tx);

Update the frame number, and then generate a transmit waveform for the second frame with the start time set to 10 ms.

model.NFrame = 1;
[waveform,txGrid] = lteRMCDLTool(rmc,[1; 0; 1]);
tx = [waveform; zeros(delay,nTxAnts)];
model.InitTime = 10e-3;

Pass the second frame through the channel.

[rx2,info2] = lteFadingChannel(model,tx);

Input Arguments

collapse all

Multipath fading channel model, specified as a structure containing these fields.

FieldRequired or OptionalValuesDescriptionDependencies
NRxAntsRequired

Positive integer

Number of receive antennasNot applicable
MIMOCorrelationRequired

"Low", "Medium", "UplinkMedium", "High", "Custom"

Correlation between UE and eNodeB antennas.

  • To specify no correlation between antennas, set this field to "Low"

  • To specify the correlation level defined in Annex B.2.3.2 of TS 36.101 [1], which applies to tests defined in TS 36.101, set this field to "Medium"

  • To specify the correlation level defined in Annex B.5.2 of TS 36.104 [2], which applies to tests defined in TS 36.104, set this field to "UplinkMedium"

  • To specify strong correlation between antennas, set this field to "High"

  • To specify correlation between antennas in the TxCorrelationMatrix and RxCorrelationMatrix fields, set this field to "Custom".

Note

Because the "Low" and "High" correlation levels are the same for uplink and downlink, they apply to tests defined in TS 36.101 and TS 36.104.

NormalizeTxAntsOptional

"On" (default), "Off"

Transmit antenna number normalization. To normalize the output waveform by 1/√P, where P is the number of transmit antennas, set this field to "On". Normalization by the number of transmit antennas ensures that the number of transmit antennas does not affect the output power per receive antenna.

DelayProfileRequired

"EPA", "EVA", "ETU", "Custom", "Off"

Delay profile model. For more information, see Propagation Channel Models.

To completely switch off fading and implement a MIMO channel model that is constant in time and frequency, set this field to "Off". In this case, the number of columns in the in input specifies the number of transmit antennas, the NRxAnts field specifies the number of receive antennas, and the MIMOCorrelation field specifies the MIMO correlation. The temporal part of the model for each link between transmit and receive antennas consists of a single path with zero delay and constant unit gain. This setting does not implement the channel model defined in Annex B.1 of [1].

DopplerFreqRequiredNonnegative scalarMaximum Doppler frequency in HzTo enable these fields, set the DelayProfile field to a value other than "Off".
SamplingRateRequiredPositive scalarInput waveform sampling rate
InitTimeRequiredNonnegative scalar

Fading process time offset in seconds

NTermsOptional

16 (default)

Power of 2

Number of oscillators used in fading path modeling

ModelTypeOptional

"GMEDS" (default), "Dent"

Rayleigh fading model type.

  • To model Rayleigh fading by using the generalized method of exact Doppler spread (GMEDS) described in [4], set this field to "GMEDS".

  • To model Rayleigh fading by using the modified Jakes fading model described in [3], set this field to "Dent".

Note

Setting this field to "Dent" is not recommended. Use "GMEDS" instead.

NormalizePathGainsOptional

"On" (default), "Off"

Model output normalization.

  • To normalize the rx output such that the average power is unity, set this field to "On".

  • To normalize the rx output such that the average output power is the sum of the powers of the taps of the delay profile, set this field to "Off".

InitPhaseOptional

"Random" (default)

Scalar

4-D array

Phase initialization for the sinusoidal components of the model.

  • To randomly initialize the phases according to the value of the Seed field, set this field to "Random".

  • To specify the same phase, in radians, of all components, set this field to a scalar.

  • To specify the phase, in radians, of each component explicitly, set this field to a 4-D array of size N-by-L-by-P-by-NRxAnts.

    • N is the number of phase initialization values per path.

    • L is the number of paths.

    • P is the number of transmit antennas.

    • NRxAnts is the number of receive antennas.

Note

  • When you set the ModelType field to "GMEDS", N is equal to 2 ×NTerms.

  • When you set the ModelType field to "Dent", N is equal to NTerms.

SeedRequiredScalar

Random number generator seed. To use a random seed, set this field to 0.

Note

  • To produce distinct results, set this field to a value in the interval

    [0,231  1  K(K-1)/2],

    where K = P × model.NRxAnts, which is the product of the number of transmit and receive antennas. Avoid using values outside of this recommended range, because doing so can result in random sequences that repeat results produced using values inside the recommended range.

  • The state of MATLAB® random number generators, for example by calls to the rng function, does not affect fading channel random seed behavior.

To enable this field, set the DelayProfile field to a value other than "Off" and the InitPhase field to "Random".
AveragePathGaindBRequiredVector

Average gains of the discrete paths in dB

To enable these fields, set the DelayProfile field to "Custom".
PathDelaysRequiredVector

Delays of the discrete paths in seconds. This vector must be the same size as AveragePathGaindB. If these delays are not a multiple of the sampling period, the function uses fractional delay filters to implement them.

TxCorrelationMatrixRequiredComplex-valued matrix

Correlation between each of the transmit antennas, specified as a complex-valued matrix of size P-by-P.

To enable these fields, set the MIMOCorrelation field to "Custom".
RxCorrelationMatrixRequiredComplex-valued matrix

Correlation between each of the receive antennas, specified as a complex-valued matrix of size NRxAnts-by-NRxAnts.

Data Types: struct

Input samples, specified as a complex-valued matrix of size T-by-P, where T is the number of time-domain samples, and P is the number of transmit antennas. Each column of this input corresponds to the waveform at one transmit antenna.

Data Types: double | single
Complex Number Support: Yes

Output Arguments

collapse all

Channel output waveform, returned as a complex-valued matrix. Each column of rx corresponds to the waveform at a receive antenna. This output has the same number of rows as the tx input.

Data Types: double | single
Complex Number Support: Yes

Channel modeling information, returned as a structure containing these fields.

Parameter FieldValuesDescription
ChannelFilterDelay

Scalar value

Implementation delay of the internal channel filtering, in samples
PathGains

Numeric array

Complex gain of the discrete channel paths, returned as a numeric array of size T-by-L-by-P-by-NRxAnts.

  • T is the number of output samples.

  • L is the number of paths.

  • P is the number of transmit antennas.

  • NRxAnts is the number of receive antennas.

PathSampleDelays

Row vector

Delays of the discrete channel paths, in samples, returned at the sampling rate specified in the SamplingRate field of the model input.

AveragePathGaindBRow vector

Average gains of the discrete paths in dB

Data Types: struct

Algorithms

collapse all

Fading Channel Model Delay

This function implements the MIMO multipath fading channel model specified in [1] and [2]. The transmitted waveform passes through the multipath Rayleigh fading channel model specified by the input structure model. The function resamples the delay profile of the model input to match the input waveform sampling rate. When the path delays are not a multiple of the sampling rate, the function uses fractional delay filters to implement them. These filters introduce an implementation delay of info.ChannelFilterDelay samples. The waveform passing through the channel passes through these filters and incurs this channel filter delay regardless of the value of the path delays.

References

[1] 3GPP TS 36.101. “Evolved Universal Terrestrial Radio Access (E-UTRA); User Equipment (UE) radio transmission and reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. https://www.3gpp.org.

[2] 3GPP TS 36.104. “Evolved Universal Terrestrial Radio Access (E-UTRA); Base Station (BS) radio transmission and reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. https://www.3gpp.org.

[3] Dent, P., G. E. Bottomley, and T. Croft. “Jakes Fading Model Revisited.” Electronics Letters. 29, no. 13 (1993): 1162–1163.

[4] Pätzold, Matthias, Cheng-Xiang Wang, and Bjørn Olav Hogstad. “Two New Sum-of-Sinusoids-Based Methods for the Efficient Generation of Multiple Uncorrelated Rayleigh Fading Waveforms.” IEEE Transactions on Wireless Communications. 8, no. 6 (2009): 3122–3131.

Version History

Introduced in R2013b