3 cell simulation

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #10255
    chai
    Participant

    Dear all,

    is it possible to run a 3 cells simulation using this simulator?

    if yes, can show me how?

    i get this error when trying to run the simulation:”Index exceeds matrix dimensions”

    Chai

    #10266

    Dear Chai,

    yes it is possible, however, whether such a setup leads to meaningful results, depends on the scenario you have in mind.

    Basically you have to declare all base stations (BS) and users (UE) within the scenario file and than additionally input all links pathlosses and attenuations. Can you please be more specific with your error message? Which matrix’ dimensions is exceeded?

    best
    Stefan

    #10285
    chai
    Participant

    Dear Mr. Stefan,

    All the lines of the message are” Index exceeds matrix dimensions.

    Error in Parameters.SimulationParameters/generateLinks (line 445)
    mcs = obj.modulation.mcsValues(obj.modulation.mcs(BSiD));

    Error in main (line 49)
    LinksParFor = simParams.generateLinks(Links, BS, UE); %#ok”

    as you can see, it doesnt mention specifically where did the error goes”

    Chai

    #10290

    Dear Chai,

    please make sure that all parameters are set accordingly. If you want to simulate with three cells, you also need to define nodes within the topology correspondingly. For a three cell simulation you should have something like this

    scStr.topology.nodes = ['BS1,BS2,BS3,UE1,UE2,UE3'];

    In order to solve this issue, please post your scenario file such that I can check it.

    best
    Stefan

    #10301
    chai
    Participant

    Dear Dr. Stefan,

    Below are exactly all the data that i used:
    “% numerology scenario
    %
    % simulation setup to show simulation with different subcarrier
    % spacings for different users with UFMC modulation

    %% Simulation Parameters
    % set link types to simulate
    scStr.simulation.simulateDownlink = true; % downlink
    scStr.simulation.simulateUplink = false; % uplink
    scStr.simulation.simulateD2D = false; % device to device links

    % plot options
    scStr.simulation.plotOverSNR = true; % select to plot resulty over SNR instead of pathloss

    % define a sweep parameter
    scStr.simulation.sweepParam = {‘simulation.pathloss’}; % sweep ove pathloss to obtain results over SNR
    scStr.simulation.sweepValue = linspace(140,110,8); % Define parameter values to sweep over, in dB. A good starting point for the pathloss is 150 to 110

    scStr.simulation.nFrames = 1000; % number of frames to simulate per sweep value

    scStr.simulation.txPowerUser = [30, 30, 30];
    scStr.simulation.txPowerBaseStation = [30, 30, 30]; % 10dB more transmit power for UE1

    scStr.simulation.pathloss = 80;

    scStr.simulation.nAntennasUser = [1, 1, 1]; % single antenna setup for all nodes
    scStr.simulation.nAntennasBaseStation = [1, 1, 1];

    scStr.simulation.centerFrequency = 2.5e9;
    scStr.simulation.channelEstimationMethod = ‘PilotAided’;
    scStr.simulation.pilotPattern = ‘Diamond’;
    scStr.simulation.equalizerType = ‘One-Tap’;
    scStr.simulation.receiverTypeMIMO = ‘ZF’;

    %% Topology
    % Specifiy all the nodes in ascending order with starting
    % index of 1 (BS0 or UE0 is not allowed).
    scStr.topology.nodes = [‘BS1,BS2,BS3,UE1,UE2,UE3’]; % 2 cells with one user each

    % Primary (desired) links
    scStr.topology.primaryLinks = [ ‘BS1:UE1,’… % downlink links only
    ‘BS2:UE2,’…
    ‘BS3:UE3’ ];

    % Interference Links
    scStr.topology.interferenceGeneration = ‘Automatic’; % automatic generation of interference links
    scStr.topology.attenuation = 0; % set attenuation to zero to virtually have two users in one cell

    scStr.topology.interferingLinks = [ ‘BS1:UE1*0,’… % unused
    ‘BS2:UE2*0,’…
    ‘BS3:UE3*0’];

    %% Modulation Parameters
    % waveform
    scStr.modulation.waveform = { ‘f-OFDM’, … % waveform for each BS:
    ‘WOLA’, …
    ‘OFDM’ }; % ‘OFDM’ – Orthogonal Frequency Division Multiplexing
    % ‘FBMC’ – Filer Bank MultiCarrier
    % ‘UFMC’ – Universal Filtered MultiCarrier
    % ‘f-OFDM’ – filtered OFDM
    % ‘WOLA’ – Weighted OverLap and Add

    % parameters for FBMC
    scStr.modulation.prototypeFilter = ‘PHYDYAS-OQAM’; % prototype filter for FBMC:
    % ‘Hermite-OQAM’
    % ‘Hermite-QAM’
    % ‘Rectangle-QAM’
    % ‘RRC-OQAM’
    % ‘RRC-QAM’
    % ‘PHYDYAS-OQAM’
    % ‘PHYDYAS-QAM’

    % parameters for UFMC
    scStr.modulation.nSubcarriersPerSubband = [12, 12, 12]; % number of subcarriers per subband
    scStr.modulation.FilterLength = [112, 28]; % filter length

    % SISO transmission
    scStr.modulation.transmissionMode = ‘spatial multiplexing’; % SM with single antenna equals a SISO transmission
    scStr.modulation.precodingCodebook = ‘custom’;
    scStr.modulation.mcs = [15, 15];
    scStr.modulation.nStreams = [1, 1];
    scStr.modulation.precodingMatrix{1} = 1;
    scStr.modulation.precodingMatrix{2} = 1;

    % time and bandwidth setup
    scStr.modulation.subcarrierSpacing = [15e3, 30e3, 15e3]; % select a four times bigger subcarrier spacing in the second cell
    scStr.modulation.numerOfSubcarriers = [72, 36, 72]; % to have the same bandwidth, the total number of subcarriers must be one fourth on the second cell
    scStr.modulation.nSymbolsTotal = [15, 30, 15]; % to have the same frame duration, the total number of symbols must be four times higher in the second cell
    scStr.modulation.nGuardSymbols = [1, 2, 1]; % the total guard time has to be four times larger in the second cell to make frame durations match
    scStr.modulation.samplingRate = ‘Automatic’; % sampling rate has to be the same for all nodes (across all base stations):
    % either numeric value for manual setting or ‘Automatic’
    scStr.modulation.oversamplingFactor = 2; % oversampling factor for sampling rate calculation, should be at least two

    %% Channel Coding Parameters
    scStr.coding.code = {‘Turbo’, ‘Turbo’, ‘Turbo’};
    scStr.coding.decoding = { ‘MAX-Log-MAP’,…
    ‘MAX-Log-MAP’,…
    ‘MAX-Log-MAP’};
    scStr.coding.decodingIterations = [10, 10, 10];

    %% Schedule
    % both users are scheduled the same total bandwidth
    scStr.schedule.fixedSchedule{1} = [ ‘UE1:36,none:36’ ]; % first user gets the upper half of the first cells’s schedule
    scStr.schedule.fixedSchedule{2} = [ ‘none:18,UE2:18’ ]; % second user gets the lower half of the second cells’s schedule
    scStr.schedule.fixedSchedule{3} = [ ‘none:36,UE3:36’ ];

    %% Channel Parameters
    scStr.simulation.userVelocity = [0, 0, 0];
    scStr.channel.dopplerModel = ‘Discrete-Jakes’;
    scStr.channel.nPaths = 50;
    scStr.channel.powerDelayProfile = ‘PedestrianA’;

    Please guide me on what should i do.

    Chai

    #10313

    Dear Chai,

    you are missing some modulation parameters for the third cell, please change to the following:

    scStr.modulation.mcs = [15, 15, 15];
    scStr.modulation.nStreams = [1, 1, 1];
    scStr.modulation.precodingMatrix{1} = 1;
    scStr.modulation.precodingMatrix{2} = 1;
    scStr.modulation.precodingMatrix{3} = 1;

    Let me know if you encounter further problems.

    best
    Stefan

    #10458
    BP
    Participant

    Sir
    I run the same simulation code mentioned above with corrections which you said but with UFMC,it gave me error:

    Error using Modulation.UFMC/SetDependentParameters (line 78)
    Number of subbands has to be integer; otherwise it is necessary to add zeros artificially

    Error in Modulation.UFMC (line 50)
    obj.SetDependentParameters();

    Error in Modulation.Modulator (line 52)
    obj.WaveformObject = Modulation.UFMC(varargin{5}, varargin{6}, varargin{7}, varargin{8},
    varargin{9}, varargin{10}, varargin{11}, varargin{12}, varargin{13}, varargin{14});

    Error in Parameters.SimulationParameters/generateLinks (line 532)
    Links{linkX, linkY}.Modulator = Modulation.Modulator( ‘QAM’,
    mcs.modulationOrder, ‘UFMC’, …

    Error in main (line 49)
    LinksParFor = simParams.generateLinks(Links, BS, UE);

    >>

    #10486

    Hi,

    this is because you are trying to schedule user 2 18 subcarriers, while an UFMC subband consists of 12 subcarriers. In the case of UFMC, the number of scheduled subcarriers has to be an integer multiple of the subband size. You can try to reduce the subband size to 6 subcarriers for example.

    best
    Stefan

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.