Hello,
I’m trying to implement traffic models to my HetNet scenario.
Originally we have as users: clusteredUser (IoT users), poissonPedestrians, poissonCars and streetCars (as vehicular users).
In my scenario, I’ve changed to:
clusteredUser
poissonPedestriansFullBuffer (NEW)
poissonPedestriansHTTP (NEW)
poissonPedestriansVideo (NEW)
poissonPedestriansVoIP (NEW)
poissonPedestriansGaming (NEW)
poissonCars
streetCars
I have some questions:
1) Is Full Buffer the traffic type set as default? This is what I undestood by reading scenarios/example and parameters/user/trafficModel/TrafficModel
2) What is the correct way to configure a traffic model? I’m confused about what instruction to follow. In sequence I demonstrate the two ways that I found possible:
% First Way - as "scenarios/example"
poissonPedestriansGaming = parameters.user.Poisson2D;
poissonPedestriansGaming.nElements = 30; % number of users placed
poissonPedestriansGaming.nRX = 1;
poissonPedestriansGaming.speed = 0; % static user
poissonPedestriansGaming.movement = parameters.user.movement.Static;
poissonPedestriansGaming.schedulingWeight = 10; % assign 10 resource blocks when scheduled
poissonPedestriansGaming.indoorDecision = parameters.indoorDecision.Random(0.5);
poissonPedestriansGaming.losDecision = parameters.losDecision.UrbanMacro5G;
poissonPedestriansGaming.channelModel = parameters.setting.ChannelModel.PedA;
poissonPedestriansGaming.trafficModel.type = parameters.setting.TrafficModelType.Gaming;
poissonPedestriansGaming.trafficModel.delayConstraint = 60;
params.userParameters('poissonUserPedestrianGaming') = poissonPedestriansGaming;
Or
% Second Way - as "trafficModels/example"
poissonPedestriansGaming = parameters.user.Poisson2D;
poissonPedestriansGaming.nElements = 30; % number of users placed
poissonPedestriansGaming.nRX = 1;
poissonPedestriansGaming.speed = 0; % static user
poissonPedestriansGaming.movement = parameters.user.movement.Static;
poissonPedestriansGaming.schedulingWeight = 10; % assign 10 resource blocks when scheduled
poissonPedestriansGaming.indoorDecision = parameters.indoorDecision.Random(0.5);
poissonPedestriansGaming.losDecision = parameters.losDecision.UrbanMacro5G;
poissonPedestriansGaming.channelModel = parameters.setting.ChannelModel.PedA;
params.setDependentParameters;
params.transmissionParameters.DL.bandwidthHz = 20e6;
UE = networkElements.ue.User;
poissonPedestriansGaming.trafficModel.type = parameters.setting.TrafficModelType.Gaming;
UE.setGenericParameters(poissonPedestriansGaming, params);
traffic = UE.trafficModel;
for iSlot = 1:10
UE.trafficModel.checkNewPacket(iSlot);
end
[numberOfPackets,remaningBits,generationTimes] = UE.trafficModel.getBufferState;
userThroughput = 3000;
UE.trafficModel.updateAfterTransmit(userThroughput,iSlot);
Latency = UE.trafficModel.getTransmissionLatency;
if all(isinf(Latency)) || isempty(Latency)
warning('Transmission latency plot will not be shown since insufficient number of packets has been transmitted, you may need to increase the simulation time or change the traffic model parameters.');
return;
end
params.userParameters('poissonUserPedestrianGaming') = poissonPedestriansGaming;
3) Is it possible to configure multiple users with different traffic models in the same scenario? If possible, what details should I pay attention to in the configuration?
4) Sometimes I get the warning about insufficient number of packets. How can I increase separately for each scenario user?
5) What is the correct way to plot the Latency ECDF of all users of my scenario including the ones with Traffic Models set? In the MATLAB variable result.transmissionLatency all I get is Inf