Rayleigh Fading Channel in IEEE 802.11ac

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

Categories

Find more on Wireless Communications in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!