Main Content

comm.WINNER2Channel

Filter input signal through WINNER II fading channel

Download Required: To use comm.WINNER2Channel, first download the WINNER II Channel Model for Communications Toolbox add-on.

Description

The comm.WINNER2Channel System object™ filters an input signal through a WINNER II fading channel. The object utilizes the basic model defined and provided by the WINNER II Channel Models [1].

To filter an input signal through a WINNER II fading channel:

  1. Create the comm.WINNER2Channel 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

winchannel = comm.WINNER2Channel creates a WINNER II fading channel System object to model single or multiple links. winchannel generates channel coefficients using the WINNER II spatial channel model (SCM). It also filters a real or complex input signal through the fading channel for each link.

winchannel = comm.WINNER2Channel(Name,Value) specifies properties using one or more name-value arguments. For example, 'NormalizeChannelOutputs','false' specifies to not normalize the channel outputs.

winchannel = comm.WINNER2Channel(cfgModel) sets the ModelConfig property to cfgModel.

winchannel = comm.WINNER2Channel(cfgModel,cfgLayout) set the LayoutConfig property to cfgLayout.

example

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.

WINNER II model parameter configuration, specified as a structure. You can either use the winner2.wimparset function to create the default model configuration structure or create it manually. The Winner II channel model parameter configuration contains these fields.

Number of time samples, specified as a scalar.

Note

If the number of samples in the input signal (NS) does not match NumTimeSamples, then update NumTimeSamples to match NS.

Data Types: double

Option to use predefined path delays and powers for specific scenarios, specified as 'no' or 'yes'.

Option to use predefined path angles of departure (AoDs) and angles of arrival (AoAs) for specific scenarios, specified as 'no' or 'yes'.

Option to divide each of the two strongest clusters into three subclusters per link, specified as 'yes' or 'no'.

Option to use dual-polarized arrays, specified as 'yes' or 'no'.

Option to use manually defined propagation conditions, specified as 'yes' or 'no'. Set this field to 'yes' to enforce the use of manually defined propagation conditions (LOS or NLOS) of the PropagConditionVector field. Set this field to 'no' to draw propagation conditions from predefined LOS probabilities.

Carrier frequency in Hz, specified as a scalar.

Data Types: double

Option to enforce uniform time sampling, specified as 'no' or 'yes'.

Number of time samples per half wavelength, specified as a scalar.

Data Types: double

Sampling interval, specified as a scalar indicating the input signal sample time in seconds. DelaySamplingInterval defines the sampling grid to which the path delays are rounded.

  • A value of 0 seconds indicates no rounding on path delays. When performing channel filtering, the object sets DelaySamplingInterval to 0 to obtain the original path delays.

  • Ignore any nonzero value of DelaySamplingInterval. Specifically, the path delays values that are not rounded to be multiples of the DelaySamplingInterval values and are nonzero.

Data Types: double

Option to use shadow fading, specified as 'no' or 'yes'.

Option to use path loss model, specified as 'no' or 'yes'.

Path loss model, specified as a character vector representing a valid function name. Path loss model uses the internal pathloss function from the WINNER II Channel add-on to model the path loss.

Dependencies

To enable this property, set the PathLossModelUsed field to 'yes'.

Data Types: char

Wall material, specified as 'CR_light', 'CR_heavy', 'RR_light', or 'RR_heavy'. This field indicates the wall material for the A1 scenario NLOS path loss calculation.

Dependencies

To enable this property, set the PathLossModelUsed field to 'yes'.

Data Types: char

Seed for random number generators, specified as a scalar or empty brackets. Empty brackets, [], indicate the use of global random stream.

Data Types: double

Data Types: struct

WINNER II layout parameter configuration, specified as a structure. You can either use the winner2.layoutparset function to create the default layout configuration structure or create it manually. The Winner II channel layout parameter configuration contains these fields.

Active stations, specified as a row vector of structures describing the antenna arrays for active stations. Stations is created from the arrays input. The row ordering specifies base station (BS) sectors first, followed by mobile stations (MS). The assignment of BS sector and MS positions is random. The BS sectors have no velocity. Each MS has a velocity of about 1.42 m/s with a randomly assigned direction.

Data Types: struct

Number of sectors, specified as a vector indicating the number of sectors in each BS.

Data Types: double

BS to MS pairing, specified as a 2-by-NL matrix, where NL specifies the number of links to be modeled. For BS and MS row ordering, see the Stations field.

Data Types: double

Spatial scenario, specified as a 1-by-NL vector of scenario numbers. The default is 1, which specifies scenario A1.

The scenario numbers map as {1=A1, 2=A2, 3=B1, 4=B2, 5=B3, 6=B4, 10=C1, 11=C2, 12=C3, 13=C4, 14=D1, 15=D2a}.

For more information, see Section 2.3 of WINNER II Channel Models [1].

Propagation conditions, specified as a 1-by-NL vector. For each link, specify LOS as 1 and NLOS as 0.

Data Types: double

Street width, specified as a 1-by-NL vector of identical values that specify the average width (in meters) of the streets. Use StreetWidth for the path loss model of the B1 and B2 scenarios. For the scenario number mapping, see the ScenarioVector field.

Dependencies

To enable this property, set the PathLossModelUsed field to 'yes'.

Data Types: double

Distances from the BS to the last LOS point, specified as a 1-by-NL vector. Use the Dist1 field for the path loss model of the B1 and B2 scenarios. The default value of NaN indicates that the distance is randomly determined in the path loss function. For the scenario number mapping, see the ScenarioVector field.

For more information, see Figure 4-3 of WINNER II Channel Models [1].

Dependencies

To enable this property, set the PathLossModelUsed field to 'yes'.

Data Types: double

Floor numbers where the indoor BS or MS is located, specified as a 1-by-NL vector. Use the NumFloors field for the path loss model of the A2 and B4 scenarios only. For the scenario number mapping, see the ScenarioVector field.

Dependencies

To enable this property, set the PathLossModelUsed field to 'yes'.

Data Types: double

Number of floors penetrated between the BS and the MS, specified as a 1-by-NL vector. Use the NumPenetratedFloors field for the NLOS path loss model of the A1 scenario. For the scenario number mapping, see the ScenarioVector field.

For more information, see Table 4-4 of WINNER II Channel Models [1].

Dependencies

To enable this property, set the PathLossModelUsed field to 'yes'.

Data Types: double

Data Types: struct

Option to normalize channel outputs, specified as 'true' or 'false'. Set this property to 'true' to normalize the channel outputs by the number of receive antennas at the MS for each link.

For more information, see Channel Power.

Data Types: char | string

Usage

Description

outsignal = winchannel(insignal) filters the input signal through a WINNER II fading channel and returns the resulting signal.

[outsignal,pathgains] = winchannel(insignal) also returns the channel path gains of the underlying fading process.

Input Arguments

expand all

Input signal, specified as an NL-by-1 cell array or an NS-by-NT matrix. NL is the number of links, as specified by the LayoutConfig property of the winchannel object. The ith element of the insignal argument must be an NS-by-NT(i) matrix of data type double.

  • NS is the number of samples to be generated and must be the same value for all elements of the insignal argument.

  • NT is the number of transmit antennas at the BS for the ith link, as specified by the LayoutConfig property of the winchannel object.

Output Arguments

expand all

Output signal, returned as an NL-by-1 cell array. If the channel has only one link or if all links have the same number of transmit antennas, the insignal argument must be an NS-by-NT matrix, and the ith element of the outsignal argument is an NS-by-NR(i) matrix. NR(i) is the number of receive antennas at the MS for the ith link, as specified by the LayoutConfig property of the winchannel object.

Channel path gains, returned as an NL-by-1 cell array.

The ith element of the pathgains argument is an NR(i)-by-NT(i)-by-NP(i)-by-NS array of complex values of data type double. NP(i) is the number of paths for the ith link, as specified by the LayoutConfig property of the winchannel object.

NR, NT, and NP are link-specific. NS is the same for all of the links.

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

stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object

Note

When you use the reset object function, if the ModelConfig.RandomSeed property of object is empty, reset resets the filters only. Otherwise, reset resets the filters and reinitializes the random number stream to the value of the ModelConfig.RandomSeed field.

Examples

collapse all

Simulate a system that has two MSs connected to one BS. One MS is 8 meters away from the BS, and the other is 20 meters away from the BS. Send the impulse signals through the two links. The spectrum of the received signals at the MS shows frequency selectivity.

Specify a random number generator seed for repeatability.

rng(100);

Initialize the frame length and sample rate.

frmLen = 1024;

Configure the winner II channel layout parameters.

BSAA = winner2.AntennaArray("UCA",8,0.02);   % UCA-8 antenna array for BS
MSAA1 = winner2.AntennaArray("ULA",2,0.01);  % ULA-2 antenna array for MS
MSAA2 = winner2.AntennaArray("ULA",4,0.005); % ULA-4 antenna array for MS
MSIdx = [2 3]; 
BSIdx = {1};
NL = 2;
maxRange = 100;
rndSeed = 101;
cfgLayout = winner2.layoutparset(MSIdx,BSIdx,NL, ...
   [BSAA,MSAA1,MSAA2],maxRange,rndSeed);

Adjust BS and MS positions.

cfgLayout.Stations(1).Pos(1:2) = [10, 10];
cfgLayout.Stations(2).Pos(1:2) = [18, 10];  % 8 meters away from BS
cfgLayout.Stations(3).Pos(1:2) = [22, 26];  % 20 meters away from BS

Specify the NLOS for both links.

cfgLayout.Pairing = [1 1; 2 3];
cfgLayout.PropagConditionVector = [0 0];

Configure the winner II channel model parameters.

cfgModel = winner2.wimparset;
cfgModel.NumTimeSamples = frmLen;     % Frame length
cfgModel.IntraClusterDsUsed = "no";   % No cluster splitting
cfgModel.SampleDensity = 2e5;         % For lower sample rate
cfgModel.PathLossModelUsed = "yes";   % Turn on path loss
cfgModel.ShadowingModelUsed = "yes";  % Turn on shadowing

Create a WINNER II fading channel System object.

winChannel = comm.WINNER2Channel(cfgModel,cfgLayout);

Get system information.

chanInfo = info(winChannel)
chanInfo = struct with fields:
               NumLinks: 2
          NumBSElements: [8 8]
          NumMSElements: [2 4]
               NumPaths: [16 16]
             SampleRate: [1.0000e+07 1.0000e+07]
     ChannelFilterDelay: [7 7]
    NumSamplesProcessed: 0

Get the number of transmitters and sample rate of the system.

numTx = chanInfo.NumBSElements(1);
Rs = chanInfo.SampleRate(1);

Create a spectrum analyzer System object.

sa = spectrumAnalyzer( ...
    SampleRate=Rs, ...
    YLimits=[-170, -100], ...
    ShowLegend=true, ...
    ChannelNames=["MS 1 (8 meters away)","MS 2 (20 meters away)"]);

Pass impulse signals through the two links and show the spectra of the received signals at the two MSs.

for i = 1:10
    x = [ones(1,numTx); 
    zeros(frmLen-1,numTx)];
    y = winChannel(x);
    sa([y{1}(:,1),y{2}(:,1)]);
end
release(sa)

More About

expand all

References

[1] Kyosti, Pekka, Juha Meinila, et al. WINNER II Channel Models. D1.1.2 V1.2. IST-4–027756 WINNER II, September 2007.

Version History

Introduced in R2016b