Massive MIMO Simulation -spatialChannelModel

Tagged: 

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #15251
    Farhan
    Participant

    Hi,

    In Massive MIMO scenario, when I set scStr.channel.spatialChannelModel = True;

    followed by the below Configurations

    scStr.channel.nSpatialPaths                 = [10];       
    scStr.channel.angleMeanAOA                  = [90]; 
    scStr.channel.angleMeanZOA                  = [45];       
    scStr.channel.angleSigmaAOA                 = [5];        
    scStr.channel.angleSigmaZOA                 = [5];   
    scStr.channel.kFactor                       = [5];        
    scStr.channel.antennaSpacing                = [1/2];    

    I am getting this error I am pasting below,

    > In main (line 48)
    Error using Channel.FastFading/NewRealization (line 395)
    Matrix dimensions must agree.

    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’

    Please let me know which parameter I am setting incorrectly or share sample parameters!

    • This topic was modified 1 month ago by Farhan.
    #15273
    Farhan
    Participant

    @Bashar

    If you can please respond here.

    Warm Regards,
    Farhan

    #15276
    Bashar Tahir
    Participant

    Dear Farhan,

    The spatialChannelModel requires setting the number of the horizontal and vertical antenna elements in scStr.simulation.antennaConfiguration. Their product should be equal to the total number of transmit antennas, that is, nHor x nVer = nTxAntennas.

    At the moment in the simulator, the antennaConfiguration is fixed. In the massiveMIMO sceraio, it is set to {[4,4]}, which corresponds to 16 transmit antennas. This is the reason you are getting this error, because when you sweep over nAntennasBaseStation and it is not 16, then you get a mismatch error, as the antennaConfiguration does not match nAntennasBaseStation.

    So, you can use the following fix: Go to +Parameters/SimulationParameters.m, then go to the function initializeLinks(obj, Links, BS, UE). Add the following line to the begining of function:
    obj.simulation.antennaConfiguration(:) = {[obj.simulation.nAntennasBaseStation(1), 1]};

    This will make sure that the antennaConfiguration is adjusted based on nAntennasBaseStation. Here, [obj.simulation.nAntennasBaseStation(1), 1] means that the configuration correponds to a uniform linear array (ULA), where all the antennas are put on the horizontal direction (1D).

    Best regards,
    Bashar

    #15280
    Farhan
    Participant

    Hi Bashar,

    I have added obj.simulation.antennaConfiguration(:) = {[obj.simulation.nAntennasBaseStation(1), 1]}; on line 1196 and below is the snippet

     function Links = initializeLinks(obj, Links, BS, UE)
    obj.simulation.antennaConfiguration(:) = {[obj.simulation.nAntennasBaseStation(1), 1]};
                % this function  initializes all links according to some
                % scenario setting
                L = length(Links);
                
                nBS = length(BS);

    I have set
    scStr.channel.spatialChannelModel = true; in original massiveMIMO scenario file

    But now I am getting this error below:

    Error using Parameters.SimulationParameters/checkParameters (line 743)
    There must be an azimuth AoA distribution mean value defined for each link!

    Error in Parameters.SimulationParameters (line 30)
    obj.checkParameters();

    Error in main (line 23)
    simParams = Parameters.SimulationParameters(simulationScenario);

    #15281
    Farhan
    Participant

    Do I need to change this below parameter:

    
    scStr.channel.angleMeanAOA                  = [90,60,45]; 

    in Original massiveMIMO scenario file?

    If yes, What value should I set?

    #15288
    Bashar Tahir
    Participant

    There are 16 links in your scenario, and therefore you should define an angle for each link (i.e., you need to enter 16 values). Of course, you can enter just a single angle, which then would be applied to all links; however, this means that all the users lie in the same direction, which for high K-factors, means that you cannot seperate the users spatially, and will result in a huge performance drop.

    So unless you want to investigate the performance of closely-spaced users, you should set the angles arbitrarily in the range of [0, 360] degrees. Also, since each user has an uplink and downlink, you might want to have some consistency between the uplink and downlink links. Check the user manual for further information about the assumed corrdinate system. But yeah, you can just ignore that and set the angles for all links arbitrarily.

    Best,
    Bashar

    #15295
    Farhan
    Participant

    Hi Bashar,

    Thanks for your reply, I am interested to investigate the performance of closely-spaced users as well as sparsely spaced users. Referencing Manual’s Spherical angles definition in a Cartesian coordinate system, There are two parameters:

    
    scStr . channel . angleMean AOA 
    scStr . channel . angleMean ZOA 

    if I enter values like below:
    scStr.channel.angleMeanAOA = [0,90,180,270,0,90,180,270,0,90,180,270,0,90,180,270,];
    scStr.channel.angleMeanZOA = [90,60,45,30,90,60,45,30,90,60,45,30,90,60,45,30];

    As per my understanding, This Means UE1 corresponds to AngleMeanAOA to “0 degree” and AngleMeanZOA “90 degree” in Downlink and UE2 is having AngleMeanAOA “90 degree” and AngleMeanZOA “60 degree” in Downlink and so on and same analogy for last 8 values except that they corresponds to uplink. Even though I have set scenario like this the performance is almost the same for First four UE’s and last four UE’s . I am expecting that individual performance of the UE for example UE1 and UE2 to differ from each other as they have different AOA and ZOA but they are the same. Can you please guide in this regard?

    #15307
    Bashar Tahir
    Participant

    Dear Farhan,

    I am not sure why do you expect to see a difference. As long as they are sufficiently separable, then they would have a similar performance, given that they are being operated with the same CQI.

    I suggest to start with only a single BS with two users, disable the uplink, and just look at the downlink performance. Set the K factor high (20 or something), so it is mainly LOS dominated. Fix the angleMeanZOA to 45, angleSigmaAOA and angleSigmaZOA to 0, and then change the AOA angles of the two users and see what happens. For similar AOA angles, you should see a substantial performance drop, compared to the case where they are sufficiently separated.

    Best,
    Bashar

    • This reply was modified 3 weeks, 3 days ago by Bashar Tahir.
    #15310
    Farhan
    Participant

    Hi Bashar,

    Thanks for your reply. I am now setting the simulation as suggested by you. Moreover I was thinking whether the BS uses a number of sectors. If this is the case, what do the different AOAs mean if say the antenna covers a 120 degree sector?

    Regards,
    Farhan

    #15311
    Bashar Tahir
    Participant

    There are no sectors in the link-level simulator. The AoA is from 0 to 360 degrees.

    Best,
    Bashar

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