Rayleigh Fading Channel in IEEE 802.11ac

5 views (last 30 days)
I have two questions.
  1. How can I use Rayleigh Fading Channel in IEEE 802.11ac null data packet sounding (transmit beamforming) instead of WINNER II channel?
  2. How can I change the default user positions in IEEE 802.11ac transmit beamforming into different random positions in 2-D space?
Could anyone help me out ? I would apprectiate your effort.
  • The reference code is given in the IEEE 802.11ac transmit beamforming
The code is here:
For Question 1:
% Set up layout parameters for WINNER II channel
AA = winner2.AntennaArray('UCA',numTx,0.2);
for i = 1:numUsers
AA(i+1) = winner2.AntennaArray('ULA',numSTSVec(i),0.05);
end
STAIdx = 2:(numUsers+1);
APIdx = {1};
rndSeed = 12;
cfgLayout = winner2.layoutparset(STAIdx,APIdx,numUsers,AA,[],rndSeed);
cfgLayout.Pairing = [ones(1,numUsers);2:(numUsers+1)]; % One access point to all users
cfgLayout.ScenarioVector = ones(1,numUsers); % A1 scenario for all links
cfgLayout.PropagConditionVector = zeros(1,numUsers); % NLOS
for i = 1:numUsers % Randomly set velocity for each user
v = rand(3,1) - 0.5;
cfgLayout.Stations(i+1).Velocity = v/norm(v,'fro');
end
% Set up model parameters for WINNER II channel
cfgModel = winner2.wimparset;
cfgModel.FixedPdpUsed = 'yes';
cfgModel.FixedAnglesUsed = 'yes';
cfgModel.IntraClusterDsUsed = 'no';
cfgModel.RandomSeed = 111; % Repeatability
% The maximum velocity for the 3 users is 1m/s. Set up the SampleDensity
% field to ensure that the sample rate matches the channel bandwidth.
maxMSVelocity = max(cell2mat(cellfun(@(x) norm(x,'fro'), ...
{cfgLayout.Stations.Velocity},'UniformOutput',false)));
cfgModel.UniformTimeSampling = 'yes';
cfgModel.SampleDensity = round(physconst('LightSpeed')/ ...
cfgModel.CenterFrequency/2/(maxMSVelocity/wlanSampleRate(cfgVHTMU)));
% Create the WINNER II channel System object
WINNERChan = comm.WINNER2Channel(cfgModel,cfgLayout);
% Call the info method to check some derived channel parameters
chanInfo = info(WINNERChan)
For Question 2:
s = rng(10); % Set RNG seed for repeatability
% Transmission parameters
chanBW = 'CBW80'; % Channel bandwidth
numUsers = 3; % Number of users
numSTSVec = [3 1 4]; % Number of streams per user
userPos = [0 1 2]; % User positions
mcsVec = [4 6 8]; % MCS per user: 16QAM, 64QAM, 256QAM
apepVec = [520 192 856]; % Payload per user, in bytes
chCodingVec = {'BCC','LDPC','LDPC'}; % Channel coding per user
% Precoding and equalization parameters
precodingType = 'ZF'; % Precoding type; ZF or MMSE
snr = 47; % SNR in dB
eqMethod = 'ZF'; % Equalization method
% Create the multiuser VHT format configuration object
numTx = sum(numSTSVec);
cfgVHTMU = wlanVHTConfig('ChannelBandwidth',chanBW, ...
'NumUsers',numUsers, ...
'NumTransmitAntennas',numTx, ...
'GroupID',2, ...
'NumSpaceTimeStreams',numSTSVec,...
'UserPositions',userPos, ...
'MCS',mcsVec, ...
'APEPLength',apepVec, ...
'ChannelCoding',chCodingVec);

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!