Massive MIMO Simulation – numberOfSubcarriers

Viewing 15 posts - 1 through 15 (of 20 total)
  • Author
    Posts
  • #14878
    Farhan
    Participant

    Hi,

    I am trying to increase number of Subcarriers from 72 to 384 in Massive MIMO scenario, but it is not letting me to do so, below is my configuration:

    scStr.modulation.numberOfSubcarriers = [384];
    scStr.modulation.subcarrierSpacing = [15e3];
    scStr.modulation.nSymbolsTotal = [14];
    scStr.modulation.nGuardSymbols = [1];
    scStr.modulation.samplingRate = ‘Automatic’;

    %% Schedule
    scStr.schedule.fixedScheduleDL{1} = [‘UE1:384,UE2:UE1,UE3:UE1,UE4:UE1,UE5:UE1,UE6:UE1,UE7:UE1,UE8:UE1,UE9:UE1,UE10:UE1’];
    scStr.schedule.fixedScheduleDL{2} = [‘UE11:384,UE12:UE11,UE13:UE11,UE14:UE11,UE15:UE11,UE16:UE11,UE17:UE11,UE18:UE11,UE19:UE11,UE20:UE11’];
    scStr.schedule.fixedScheduleUL{1} = [‘UE1:384,UE2:UE1,UE3:UE1,UE4:UE1,UE5:UE1,UE6:UE1,UE7:UE1,UE8:UE1,UE9:UE1,UE10:UE1’];
    scStr.schedule.fixedScheduleUL{2} = [‘UE11:384,UE12:UE11,UE13:UE11,UE14:UE11,UE15:UE11,UE16:UE11,UE17:UE11,UE18:UE11,UE19:UE11,UE20:UE11’];

    Can you please let me know where else I need to modify the code?

    #14879

    Hi,

    but it is not letting me to do so

    can you please report the error message you get when trying to run the simulation?

    best
    Stefan

    #14881
    Farhan
    Participant

    Warning: For all multi-user MIMO modes the downlink schedule in the scenario files is ignored. All users
    assigned to the basestation are scheduled on all available subcarriers.
    > In Parameters.SimulationParameters/checkParameters (line 530)
    In Parameters.SimulationParameters (line 30)
    In main (line 23)
    Warning: For all multi-user MIMO modes the downlink schedule in the scenario files is ignored. All users
    assigned to the basestation are scheduled on all available subcarriers.
    > In Parameters.SimulationParameters/checkParameters (line 530)
    In Parameters.SimulationParameters (line 30)
    In main (line 23)
    Warning: For all multi-user MIMO modes the uplink schedule in the scenario files is ignored. All users
    assigned to the basestation are scheduled to transmit on all available subcarriers.
    > In Parameters.SimulationParameters/checkParameters (line 589)
    In Parameters.SimulationParameters (line 30)
    In main (line 23)
    Warning: For all multi-user MIMO modes the uplink schedule in the scenario files is ignored. All users
    assigned to the basestation are scheduled to transmit on all available subcarriers.
    > In Parameters.SimulationParameters/checkParameters (line 589)
    In Parameters.SimulationParameters (line 30)
    In main (line 23)
    The sampling rate was set to 74.880000 MHz.
    Sampling rate does not match the predefined delays of the channel model!
    Delay taps are changed according to (top = desired value; bottom = chosen value):
    1.0e-06 *

    0 0.1100 0.1900 0.4100
    0 0.1068 0.1870 0.4140

    ——- Started ——-
    Warning: The temporary variable signalLength will be cleared at the beginning of each iteration of the
    parfor loop.
    Any value assigned to it before the loop will be lost. If signalLength is used before it is assigned in
    the parfor loop, a runtime error will occur.
    See Parallel for Loops in MATLAB, “Temporary Variables”.
    > In main (line 48)
    Warning: Pilot pattern is LTE Uplink like, but not standard compliant for a number of 13 symbols per slot!
    > In ChannelEstimation.PilotSymbolAidedChannelEstimation (line 167)
    In Parameters.SimulationParameters/initializeLinks (line 1523)
    In parallel_function>make_general_channel/channel_general (line 837)
    In remoteParallelFunction (line 46)
    Warning: Pilot pattern is LTE Uplink like, but not standard compliant for a number of 13 symbols per slot!
    > In ChannelEstimation.PilotSymbolAidedChannelEstimation (line 167)
    In Parameters.SimulationParameters/initializeLinks (line 1523)
    In parallel_function>make_general_channel/channel_general (line 837)
    In remoteParallelFunction (line 46)
    Warning: Pilot pattern is LTE Uplink like, but not standard compliant for a number of 13 symbols per slot!
    > In ChannelEstimation.PilotSymbolAidedChannelEstimation (line 167)
    In Parameters.SimulationParameters/initializeLinks (line 1523)
    In parallel_function>make_general_channel/channel_general (line 837)
    In remoteParallelFunction (line 46)
    Warning: Pilot pattern is LTE Uplink like, but not standard compliant for a number of 13 symbols per slot!
    > In ChannelEstimation.PilotSymbolAidedChannelEstimation (line 167)
    In Parameters.SimulationParameters/initializeLinks (line 1523)
    In parallel_function>make_general_channel/channel_general (line 837)
    In remoteParallelFunction (line 46)
    Warning: Pilot pattern is LTE Uplink like, but not standard compliant for a number of 13 symbols per slot!
    > In ChannelEstimation.PilotSymbolAidedChannelEstimation (line 167)
    In Parameters.SimulationParameters/initializeLinks (line 1523)
    In parallel_function>make_general_channel/channel_general (line 837)
    In remoteParallelFunction (line 46)
    Error using ChannelEstimation.PilotSymbolAidedChannelEstimation (line 172)
    Index in position 2 is invalid. Array indices must be positive integers or logical values.

    Error in Parameters.SimulationParameters/initializeLinks (line 1523)
    ChannelEstimator =
    ChannelEstimation.PilotSymbolAidedChannelEstimation( …

    Error in main (line 48)
    parfor iSweep = 1:length(simParams.simulation.sweepValue) % this may be ‘for’ or ‘parfor’

    >>

    #14882
    Mariam Mussbah
    Keymaster

    Hi,

    It seems that the value for scStr.modulation.nSymbolsTotal is not compatible with the selected pilot pattern. Setting scStr.modulation.nSymbolsTotal = [15] should fix this problem.

    Best,
    Mariam

    #14885
    Farhan
    Participant

    Hi Mariam,

    Thanks for your reply, the problem still persist. Can you please check at your system by increasing the number of Subcarriers to a higher value?

    #14886
    Mariam Mussbah
    Keymaster

    Hi Farhan,

    Do you still get the same error message or do you get a different one? What happens if you change scStr.simulation.pilotSequenceLength to 8? Do you still get the an error message?

    Best,
    Mariam

    #14887
    Farhan
    Participant

    HI Mariam,

    Thanks for your reply, I have made changes as per your suggestion but I am getting this message, pasted below, I am simply trying to increase number of Subcarrier. Can you reproduce it by increasing in this Massive MIMO sceanrio:

    Error using Channel.FastFading/NewRealization (line 590)
    Out of memory. Type “help memory” for your options.

    Error in Channel.FastFading (line 231)
    obj.NewRealization(0);

    Error in Parameters.SimulationParameters/initializeLinks (line 1613)
    Links{linkX, linkY}.Channel = Channel.FastFading(
    obj.modulation.samplingRate,…

    Error in main (line 48)
    parfor iSweep = 1:length(simParams.simulation.sweepValue) % this may be ‘for’ or ‘parfor’

    >>

    #14909
    Farhan
    Participant

    Hi Mariam,

    Reference above post, I have tried all possible options but got error message. what values do you suggest if I want to increase number of subcarriers in Massive MIMO Scenario which you have tested?

    configuration:

    scStr.modulation.numberOfSubcarriers = [?];
    scStr.modulation.subcarrierSpacing = ?;
    scStr.modulation.nSymbolsTotal = ?;
    scStr.modulation.nGuardSymbols = ?;
    scStr.modulation.samplingRate = ‘Automatic’;

    scStr.schedule.fixedScheduleDL{1} = [‘UE1:?,UE2:UE1,UE3:UE1,UE4:UE1,UE5:UE1,UE6:UE1,UE7:UE1,UE8:UE1,UE9:UE1,UE10:UE1’];
    scStr.schedule.fixedScheduleDL{2} = [‘UE11:?,UE12:UE11,UE13:UE11,UE14:UE11,UE15:UE11,UE16:UE11,UE17:UE11,UE18:UE11,UE19:UE11,UE20:UE11’];
    scStr.schedule.fixedScheduleUL{1} = [‘UE1:?,UE2:UE1,UE3:UE1,UE4:UE1,UE5:UE1,UE6:UE1,UE7:UE1,UE8:UE1,UE9:UE1,UE10:UE1’];
    scStr.schedule.fixedScheduleUL{2} = [‘UE11:?,UE12:UE11,UE13:UE11,UE14:UE11,UE15:UE11,UE16:UE11,UE17:UE11,UE18:UE11,UE19:UE11,UE20:UE11’];

    #14910
    Mariam Mussbah
    Keymaster

    Hi Farhan,

    The error message you got indicates that you computer had ran out of memory. If you can not switch to a computer with a larger memory, I would recommand the trying the following steps:

    1. Change the parfor loop to a for loop
    2. If you want to compare MRT and ZF but are not interested in the interference caused by the two BSs, I would recommand splitting the scenario into two scenarios. You would first simulate a scenria with one BS and 10 UE using the ZF multi-user MIMO mode and in the second scenario you change the transmission mode to MRT.
    3. You can try reducing the total number of symbols per frame nSymbolsTotal.
    4. If you are using FDD mode, you could deactivate the uplink and only simulate the downlink .

    There are many ways in which you can reduce your scenario. You need to find out what you are interested in and then reduce your scenario according to that.

    Best,
    Mariam

    #14913
    Farhan
    Participant

    Hi Mariam,

    Is it RAM or ROM which ran out ?

    P.S: As per manual it says “distributed computing server” and “Parallel Computing Toolbox” are required for this simulator. But I am not sure If I use a licensed Parallel Computing Toolbox will I be able to run my simulation or do I need a separate license for “distributed computing server”. I searched but I am no sure if “distributed computing server” is even a toolbox or something else. Can you please clarify toolbox requirements.

    Regards,
    Farhan

    • This reply was modified 2 months, 1 week ago by Farhan.
    #14915
    Mariam Mussbah
    Keymaster

    Hi Farhan,

    You are running out of RAM.

    The usage of Parallel Computing and the Distributed Computing toolboxes is optional for optimal running, and therefore are not required in order to run the simulator.

    Best,
    Mariam

    #14916
    Farhan
    Participant

    Hi Mariam,

    Thanks for the clarification. As Parallel Computing Toolbox is optional for Link Level Simualtor, I Changed the parfor loop to a for loop but it is giving following error message:

    ‘parcluster’ requires Parallel Computing Toolbox.

    Error in main (line 40)
    myCluster   = parcluster('local');

    When I change parcluster to cluster it is giving following error message:

    Error in main (line 40)
    myCluster   = cluster('local');

    What else I need to change in order to run it without Parallel Computing Toolbox ?

    • This reply was modified 2 months, 1 week ago by Farhan.
    #14918
    Mariam Mussbah
    Keymaster

    Hi Farhan,

    You have to remove the following two lines

    myCluster   = parcluster('local');
    NumWorkers  = myCluster.NumWorkers;

    Best,
    Mariam

    #14919
    Farhan
    Participant

    Hi,

    After removing these lines it is now giving below message:

    ------- Started -------
    Unable to resolve the name Coding.ChannelCodingComponents.CRCMEX.
    
    Error in Coding.ChannelCodingComponents.CRC.Attach (line 48)
            CRCAttached = Coding.ChannelCodingComponents.CRCMEX(InputBits, CRCPoly, 0);
    
    Error in Coding.ChannelCoding/encode (line 104)
            InputBits = Coding.ChannelCodingComponents.CRC.Attach(InputBits, obj.CRCPoly);
    
    Error in Elements.User/generateTransmitSignal (line 42)
                        codedBits{iCodeword} = primaryLink.ChannelCoder{iCodeword}.encode(primaryLink.InputBits{iCodeword});
    
    Error in main (line 99)
                        UE{iUE}.generateTransmitSignal(Links);
    #14933

    Dear Farhan,

    the Vienna 5G LLS uses pre-compiled MEX files for channel coding and decoding. It seems as if there is a problem with these MEX files.

    Which operating system are you running?

    kind regards
    Stefan

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