File Exchange

image thumbnail

WINNER II Channel Model for Communications System Toolbox

Model and simulate spatially-defined channels for multi-user MIMO wireless systems

7 Ratings



Installer file for WINNER II Channel Model for Communications System Toolbox
Using WINNER II channel models, you can model and simulate spatially-defined channels for multi-user MIMO wireless systems. You can specify an arbitrary number of base stations (BS) and mobile stations (MS) together with their geometry and location information.

The channel model enables you to simulate both line-of-sight (LOS) and non-LOS propagation conditions. It also allows you to apply multiple indoor and outdoor propagation scenarios. You can perform channel filtering in a streaming fashion with WINNER-generated channel coefficients.

The channel model supports
• RF frequencies up to 6 GHz, and signal bandwidths up to 100 MHz
• Line-of-sight (LOS) and non-LOS propagation
• 12 indoor and outdoor propagation scenarios
• Arbitrarily large antenna arrays (for massive MIMO applications)
• Isotropic, dipole and user-defined antenna element patterns
• A variety of antenna array types (linear, circular, and user-defined)

Opening the .mlpkginstall file from your operating system or from within MATLAB will initiate the installation process for this Add-on and acquire the latest version for the release you have.

This .mlpkginstall file is functional for R2016b and beyond.

Comments and Ratings (19)

Yue Shang

Hi Ahmed, if you have the field pattern for each individual element of the array, you can use the winner2.AntennaArray function to formulate your own antenna array and use it to model the channel.

Yue Shang

@WK, the mobile station's instantaneous velocity is required so the channel is changing over time due to Doppler/phase shifts. In addition, WINNER II uses MS velocity, half wavelength and the ModelConfig.SampleDensity field to implicitly set the signal sampling rate. Please refer to the help page of comm.WINNER2Channel on this.


WK (view profile)

@Yue Shang: Can you clarify your comment to Ioannis: "the distance between BS and MS is fixed for a given object configuration." If this is the case, what is the point to setting the "cfgLayout.Stations.Velocity" property?

can I add my own MIMO antenna radiation pattern to this model?

Yue Shang

Hi Mohammad, thanks for pointing out the typos in the help page example. We will fix it.

Mohammad N.

correct code:


cfgWim = winner2.wimparset;
cfgWim.SampleDensity = 20;
cfgWim.RandomSeed= 10; % For repeatability
BSAA = winner2.AntennaArray('UCA',8,0.02); % UCA-8 array for BS
MSAA1 = winner2.AntennaArray('ULA',2,0.01); % ULA-2 array for MS1
MSAA2 = winner2.AntennaArray('ULA',4,0.005); % ULA-4 array for MS2
MSIdx = [2,3];
BSIdx = {1};
NL = 2;
rndSeed = 5;
cfgLayout = winner2.layoutparset(MSIdx,BSIdx, ...
[H1,~,finalCond] = winner2.wim(cfgWim,cfgLayout);
[H2,~,finalCond] = winner2.wim(cfgWim,cfgLayout,finalCond);
H = cellfun(@(x,y) cat(4,x,y), H1, H2, 'UniformOutput', false);
Ts = finalCond.delta_t(1); % Sample time for the 1st link
xlabel('Time (s)');
title('First Path Coefficient of 1st Link, 1st Tx and 1st Rx');
grid on;

Mohammad N.

The code example in winner2.wim help page has some syntax bugs and after correction, its result is wrong.

Yue Shang

Hi Itay -- What is shown on the wiki page is the total directivity pattern for a vertical half wavelength dipole, while the plots you demonstrated using winner2.dipole are the V and H polarization directivity patterns in the azimuth plane for the same dipole. For a vertical dipole, the H polarization pattern is zero in the azimuth plane. That’s why you see the difference. Note that winner2.dipole doesn’t model elevation. Please refer to the command line help of winner2.dipole. Hope this helps.

Itay Cnaan

The function winner2.dipole() provides wrong radiation pattern.
The output radiation pattern is zero, while it should follow the dipole known pattern (

This code demonstrates it:

az = -180:179;
pattern = squeeze(winner2.dipole(az));
polarplot(az/180*pi, pattern(1,:));
polarplot(az/180*pi, pattern(2,:));

Jorden Lee


Jorge (view profile)

John Wang

It is useful for 5G R&D.

Yue Shang

Hi Ioannis, the distance between BS and MS is fixed for a given object configuration, so is the path loss. The power variation can only be from fading. Perhaps it is a slow fading channel and the fading happens to go deep from the start of the simulation. If that is the case, you will see the power go up when you run the simulation long enough. Alternatively, you can try to reduce the SampleDensity field value of the ModelConfig property to see if it can make a difference for you.

Excellent work on this. Just one question: each time the Winner channel filter object is called, the output power is decreasing. My initial thought that this was due to moving away from the BS, but the time-frame is much much smaller than this to justify such variation.

Any comments?

Hello, I have MATLAB 2016b. Yet when I try to install this add-on, it says I need Communications Toolbox 6.3 and I can't find the mentioned toolbox. Hence I am unable to use this add-on. Please help me..

Sorry Parna, this submission is not available for R2015b. Please update your MATLAB version to R2016b and try using it again.

Parna Sabeti

Hello, I've got a message that says this model is not available for this release of MATLAB. I'm using MATLAB R2015b, and it's updated. So, what's wrong? Can anybody help me with that, please?

Parna Sabeti

MATLAB Release
MATLAB 9.1 (R2016b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Win prizes and improve your MATLAB skills

Play today