wlanTGaxChannel
Filter signal through 802.11ax multipath fading channel
Description
The wlanTGaxChannel
System object™ filters an input signal through an 802.11ax™ (TGax) indoor MIMO channel as specified in [1], following the MIMO modeling approach described in [4].
The fading processing assumes the same parameters for all NT-by-NR links of the TGax channel, where NT is the number of transmit antennas and NR is the number of receive antennas. Each link comprises all multipaths for that link.
To filter an input signal using a TGax multipath fading channel:
Create the
wlanTGaxChannelobject and set its properties.Call the object with arguments, as if it were a function.
To learn more about how System objects work, see What Are System Objects?
Creation
Description
creates a
TGax channel System object, tgax = wlanTGaxChanneltgax. This object filters a real or complex
input signal through the TGax channel to obtain the channel-impaired
signal.
creates a TGax channel object, tgax = wlanTGaxChannel(Name=Value)tgax, and sets properties
using one or more name-value arguments. For example,
wlanTGaxChannel(NumReceiveAntennas=2,SampleRate=10e6)
creates a TGax channel with two receive antennas and a 10 MHz sample
rate.
Properties
Unless otherwise indicated, properties are nontunable, which means you cannot change their
values after calling the object. Objects lock when you call them, and the
release function unlocks them.
If a property is tunable, you can change its value at any time.
For more information on changing property values, see System Design in MATLAB Using System Objects.
Sample rate of the input signal in Hz, specified as a positive scalar.
Dependencies
When you specify DelayProfile as 'None',
this property does not apply.
Data Types: double
Delay profile model, specified as 'Model-A',
'Model-B', 'Model-C',
'Model-D', 'Model-E',
'Model-F', or 'None'. When you
choose 'None', the System object does not apply fading.
In this case, the channel matrix is a discrete Fourier transform (DFT)
matrix.
The table summarizes the properties of the models before the bandwidth reduction factor. For more information, see Increased Bandwidth.
| Property | Model | |||||
|---|---|---|---|---|---|---|
| A | B | C | D | E | F | |
| Breakpoint distance (m) | 5 | 5 | 5 | 10 | 20 | 30 |
| RMS delay spread (ns) | 0 | 15 | 30 | 50 | 100 | 150 |
| Maximum delay (ns) | 0 | 80 | 200 | 390 | 730 | 1050 |
| Rician K-factor (dB) | 0 | 0 | 0 | 3 | 6 | 6 |
| Number of taps | 1 | 9 | 14 | 18 | 18 | 18 |
| Number of clusters | 1 | 2 | 2 | 3 | 4 | 6 |
| Propagation scenario | Flat fading | Indoor residential | Indoor residential or small office | Office | Large office/warehouse | Large space indoor (pseudo-outdoor) |
The number of clusters represents the number of independently modeled propagation paths.
Data Types: char | string
Channel bandwidth, specified as one of these values.
'CBW20'— Channel bandwidth of 20 MHz'CBW40'— Channel bandwidth of 40 MHz'CBW80'— Channel bandwidth of 80 MHz'CBW160'— Channel bandwidth of 160 MHz'CBW320'— Channel bandwidth of 320 MHz
Dependencies
When you specify DelayProfile as 'None',
this property does not apply.
Data Types: char | string
RF carrier frequency, in Hz, specified as a positive scalar.
Dependencies
When you specify DelayProfile as 'None',
this property does not apply.
Data Types: double
Speed of the scatterers in km/h, specified as a positive scalar.
Dependencies
When you specify DelayProfile as 'None',
this property does not apply.
Data Types: double
Distance between the transmitter and receiver in meters, specified as a positive scalar.
TransmitReceiveDistance is used to compute the path
loss, and to determine whether the channel has a line of sight (LOS) or non
line of sight (NLOS) condition. The path loss and standard deviation of
shadow fading loss depend on the separation between the transmitter and the
receiver.
Dependencies
When you specify DelayProfile as 'None',
this property does not apply.
Data Types: double
Normalize path gains, specified as a numeric or logical
1 (true) or 0
(false). To normalize the fading processes such that
the total power of the path gains, averaged over time, is 0 dB, set this
property to 1 (true). Otherwise, set
this property to false.
Dependencies
When you specify DelayProfile as 'None',
this property does not apply because the path gains are always
normalized when the channel matrix is a DFT matrix.
Data Types: logical
User index, specified as a nonnegative integer. If the property is set to
0, the angles of arrival and departure from the TGn
channel model are used in the calculation of the spatial correlation matrix.
If the property is set to a positive integer, pseudorandom offsets are
applied to the TGn angles of arrival and departure before the calculation of
the spatial correlation matrix. For more details, see the section on MIMO Enhancements.
Dependencies
When you specify DelayProfile as 'None',
this property does not apply.
Data Types: double
Transmission direction of the active link, specified as either
'Downlink' or 'Uplink'. The
default value, 'Downlink', specifies transmission from an
access point to a user station.
Dependencies
When you specify DelayProfile as 'None',
this property does not apply.
Data Types: char | string
Number of transmit antennas, specified as a positive integer.
Data Types: double
Distance between transmit antenna elements, specified as a positive scalar expressed in wavelengths.
TransmitAntennaSpacing supports uniform linear arrays
only.
Dependencies
To enable this property, set the
NumTransmitAntennasproperty to a value greater than1.When you specify
DelayProfileas'None', this property does not apply.
Data Types: double
Number of receive antennas, specified as a positive integer.
Data Types: double
Distance between receive antenna elements, specified as a positive scalar expressed in wavelengths.
ReceiveAntennaSpacing supports uniform linear arrays
only.
Dependencies
To enable this property, set the
NumReceiveAntennasproperty to a value greater than1.When you specify
DelayProfileas'None', this property does not apply.
Data Types: double
Large-scale fading effects applied in the channel, specified as
'None', 'Pathloss',
'Shadowing', or 'Pathloss and
shadowing'.
Dependencies
When you specify DelayProfile as 'None',
the value of this property must be 'None'.
Data Types: char | string
Number of building floors between the transmitter and the receiver,
specified as a positive integer. Use this property in multiple floor
scenarios to account for the floor attenuation loss in the path loss
calculation. The default is 0, which represents a
communication link between a transmitter and a receiver located on the same
floor.
Dependencies
This property applies only when you specify LargeScaleFadingEffect as a value other
than 'None'.
Data Types: double
Number of walls between the transmitter and receiver, specified as a positive integer. Use this property to account for the wall penetration loss in the path loss calculation.
The default is 0, which represents a communication link
between a transmitter and a receiver without wall penetration loss.
Dependencies
This property applies only when you specify LargeScaleFadingEffect as a value other
than 'None'.
Data Types: double
Penetration loss of a single wall in dB, specified as a real scalar.
Dependencies
This property applies only when you specify LargeScaleFadingEffect as a value other
than 'None' and
NumPenetratedWalls is greater than 0.
Data Types: double
Fluorescent effect, specified as a numeric or logical 1
(true) or 0
(false). To include Doppler effects from fluorescent
lighting, set this property to 1
(true).
Dependencies
To enable this property, set the DelayProfile
property to 'Model-D' or
'Model-E'.
Data Types: logical
Power line frequency in Hz, specified as '50Hz' or
'60Hz'.
The power line frequency is 60 Hz in the United States and 50 Hz in Europe.
Dependencies
To enable this property, set the
FluorescentEffect property to
1 (true) and the
DelayProfile property to
'Model-D' or 'Model-E'.
Data Types: char | string
Normalize channel outputs by the number of receive antennas, specified as
a numeric or logical 1 (true) or
0 (false).
Data Types: logical
Enable channel filtering, specified as a numeric or logical
1 (true) or 0
(false). To enable channel filtering, set this
property to 1 (true). To disable
channel filtering, set this property to 0
(false).
Note
If you set this property to 0
(false), the step object
function does not accept an input signal. In this case, the
NumSamples and SampleRate properties determine the duration of the
fading process realization. The object acts as a source of path
gains without filtering an input signal.
Data Types: logical
Number of time-domain samples used to get path gain samples, specified as a positive integer.
Dependencies
To enable this property, set the ChannelFiltering property to 0
(false).
Data Types: double
Data type of impaired signal, specified as one of these values:
'double'– Return thepathGainsoutput as a double-precision matrix'single'– Return thepathGainsoutput as a single-precision matrix
Dependencies
To enable this property, set the ChannelFiltering property to
0 (false).
Data Types: char | string
Source of random number stream, specified as 'Global stream' or
'mt19937ar with seed'.
If you set this property to 'Global stream', the System object uses the current global random number stream to generate random numbers.
In this case, the reset function resets the filters and creates a new
channel realization.
If you set this property to 'mt19937ar with seed', the mt19937ar
algorithm generates random numbers. In this case, the reset function
not only resets the filters, but also reinitializes the random number stream to the
value of the Seed property. This results in the same channel
realization.
Note
The random numbers of the channel components are distributed as follows:
The random phase of the Doppler component due to fluorescent lights is uniformly distributed. See equation 27 of TGn Channel Models for more information.
In multi-user scenarios using the TGac, TGah, or TGax channel models, the per-user angle-of-arrival (AoA) and angle-of-departure (AoD) rotations discussed in the MIMO Enhancements section are uniformly distributed.
The fading samples are generated by a normally-distributed complex uncorrelated Gaussian process with zero mean and unit variance in discrete time.
Dependencies
When you specify DelayProfile as
'None', this property does not apply.
Data Types: char | string
Initial seed of an mt19937ar random number stream, specified as a
nonnegative integer. The Seed property reinitializes
the mt19937ar random number stream in the reset
function.
Dependencies
To enable this property, set the
RandomStreamproperty to'mt19937ar with seed'.When you specify
DelayProfileas'None', this property does not apply.
Data Types: double
Enable path gain output computation, specified as a numeric or logical
1 (true) or 0
(false).
Data Types: logical
Usage
Description
[
also returns in y,pathGains] = tgax(x)pathGains the TGax channel path gains of
the underlying fading process.
This syntax applies when you set the PathGainsOutputPort property of tgax to
1 (true).
Input Arguments
Input signal, specified as a real or complex NS-by-NT matrix, where:
NS is the number of samples.
NT is the number of transmit antennas and must be equal to the
NumTransmitAntennasproperty value oftgax.
Data Types: single | double
Complex Number Support: Yes
Output Arguments
Output signal, returned as an NS-by-NR complex matrix, where:
NS is the number of samples.
NR is the number of receive antennas and is equal to the
NumReceiveAntennasproperty value oftgax.
Data Types: single | double
Path gains of the fading process, returned as an NS-by-NP-by-NT-by-NR complex array, where:
NS is the number of samples.
NP is the number of resolvable paths, that is, the number of paths defined for the case specified by the
DelayProfileproperty.NT is the number of transmit antennas and is equal to the
NumTransmitAntennasproperty value oftgax.NR is the number of receive antennas and is equal to the
NumReceiveAntennasproperty value oftgax.
Data Types: single | double
Object Functions
To use an object function, specify the
System object as the first input argument. For
example, to release system resources of a System object named obj, use
this syntax:
release(obj)
Note
reset: If the
RandomStream property of the System object is set to 'Global stream', the reset function resets the filters only. If you set
RandomStream to 'mt19937ar with seed',
the reset function not only resets the filters,
but also reinitializes the random number stream to the value of the
Seed property. This results in the same channel
realization.
Examples
Obtain a channel impulse response by filtering an impulse through a TGax channel.
Create an impulse.
input = zeros(100,1); input(10) = 1;
Create the TGax channel System Object with path loss and shadowing, two penetrated floors, and a sampling rate of 1 GHz.
tgax = wlanTGaxChannel; tgax.LargeScaleFadingEffect = 'Pathloss and shadowing'; tgax.NumPenetratedFloors = 2; tgax.RandomStream = 'mt19937ar with seed'; tgax.Seed = 10; tgax.SampleRate = 1e9;
Plot the output impulse response of the channel.
figure time = (1/tgax.SampleRate)*(0:length(input)-1); stem(time,abs(tgax(input))) xlabel('Time (s)') ylabel('Amplitude') title('Channel Impulse Response')

Plot the delay profile and path gains of a TGax channel.
Create an impulse.
input = zeros(100,4); input(10) = 1;
Create the TGax channel System Object. Enable path gains at the output, and specify path loss, 20 MHz of channel bandwidth, a 4x2 MIMO channel, four penetrated floors, and a sampling rate of 1 GHz.
tgax = wlanTGaxChannel; tgax.LargeScaleFadingEffect = 'Pathloss'; tgax.ChannelBandwidth = 'CBW20'; tgax.NumTransmitAntennas = 4; tgax.NumReceiveAntennas = 2; tgax.NumPenetratedFloors = 4; tgax.RandomStream = 'mt19937ar with seed'; tgax.Seed = 10; tgax.SampleRate = 1e9; tgax.PathGainsOutputPort = true;
Filter the input impulse. Use the TGax channel object to generate the output response and the path gains.
[out,pathgains]= tgax(input);
Plot the output impulse response of the channel. The channel has two delay profiles, one per each receive antenna.
figure time = (1/tgax.SampleRate)*(0:length(input)-1); stem(time,abs(out)) xlabel('Time (s)') ylabel('Amplitude') title('Delay Profile')

The path gains of the channel are contained in a four dimensional array since the channel has nine resolvable paths, four transmit antennas and two receive antennas.
size(pathgains)
ans = 1×4
100 9 4 2
Create a non-HT configuration object with default parameters. Generate a waveform for the configuration.
cfg = wlanNonHTConfig; tx = wlanWaveformGenerator([1;0;0;1],cfg);
Create a TGn channel System object with default parameters. Display the value of the RandomStream property.
tgnChan = wlanTGnChannel; disp(tgnChan.RandomStream)
Global stream
Pass the waveform through the channel twice, resetting the System object between the two iterations.
for i = 1:2 rx(:,i) = tgnChan(tx); reset(tgnChan); end
Compare the two received waveforms. They are different because the reset object function resets the filters and the channel object takes new random numbers from the global stream. This causes it to generate a different channel realization.
isequal(rx(:,1),rx(:,2))
ans = logical
0
Now release the System object and set the RandomStream property to "mt19937ar with seed".
release(tgnChan);
tgnChan.RandomStream = "mt19937ar with seed";Pass the waveform through the channel twice, resetting the System object between the two iterations.
for i = 1:2 rx(:,i) = tgnChan(tx); reset(tgnChan); end
Compare the two received waveforms. They are equal because the channel realization is the same for both iterations. This happens because the reset function reinitializes the random number stream to the value of the Seed property, so the channel object uses the same random numbers for both channel realizations.
isequal(rx(:,1),rx(:,2))
ans = logical
1
Algorithms
The algorithms used to model the TGax channel are based on those used for the TGn
channel (as described in wlanTGnChannel and TGn Channel
Models
[2]) and the TGac channel (as
described in wlanTGacChannel and TGac Channel
Model Addendum
[3]). Complete information on
the changes required to support TGax channels can be found in TGax Channel
Model
[1]. The changes to support the
TGax channel include lower bandwidths, floor separation attenuation, wall separation
attenuation, and path loss and shadowing.
In the TGax channel, the path loss model used to compute the spatial correlation accounts for floor separation attenuation effects. The floor separation loss depends on the number of floors penetrated, as shown in the equation:
PELfloor= 18.3n(n + 2)/(n + 1) -0.46,
where n is the number of floors, represented by the
NumPenetratedFloors property of the System object. For more information, see TGax Channel Model
[1].
In the TGax channel, the path loss model used to compute the spatial correlation accounts for wall separation attenuation effects. The wall separation loss is defined by the following equation:
PELwall= m×Liw.
Where m is the number of walls penetrated, and
Liw is the penetration loss for a
single wall. The variables m and
Liw are represented by the
NumPenetratedWalls and
WallPenetrationLoss properties of the System object, respectively. For more information, see TGax Channel
Model
[1].
The TGn channel model supports no more than 4x4 MIMO, while the TGax model supports 8x8 MIMO.
The TGax model uses per-user angle diversity to support simultaneous communication
between multiple user stations and an access point. For each channel realization,
the model achieves this by adding pseudorandom offsets to the angles of arrival and
departure of each cluster before the calculation of the spatial correlation matrix.
Different offsets are chosen for each positive value of the
UserIndex property. This causes the angles of arrival and
departure for each cluster to differ between users.
Changing the TransmissionDirection property swaps the angle
of arrival of each cluster with its corresponding angle of departure. For more
details, see the Appendix of [3].
To see how the UserIndex property can be used in an
application, see this example: 802.11ax Packet Error Rate Simulation for Uplink Trigger-Based Format.
In TGax Channel Model [1], Table 3 defines path loss parameters that are slightly modified from those defined for TGn. The floor penetration loss and wall penetration loss are added to this path loss.
The path loss exponent and the standard deviation of the shadow fading loss characterize each model. The two parameters depend on the presence of a line of sight (LOS) between the transmitter and receiver. For paths with a transmitter-to-receiver distance, d, less than the breakpoint distance, dBP, the LOS parameters apply. For d > dBP, the non line of sight (NLOS) parameters apply. The table summarizes the path loss and shadow fading parameters.
| Parameter | Model | |||||
|---|---|---|---|---|---|---|
| A | B | C | D | E | F | |
| Breakpoint distance, dBP (m) | 5 | 5 | 5 | 10 | 20 | 30 |
| Path loss exponent for d ≤ dBP | 2 | 2 | 2 | 2 | 2 | 2 |
| Path loss exponent for d >dBP | 3.5 | 3.5 | 3.5 | 3.5 | 3.5 | 3.5 |
| Shadow fading σ (dB) for d ≤ dBP | 3 | 3 | 3 | 3 | 3 | 3 |
| Shadow fading σ (dB) for d >dBP | 4 | 4 | 5 | 5 | 6 | 6 |
TGax channels support bandwidths of up to 320 MHz whereas TGn channels have a maximum bandwidth of 40 MHz. By increasing the sampling rate and decreasing the tap spacing of the power delay profile (PDP), the TGn model is used as the basis for TGax. The channel sampling rate is increased by a factor of , where W is the bandwidth. The PDP tap spacing is reduced by the same factor. This is shown in the table, which is adapted from Table 1 in [3].
| Bandwidth, W | Sampling Rate Expansion Factor | PDP Tap Spacing (ns) |
|---|---|---|
| W ≤ 40 MHz | 1 | 10 |
| 40 MHz < W ≤ 80 MHz | 2 | 5 |
| 80 MHz < W ≤ 160 MHz | 4 | 2.5 |
| 160 MHz < W ≤ 320 MHz | 8 | 1.25 |
| 320 MHz < W ≤ 640 MHz | 16 | 0.625 |
| 640 MHz < W ≤ 1280 MHz | 32 | 0.3125 |
References
[1] Jianhan, L., Ron, P. et al. TGax Channel Model. IEEE 802.11-14/0882r4, September 2014.
[2] Erceg, V., Schumacher, L., Kyritsi, P. et al. TGn Channel Models. Version 4. IEEE 802.11-03/940r4, May 2004.
[3] Breit, G., Sampath, H., Vermani, S. et al. TGac Channel Model Addendum. Version 12. IEEE 802.11-09/0308r12, March 2010.
[4] Kermoal, J. P., L. Schumacher, K. I. Pedersen, P. E. Mogensen, and F. Frederiksen. “A Stochastic MIMO Radio Channel Model with Experimental Validation.” IEEE Journal on Selected Areas in Communications. Vol. 20, No. 6, August 2002, pp. 1211–1226.
Extended Capabilities
Usage notes and limitations:
See System Objects in MATLAB Code Generation (MATLAB Coder).
Version History
Introduced in R2018aTo disable fading, specify the DelayProfile property as 'None'.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)