wlanTGahChannel
Filter signal through 802.11ah multipath fading channel
Description
The wlanTGahChannel
System object™ filters an input signal through an 802.11ah™ (TGah) 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 TGah 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 TGah multipath fading channel:
Create the
wlanTGahChannel
object 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 TGah
channel System object, tgah
= wlanTGahChanneltgah
. This object filters a real or complex input
signal through the TGah channel to obtain the channel-impaired signal.
creates a TGah channel object, tgah
= wlanTGahChannel(Name
,Value
)tgah
, and sets properties using one or
more name-value pairs. Enclose each property name in quotes. For example,
wlanTGahChannel('NumReceiveAntennas',4,'SampleRate',4e6)
creates a
TGah channel with four receive antennas and a 4 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.
SampleRate
— Sample rate of the input signal
2e6
(default) | positive scalar
Sample rate of the input signal in Hz, specified as a real positive scalar.
Data Types: double
DelayProfile
— Delay profile model
'Model-B'
(default) | 'Model-A'
| 'Model-C'
| 'Model-D'
| 'Model-E'
| 'Model-F'
Delay profile model, specified as 'Model-A'
,
'Model-B'
, 'Model-C'
,
'Model-D'
, 'Model-E'
, or
'Model-F'
.
The table summarizes the properties of the models.
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
ChannelBandwidth
— Channel bandwidth
'CBW2'
(default) | 'CBW1'
| 'CBW4'
| 'CBW8'
| 'CBW16'
Channel bandwidth, specified as 'CBW1'
,
'CBW2'
, 'CBW4'
, 'CBW8'
, or
'CBW16'
. The default is 'CBW2'
, which
corresponds to a 2 MHz channel bandwidth.
For channel bandwidths greater than 4 MHz, the TGah channel applies a reduction factor to the multipath spacing of the power delay profile. The reduction factor applied is 2ceil(log2(BW/4)), where BW is the channel bandwidth in MHz. For more information, see TGac Channel Model Addendum [3].
Data Types: char
| string
CarrierFrequency
— RF carrier frequency
915e6
(default) | positive scalar
RF carrier frequency in Hz, specified as a positive scalar.
Data Types: double
EnvironmentalSpeed
— Speed of the scatterers
0.089
(default) | positive scalar
Speed of the scatterers in km/h, specified as a positive scalar.
Data Types: double
TransmitReceiveDistance
— Distance between transmitter and receiver
3
(default) | positive scalar
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 no 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.
Data Types: double
NormalizePathGains
— Normalize path gains
true
or 1
(default) | false
or 0
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 0
(false
).
Data Types: logical
UserIndex
— User index for single or multi-user scenario
0
(default) | positive integer
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.
Data Types: double
TransmissionDirection
— Transmission direction
'Downlink'
(default) | 'Uplink'
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.
Data Types: char
| string
NumTransmitAntennas
— Number of transmit antennas
1
(default) | 2
| 3
| 4
Number of transmit antennas, specified as 1
,
2
, 3
, or 4
.
Data Types: double
TransmitAntennaSpacing
— Distance between transmit antenna elements
0.5
(default) | positive scalar
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 NumTransmitAntennas
property
to a value greater than 1
.
Data Types: double
NumReceiveAntennas
— Number of receive antennas
1
(default) | 2
| 3
| 4
Number of receive antennas, specified as 1
, 2
,
3
, or 4
.
Data Types: double
ReceiveAntennaSpacing
— Distance between receive antenna elements
0.5
(default) | positive scalar
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 NumReceiveAntennas
property
to a value greater than 1
.
Data Types: double
LargeScaleFadingEffect
— Large-scale fading effects
'None'
(default) | 'Pathloss'
| 'Shadowing'
| 'Pathloss and shadowing'
Large-scale fading effects applied in the channel, specified as
'None'
, 'Pathloss'
,
'Shadowing'
, or 'Pathloss and shadowing'
.
Data Types: char
| string
NumPenetratedFloors
— Number of building floors
0
(default) | positive integer
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
The NumPenetratedFloors
property applies only when
DelayProfile
is 'Model-A'
or
'Model-B'
.
Data Types: double
FluorescentEffect
— Fluorescent effect
true
or 1
(default) | false
or 0
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
PowerLineFrequency
— Power line frequency
'60Hz'
(default) | '50Hz'
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
NormalizeChannelOutputs
— Normalize channel outputs
true
or 1
(default) | false
or 0
Normalize channel outputs by the number of receive antennas, specified as a numeric
or logical 1
(true
) or 0
(false
).
Data Types: logical
ChannelFiltering
— Enable channel filtering
true
or 1
(default) | false
or 0
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
NumSamples
— Number of time-domain samples
80
(default) | positive integer
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
OutputDataType
— Data type of impaired signal
'double'
(default) | 'single'
Data type of impaired signal, specified as one of these values:
'double'
– Return thepathGains
output as a double-precision matrix'single'
– Return thepathGains
output as a single-precision matrix
Dependencies
To enable this property, set the ChannelFiltering
property to
0
(false
).
Data Types: char
| string
RandomStream
— Source of random number stream
'Global stream'
(default) | 'mt19937ar with seed'
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.
Data Types: char
| string
Seed
— Initial seed of mt19937ar random number stream
73
(default) | nonnegative integer
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 RandomStream
property to
'mt19937ar with seed'
.
Data Types: double
PathGainsOutputPort
— Enable path gain output
false
or 0
(default) | true
or 1
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
] = tgah(x
)pathGains
the TGah channel path gains of the
underlying fading process.
This syntax applies when you set the PathGainsOutputPort
property to 1
(true
).
Input Arguments
x
— Input signal
complex matrix
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
NumTransmitAntennas
property value.
Data Types: single
| double
Complex Number Support: Yes
Output Arguments
y
— Output signal
complex matrix
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
NumReceiveAntennas
property value.
Data Types: single
| double
pathGains
— Path gains of the fading process
complex array
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
DelayProfile
property.NT is the number of transmit antennas and is equal to the
NumTransmitAntennas
property value.NR is the number of receive antennas and is equal to the
NumReceiveAntennas
property value.
Data Types: double
| single
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
Pass S1G Waveform Through TGah Channel
Filter an 802.11ah waveform through a TGah channel.
cfgS1G = wlanS1GConfig(APEPLength=1000); txWaveform = wlanWaveformGenerator([1;0;0;1],cfgS1G);
Create a TGah channel object and adjust some default properties. Specify a seed value to produce a repeatable channel output. Create an S1G configuration object and waveform. Pass the S1G waveform through the channel by supplying it as an input to the TGah channel object.
tgah = wlanTGahChannel; tgah.LargeScaleFadingEffect = 'PathLoss and shadowing'; tgah.FloorSeparation = 2; tgah.RandomStream = 'mt19937ar with seed'; tgah.Seed = 10; channelOutput = tgah(txWaveform);
Confirm the channel bandwidth and set the corresponding sample rate.
cfgS1G.ChannelBandwidth
ans = 'CBW2'
fs = 2e6;
Plot the spectrum of the channel output waveform.
saScope = spectrumAnalyzer(SampleRate=fs,YLimits=[-110 -30]); saScope(channelOutput)
Across the spectrum, the mean power of the channel output waveform is approximately -50 dBm.
TGah Channel Model-B Delay Profile
Plot the delay profile for an impulse waveform passed through a TGah channel.
Create an impulse waveform. Delay the impulse by 10 samples, which is equivalent to 10 ns in time.
txWaveform = zeros(100,1); txWaveform(11) = 1;
Create a TGah channel object. Specify the seed for reproducible results.
tgah = wlanTGahChannel;
tgah.RandomStream = 'mt19937ar with seed';
tgah.Seed = 10;
Set the sample rate so that sampling of the channel multipaths are integer multiples of integer sampling delay.
tgah.SampleRate = 1e9; chOut = tgah(txWaveform); plot((0:length(chOut)-1)*1/tgah.SampleRate,abs(chOut)); xlabel('Time[s]'); ylabel('abs(chOut)'); title('Channel Power Delay Profile: Model-B')
Transmit S1G Waveform Through 4x2 MIMO Channel
Create a S1G waveform generated using four transmit antennas and two spatial streams.
cfg = wlanS1GConfig(NumTransmitAntennas=4,NumSpaceTimeStreams=2, ... SpatialMapping='Fourier',APEPLength=1000); txSig = wlanWaveformGenerator([1;0;0;1],cfg);
Create a 4x2 MIMO TGah channel and disable large-scale fading effects.
tgahChan = wlanTGahChannel('SampleRate',1e6,'ChannelBandwidth','CBW1', ... 'NumTransmitAntennas',4,'NumReceiveAntennas',2, ... 'LargeScaleFadingEffect','None');
Pass the transmit waveform through the channel.
rxSig = tgahChan(txSig);
Display the spectrum of the two received space-time streams.
saScope = spectrumAnalyzer(SampleRate=1e6, ... ShowLegend=true, ... ChannelNames={'Stream 1','Stream 2'}); saScope(rxSig)
Compare Random Number Sources for TGn Channel
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 TGah 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 TGah channels can be found in TGah Channel
Model
[1]. The changes to support the TGah
channel include lower bandwidths, floor separation attenuation, Wall Separation Attenuation,
and path loss and shadowing.
Lower Bandwidths
The TGah channel model supports channel bandwidths down to 1 MHz.
Floor Separation Attenuation
In the TGah 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
NumPenetratedFloors
property of the System object. For more information, see TGah Channel Model
[1].
MIMO Enhancements
The TGn channel model supports no more than 4x4 MIMO, while the TGah model supports 8x8 MIMO.
The TGah 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.
Path Loss and Shadowing
TGah Channel Model [1], Table 2 defines path loss parameters that are slightly modified from those defined for TGn. Specifically, the shadow fading values corresponding to breakpoint distance are 1 dB less for all TGah channel models.
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 that 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 | 2 | 2 | 2 | 2 | 2 | 2 |
Shadow fading σ (dB) for d > dBP | 3 | 3 | 4 | 4 | 5 | 5 |
References
[1] Porat R., S. K. Yong, and K. Doppler. TGah Channel Model. IEEE 802.11-11/0968r4, March 2015.
[2] Erceg, V., L. Schumacher, P. Kyritsi, et al. TGn Channel Models. Version 4. IEEE 802.11-03/940r4, May 2004.
[3] Breit, G., H. Sampath, S. Vermani, 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
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
See System Objects in MATLAB Code Generation (MATLAB Coder).
Version History
Introduced in R2017a
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)