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:
Create the
comm.WINNER2Channel
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
Syntax
Description
creates a WINNER II fading channel System object to model single or multiple links. winchannel
= comm.WINNER2Channelwinchannel
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.
specifies properties using one or more name-value arguments. For example,
winchannel
= comm.WINNER2Channel(Name,Value
)'NormalizeChannelOutputs','false'
specifies to not
normalize the channel outputs.
sets the winchannel
= comm.WINNER2Channel(cfgModel
)ModelConfig
property to cfgModel
.
set the winchannel
= comm.WINNER2Channel(cfgModel
,cfgLayout
)LayoutConfig
property to cfgLayout
.
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.
ModelConfig
— WINNER II model parameter configuration
winner2.wimparset
(default) | structure
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.
NumTimeSamples
— Number of time samples
100
(default) | scalar
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
FixedPdpUsed
— Option to use predefined path delays and powers for specific scenarios
'no'
(default) | 'yes'
Option to use predefined path delays and powers for specific
scenarios, specified as 'no'
or
'yes'
.
FixedAnglesUsed
— Option to use predefined path AoDs and AoAs for specific scenarios
'no'
(default) | 'yes'
Option to use predefined path angles of departure (AoDs) and
angles of arrival (AoAs) for specific scenarios, specified as
'no'
or 'yes'
.
IntraClusterDsUsed
— Option to divide each of the two strongest clusters into three subclusters per link
'yes'
(default) | 'no'
Option to divide each of the two strongest clusters into three
subclusters per link, specified as 'yes'
or
'no'
.
PolarisedArrays
— Option to use dual-polarized arrays
'yes'
(default) | 'no'
Option to use dual-polarized arrays, specified as
'yes'
or 'no'
.
UseManualPropCondition
— Option to use manually defined propagation conditions
'yes'
(default) | '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.
CenterFrequency
— Carrier frequency
5.25e9
(default) | scalar
Carrier frequency in Hz, specified as a scalar.
Data Types: double
UniformTimeSampling
— Option to enforce uniform time sampling
'no'
(default) | 'yes'
Option to enforce uniform time sampling, specified as
'no'
or 'yes'
.
SampleDensity
— Number of time samples per half wavelength
2e6
(default) | scalar
Number of time samples per half wavelength, specified as a scalar.
Data Types: double
DelaySamplingInterval
— Sampling interval
5e-9
(default) | scalar
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 setsDelaySamplingInterval
to0
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 theDelaySamplingInterval
values and are nonzero.
Data Types: double
ShadowingModelUsed
— Option to use shadow fading
'no'
(default) | 'yes'
Option to use shadow fading, specified as
'no'
or 'yes'
.
PathLossModelUsed
— Option to use path loss model
'no'
(default) | 'yes'
Option to use path loss model, specified as
'no'
or 'yes'
.
PathLossModel
— Path loss model
'pathloss'
(default) | character vector
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
PathLossOption
— Wall material
'CR_light'
(default) | 'CR_heavy'
| 'RR_light'
| 'RR_heavy'
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
RandomSeed
— Seed for random number generators
[]
(default) | scalar
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
LayoutConfig
— WINNER II layout parameter configuration
winner2.layoutparset
(default) | structure
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.
Stations
— Active stations
row vector of structures (default)
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
NofSect
— Number of sectors
vector (default)
Number of sectors, specified as a vector indicating the number of sectors in each BS.
Data Types: double
Pairing
— BS to MS pairing
2-by-NL matrix (default)
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
ScenarioVector
— Spatial scenario
1
(default) | 1-by-NL vector | scalar
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].
PropagConditionVector
— Propagation conditions
1
(default) | 1-by-NL vector | scalar
Propagation conditions, specified as a
1-by-NL vector.
For each link, specify LOS as 1
and NLOS as
0
.
Data Types: double
StreetWidth
— Street width
20
(default) | 1-by-NL vector | scalar
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
Dist1
— Distances from BS to last LOS point
NaN
(default) | 1-by-NL vector
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
NumFloors
— Floor numbers
1
(default) | 1-by-NL vector | scalar
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
NumPenetratedFloors
— Number of floors penetrated
0
(default) | 1-by-NL vector | scalar
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
NormalizeChannelOutputs
— Option to normalize channel outputs
'true'
(default) | 'false'
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
Input Arguments
insignal
— Input signal
NL-by-1 cell array | NS-by-NT
matrix
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 thewinchannel
object.
Output Arguments
outsignal
— Output signal
NL-by-1 cell
array (default)
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.
pathgains
— Channel path gains
NL-by-1 cell array (default)
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)
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
Simulate WINNER II Channel with Two Mobile Stations
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
WINNER II Sampling Rate
The signal sample rate (RS) for generating channel coefficients and performing channel filtering is calculated per link using the mobile station speed (VMS), half wavelength distance, and sample density. The sample rate for each link is available as a field in the output of the info object function.
RS = VMS / (C / Fcenter / 2 / NSD)
For the MS speed: VMS,
When you set the
ModelConfig
.UniformTimeSampling
field to'no'
, VMS is the speed of the MS for the corresponding link, derived from theLayoutConfig.Stations(i).Velocity
field.When you set the
ModelConfig
.UniformTimeSampling
field to'yes'
, VMS is the maximum speed of the MS for all links.
C is the speed of light (
2.99792458e8
m/s).Fcenter is the
ModelConfig
.CenterFrequency
field.NSD is the
ModelConfig
.SampleDensity
field.
Channel Power
These conditions apply to the channel power of the comm.WINNER2Channel
System object:
When path loss and shadowing are off, path gains are normalized. Specifically, path gains are normalized when you set the
ModelConfig
.ShadowingModelUsed
andModelConfig
.PathLossModelUsed
fields to'no'
.When you set the
NormalizeChannelOutputs
property to'true'
, the average gain of the channel is 0 dB.
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
See Also
Objects
Functions
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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)