Main Content

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:

  1. Create the wlanTGahChannel object and set its properties.

  2. 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

tgah = wlanTGahChannel creates a TGah channel System object, tgah. This object filters a real or complex input signal through the TGah channel to obtain the channel-impaired signal.

example

tgah = wlanTGahChannel(Name,Value) creates a TGah channel object, 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

expand all

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 real positive scalar.

Data Types: double

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.

PropertyModel
ABCDEF
Breakpoint distance (m)555102030
RMS delay spread (ns)0153050100150
Maximum delay (ns)0802003907301050
Rician K-factor (dB)000366
Number of taps1914181818
Number of clusters122346
Propagation scenarioFlat fadingIndoor residentialIndoor residential or small officeOfficeLarge office/warehouseLarge space indoor (pseudo-outdoor)

The number of clusters represents the number of independently modeled propagation paths.

Data Types: char | string

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

RF carrier frequency in Hz, specified as a positive scalar.

Data Types: double

Speed of the scatterers in km/h, specified as a positive scalar.

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 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

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

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

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

Number of transmit antennas, specified as 1, 2, 3, or 4.

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 NumTransmitAntennas property to a value greater than 1.

Data Types: double

Number of receive antennas, specified as 1, 2, 3, or 4.

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 NumReceiveAntennas property to a value greater than 1.

Data Types: double

Large-scale fading effects applied in the channel, specified as 'None', 'Pathloss', 'Shadowing', or 'Pathloss and shadowing'.

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

The NumPenetratedFloors property applies only when DelayProfile is 'Model-A' or 'Model-B'.

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 the pathGains output as a double-precision matrix

  • 'single' – Return the pathGains output 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.

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 RandomStream property to 'mt19937ar with seed'.

Data Types: double

Enable path gain output computation, specified as a numeric or logical 1 (true) or 0 (false).

Data Types: logical

Usage

Description

y = tgah(x) filters input signal x through the TGah fading channel defined by the wlanTGahChannel System object, tgah, and returns the result in y.

example

[y,pathGains] = tgah(x) also returns in pathGains the TGah channel path gains of the underlying fading process.

This syntax applies when you set the PathGainsOutputPort property to 1 (true).

pathGains = tgah(x) returns the path gains. The NumSamples property determines the duration of the fading process.

This syntax applies when you set the ChannelFiltering property to 0 (false).

Input Arguments

expand all

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

expand all

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

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)

expand all

infoCharacteristic information about multipath fading channels
stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object

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

collapse all

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.

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')

Figure contains an axes object. The axes object with title Channel Power Delay Profile: Model-B, xlabel Time[s], ylabel abs(chOut) contains an object of type line.

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)

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

expand all

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.

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

Version History

Introduced in R2017a