Multipath fading MIMO channel propagation conditions
Transmit a number of subframes through a fading channel using a for
-loop.
Define the channel configuration structure.
chcfg.DelayProfile = 'EPA'; chcfg.NRxAnts = 1; chcfg.DopplerFreq = 5; chcfg.MIMOCorrelation = 'Low'; chcfg.Seed = 1; chcfg.InitPhase = 'Random'; chcfg.ModelType = 'GMEDS'; chcfg.NTerms = 16; chcfg.NormalizeTxAnts = 'On'; chcfg.NormalizePathGains = 'On';
Define the transmission waveform configuration structure, initialized to RMC 'R.10'
and one subframe.
rmc = lteRMCDL('R.10');
rmc.TotSubframes = 1;
Within a for
-loop, generate ten subframes, one subframe at a time.
Outside the for
-loop, define delay
, which accounts for a combination of implementation delay and channel delay spread.
Set the subframe number and initialize the subframe start time, allocating 1 ms per subframe.
Generate a transmit waveform.
Initialize the number of transmit antennas and the waveform sampling rate.
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); chcfg.InitTime = subframeNumber/1000; [txWaveform,txGrid,info] = lteRMCDLTool(rmc,[1;0;1;1]); numTxAnt = size(txWaveform,2); chcfg.SamplingRate = info.SamplingRate; rxWaveform = lteFadingChannel(chcfg,[txWaveform; zeros(delay,numTxAnt)]); end
Transmit two consecutive frames over the fading channel while maintaining continuity in the fading process between the end of the first frame and the beginning of the second.
The first frame is transmitted at time t = 0 s. The second frame is transmitted at time t = 10 ms.
Initialize a resource grid to RMC R.10 and generate a transmit waveform for the first frame. Initialize a propagation channel configuration structure and set the start time for the first frame. Pass the first frame through the channel.
rmc = lteRMCDL('R.10'); [txWaveform,txGrid,info] = lteRMCDLTool(rmc,[1;0;1]); chcfg.DelayProfile = 'EPA'; chcfg.NRxAnts = 1; chcfg.DopplerFreq = 5; chcfg.MIMOCorrelation = 'Low'; chcfg.SamplingRate = info.SamplingRate; chcfg.Seed = 1; chcfg.InitPhase = 'Random'; chcfg.ModelType = 'GMEDS'; chcfg.NTerms = 16; chcfg.NormalizeTxAnts = 'On'; chcfg.NormalizePathGains = 'On'; chcfg.InitTime = 0; numTxAnt = size(txWaveform,2);
Define delay
and append zeros to the generated waveform prior to channel filtering. delay
accounts for a combination of implementation delay and channel delay spread.
delay = 25; rxWaveform = lteFadingChannel(chcfg,[txWaveform; zeros(delay,numTxAnt)]);
Update the frame number and generate a transmit waveform for the second frame. Set the start time for the second frame to 10 ms. Pass the second frame through the channel.
rmc.NFrame = 1; [txWaveform,txGrid] = lteRMCDLTool(rmc,[1;0;1]); chcfg.InitTime = 10e-3; rxWaveform = lteFadingChannel(chcfg,[txWaveform; zeros(delay,numTxAnt)]);
model
— Multipath fading channel modelMultipath fading channel model, specified as a structure containing these fields.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
NRxAnts | Required | Positive scalar integer | Number of receive antennas |
MIMOCorrelation | Required |
| Correlation between UE and eNodeB antennas
Note The
|
NormalizeTxAnts | Optional |
| Transmit antenna number normalization, specified as.
|
DelayProfile | Required |
| Delay profile model. For more information, see Propagation Channel Models. Setting |
The following fields are applicable
when DelayProfile is set to a value other than 'Off' . | |||
DopplerFreq | Required | Scalar value | Maximum Doppler frequency, in Hz. |
SamplingRate | Required | Numeric scalar | Input signal sampling rate, the rate of each sample in the rows
of the input matrix, |
InitTime | Required | Numeric scalar | Fading process time offset, in seconds. |
NTerms | Optional | 16 (default) scalar power of 2 | Number of oscillators used in fading path modeling. |
ModelType | Optional |
| Rayleigh fading model type. Note
|
NormalizePathGains | Optional |
| Model output normalization.
|
InitPhase | Optional | 'Random' (default), a scalar value (in radians),
or a numeric array | Phase initialization for the sinusoidal components of the model, specified as:
Note
|
The following field is applicable
when DelayProfile is set to a value other than 'Off' and InitPhase is
set to 'Random' . | |||
Seed | Required | Scalar value | Random number generator seed. To use a random seed, set Note
|
The following fields are applicable
when DelayProfile is set to 'Custom' . | |||
AveragePathGaindB | Required | Vector | Average gains of the discrete paths, expressed in dB. |
PathDelays | Required | Vector | Delays of the discrete paths, expressed in seconds. This
vector must have the same size as |
The following fields are applicable
when MIMOCorrelation is set to 'Custom' . | |||
TxCorrelationMatrix | Required | Matrix | Correlation between each of the transmit antennas, specified as a P-by-P complex matrix. |
RxCorrelationMatrix | Required | Matrix | Correlation between each of the receive antennas, specified
as a complex matrix of size |
Data Types: struct
in
— Input samplesInput samples, specified as a numeric T-by-P matrix. T is
the number of time-domain samples and P is the
number of transmit antennas. Each column of in
corresponds
to the waveform at each of the transmit antennas.
Data Types: double
| single
Complex Number Support: Yes
out
— Channel output signalChannel output signal, returned as a numeric matrix. Each column
of out
corresponds to the waveform at each of
the receive antennas. out
has the same number
of rows as the input, in
.
Data Types: double
| single
Complex Number Support: Yes
info
— Channel modeling informationChannel modeling information, returned as a structure. info
contains the following fields.
Parameter Field | Values | Description |
---|---|---|
ChannelFilterDelay | Scalar value | The implementation delay of the internal channel filtering, in samples. |
PathGains | Numeric array | Complex gain of the discrete channel paths, specified
as a numeric array of size T-by-L-by-P-by-
|
PathSampleDelays | Row vector | Delays of the discrete channel paths. The delays are
expressed in samples at the sampling rate specified in |
AveragePathGaindB | Row vector |
Average gains of the discrete paths, expressed in dB. |
Data Types: struct
The function implements the MIMO multipath
fading channel model, as specified in TS 36.101 [1] and TS 36.104 [2].
The transmitted waveform passes through the multipath Rayleigh fading
channel model specified by the input structure model
.
The delay profile of model
is resampled to match
the input signal sampling rate. When the path delays are not a multiple
of the sampling rate, fractional delay filters are used internally
to implement them. These filters introduce an implementation delay
of info
.
ChannelFilterDelay
samples.
The signal passing through the channel, passes through these filters
and incurs the ChannelFilterDelay
, regardless of
the value of the path delays.
[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. URL: 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. URL: https://www.3gpp.org.
[3] Dent, P., G. E. Bottomley, and T. Croft. “Jakes Fading Model Revisited.” Electronics Letters. Vol. 29, Number 13, 1993, pp. 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. Vol. 8, Number 6, 2009, pp. 3122–3131.
lte3DChannel
| lteDLPerfectChannelEstimate
| lteHSTChannel
| lteMovingChannel
| lteOFDMModulate
| lteSCFDMAModulate
You have a modified version of this example. Do you want to open this example with your edits?