produce 7 macrocells with 10 femtocells

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
  • #10716

    I use LTE_sim_main_launcher_femtocells.m with the purpose producing 7 macrocells with 10 femtocells in each of them.
    and i set input values as follows:
    LTE_config.UE_per_eNodeB= [40 2]; % First number refers to ‘macro’, second to ‘femto’ ,i.e. [Nr_of_UEs_per_MacroNr_of_UEs_per_Femto]
    LTE_config.map_resolution= 10;
    LTE_config.femtocells_config.femtos_per_cell= 10;
    LTE_config.compute_only_UEs_from_this_eNodeBs = [5 6 7 10 11 12 16];
    LTE_config.default_shown_GUI_cells = [5 6 7 10 11 12 16];

    But in the GUI, generated image included 2 femtocells in each hexagonal macrocells. dont produce all of the femtocells.
    How can i solve this problem?

    Best regards.


    Dear Anne,

    Decrease the map resolution, otherwise with 10 meters/pixel, it is very likely that positions of the femtocells will be mapped to one pixel, and the GUI plot is based on pixels.

    Best regards,


    Hi Dr.Fjolla
    Thank you so much and your team for your follow up and guidance.

    I have two questions that make me doubt:
    1. for producing 7 macrocells, is the number of rings=1? and if the number of rings=1, only center cell(cell5) is to form of hexagonal in GUI but the other cells are not hexagonal, it seems the region is infinite for them(cell1,cell2,cell3,cell4,cell6,cell7).
    set the number of rings to 2 or 1 is true?
    2. for the number of rings=1, is it true if i set map resolution to 10? Because with lower resolution, for example 5 meters/pixels dont produce the 10 femtocells in each hexagonal cell.

    Best regards.


    Dear Anne,

    please find below a more detailed explanation regarding your questions:

    1. Yes, setting number of rings to 1 means 7 macrocells, one in the center and 6 in the corners. The reason why the outer sectors of outer macrocells don’t form a hexagon shape is because the region of interest is a square. This region is not infinite but it depends on the number of macrocells set by LTE_config.nr_eNodeB_rings and on the inter-site distance between them set with LTE_config.inter_eNodeB_distance. Increasing the number of rings will always produce such behaviour for the outer sectors of outer macrocells.

    If in particular you want to take care of interference influence more accurately, then I recommend to use parameter LTE_config.compute_only_UEs_from_this_eNodeBs = true, or in case of macro and femto put the indices of each cell located in the center, e.g, LTE_config.compute_only_UEs_from_this_eNodeBs = [13:15 first_center_femto_index:last_center_femto_index], as indicated in the launcher file. This will generate all eNodeB_sector-user parameters, while the evaluation of results will only consider users located in the center of the region of interest (excluding the outer sectors since the users in these sectors get less interference due to boundary positions.)

    2. Regarding map resolution, I tried a simulation with 10 meters/pixel, and it produces 10 femtocells in each eNodeB-sector. Maybe check the distribution of femtocells and their positions before plotting!!

    In case you can not solve this issue, send me the launcher file and config file with parameters that you are using for your simulation.

    Best regards,


    Hi Dr.Fjolla
    Thank you for your detailed and regular guidance.
    Do you allow me to contact you through email for details of my project and i benefit of your precious Knowledge?

    i use this launcher file and this config file in my simulation:
    launcher file:
    close all force;
    cd ..
    clear all;
    %clear global;
    %clear classes;

    simulation_type = ‘tri_sector_plus_femtocells’;

    % Possible simulation types now:
    % – ‘tri_sector’
    % – ‘tri_sector_tilted’, ‘tri_sector_tilted_4x2’, ‘tri_sector_tilted_4x4’
    % – ‘tri_sector_plus_femtocells’
    % – ‘six_sector_tilted’
    % – ‘capesso_pathlossmaps’
    % – ‘omnidirectional_eNodeBs’

    LTE_config = LTE_load_params(simulation_type);

    %% If you want to modify something taking as a base the configuration file, do it here: here an example is show that changes the inter-eNodeB distances based on the LTE_load_params_hex_grid_tilted config file.

    % Some changes to the base configuration, in case you would need/want them
    LTE_config.show_network = 1;
    LTE_config.nTX = 1;
    LTE_config.nRX = 1;
    LTE_config.tx_mode = 1;
    LTE_config.scheduler = ‘prop fair Sun’;
    LTE_config.UE_per_eNodeB = [40 2]; % First number refers to ‘macro’, second to ‘femto’ ,i.e. [Nr_of_UEs_per_Macro Nr_of_UEs_per_Femto]
    LTE_config.macroscopic_pathloss_model = ‘TS36942’;
    LTE_config.shadow_fading_type = ‘none’;
    LTE_config.channel_model.type = ‘TU’;
    LTE_config.simulation_time_tti = 2;
    LTE_config.feedback_channel_delay = 1;
    LTE_config.map_resolution = 10;
    LTE_config.compact_results_file = true;
    LTE_config.delete_ff_trace_at_end = true;
    LTE_config.cache_network = true;
    LTE_config.UE_cache = true;
    LTE_config.UE_cache_file = ‘auto’;
    LTE_config.pregenerated_ff_file = ‘auto’;
    LTE_config.trace_version = ‘v1’;
    LTE_config.adaptive_RI = 0;
    LTE_config.keep_UEs_still = true;
    % Femto specific
    LTE_config.femtocells_config.femtos_per_cell = 10;
    LTE_config.femtocells_config.tx_power_W = 10^(20/10)*1/1000;
    LTE_config.femtocells_config.mode = ‘CSG’;
    LTE_config.femtocells_config.macroscopic_pathloss_model_settings.wall_loss = 20;
    LTE_config.femtocells_config.macroscopic_pathloss_model_settings.penetration_loss = LTE_config.femtocells_config.macroscopic_pathloss_model_settings.wall_loss; % Desired signal experiences penetration loss

    % Simulate only UEs in the sectors and femtos of center site:
    % Indices of femtos in coverage of center site:
    first_center_femto_index = 22 + LTE_config.femtocells_config.femtos_per_cell * 12;
    last_center_femto_index = first_center_femto_index + 3 * LTE_config.femtocells_config.femtos_per_cell – 1;
    LTE_config.compute_only_UEs_from_this_eNodeBs = [1 2 3 4 5 6 7];
    LTE_config.default_shown_GUI_cells = [1 2 3 4 5 6 7];

    output_results_file = LTE_sim_main(LTE_config);

    simulation_data = load(output_results_file);
    GUI_handles.aggregate_results_GUI = LTE_GUI_show_aggregate_results(simulation_data);
    GUI_handles.positions_GUI = LTE_GUI_show_UEs_and_cells(simulation_data,GUI_handles.aggregate_results_GUI);

    config file:

    classdef hex_grid_tilted_with_femtocells < utils.simulatorConfig
    methods (Static)
    function LTE_config = apply_parameters(LTE_config)
    % Load the LTE System Level Simulator config parameters
    % (c) Josep Colom Ikuno, INTHFT, 2008

    %% Debug options
    LTE_config.debug_level = 1; % 0=no output
    % 1=basic output
    % 2=extended output

    %% Plotting options
    LTE_config.show_network = 1; % 0= show no plots
    % 1= show some plots
    % 2= show ALL plots (moving UEs)
    % 3=plot even all of the pregenerated fast fading

    %% General options
    LTE_config.frequency = 2.14e9; % Frequency in Hz
    LTE_config.bandwidth = 10e6; % Frequency in Hz

    LTE_config.nTX = 2;
    LTE_config.nRX = 2;
    LTE_config.tx_mode = 4;

    LTE_config.always_on = true; % Controls whether the eNodeB is always radiating power (default and worse-case scenario) or no power is used when no UEs are attached

    %% Random number generation options
    LTE_config.seedRandStream = false;
    LTE_config.RandStreamSeed = 0; % Only used if the latter is set to ‘true’

    %% Simulation time
    LTE_config.simulation_time_tti = 100; % Simulation time in TTIs

    %% Cache options. Saves the generated eNodeBs, Pathloss map and Shadow fading map to a .mat file
    LTE_config.cache_network = true;
    LTE_config.network_cache = ‘auto’;
    LTE_config.delete_ff_trace_at_end = true; % Reduces the amount needed to store the traces by deleting the fading parameters trace from the results file
    LTE_config.delete_pathloss_at_end = true; % Further reduces the amount of space needed to store the traces by deleting the pathloss maps from the results file
    LTE_config.UE_cache = true; % Option to save the user position to a file. This works in the following way:
    % – cache=true and file exists: read position from file
    % – cache=true and file does not exist: create UEs and save to cache
    % – cache=false: do not use cache at all
    LTE_config.UE_cache_file = ‘auto’;
    % LTE_config.UE_cache_file = fullfile(‘./data_files/UE_cache_2rings_2UEs_sector_20100824_174824.mat’);

    %% How to generate the network. If the map is loaded, this parameters will be overridden by the loaded map
    % Use network planning tool Capesso by placing ‘capesso’
    LTE_config.network_source = ‘generated’;
    LTE_config.network_geometry = ‘regular_hexagonal_grid’; % Geometry refers to spatial distribution of macro sites

    % Configure the network source. Overridden if a pregenerated network pathloss map is used.
    % Network size
    LTE_config.inter_eNodeB_distance = 500; % In meters. When the network is generated, this determines the distance between the eNodeBs.
    LTE_config.map_resolution = 5; % In meters/pixel. Also the resolution used for initial user creation
    LTE_config.nr_eNodeB_rings = 1; % Number of eNodeB rings
    LTE_config.minimum_coupling_loss = 70; % Minimum Coupling Loss: the parameter describing the minimum
    % loss in signal [dB] between BS and UE or UE and UE in the worst
    % case and is defined as the minimum distance loss including
    % antenna gains measured between antenna connectors.
    % Recommended in TS 36.942 are 70 dB for urban areas, 80 dB for rural.

    % Models to choose
    % Available are:
    % ‘free space’
    % ‘cost231’
    % ‘TS36942’: Recommended by TS 36.942, subclause 4.5
    % ‘TS25814’: Recommended by TS 25.814 (Annex). The same as in HSDPA
    LTE_config.macroscopic_pathloss_model = ‘TS36942’;

    % Additional pathloss model configuration parameters. Will depend on which model is chosen.
    % Available options are:
    % ‘urban_micro’ (COST231)
    % ‘urban_macro’ (COST231)
    % ‘suburban_macro’ (COST231)
    % ‘urban’ (TS36942)
    % ‘rural’ (TS36942)
    LTE_config.macroscopic_pathloss_model_settings.environment = ‘urban’;

    % eNodeB settings
    LTE_config.eNodeB_tx_power = 10^(46/10)*1/1000; % eNodeB’s transmit power, in Watts.
    % Recommended by TS.36.814 are:
    % 43 dBm for 1.25, 5 MHz carrier
    % 46/49 dBm for 10, 20 MHz carrier

    %% Options for adding femtocells
    LTE_config.add_femtocells = true;
    % LTE_config.femtocells_config.spatial_distribution = ‘homogenous density’;
    % LTE_config.femtocells_config.femtocells_per_km2 = 1;
    LTE_config.femtocells_config.spatial_distribution = ‘constant femtos per cell’;
    LTE_config.femtocells_config.femtos_per_cell = 1; % Femtocell density in macro cell sector
    LTE_config.femtocells_config.tx_power_W = 10^(20/10)*1/1000; % Power in Watts
    LTE_config.femtocells_config.mode = ‘OSG’; % {‘OSG’,’CSG’} … Open or closed subsriber group
    LTE_config.femtocells_config.minimum_coupling_loss = 45; % Minimum coupling loss as specified in TS 36.104
    LTE_config.femtocells_config.macroscopic_pathloss_model = ‘dual slope’;
    LTE_config.femtocells_config.macroscopic_pathloss_model_settings.indoorPathlossExponent = 0;
    LTE_config.femtocells_config.macroscopic_pathloss_model_settings.indoorAreaRadius = 20; % Radius of indoor area in meter
    LTE_config.femtocells_config.macroscopic_pathloss_model_settings.wall_loss = 0; % Wall loss between outdoor and indoor environment
    LTE_config.femtocells_config.macroscopic_pathloss_model_settings.penetration_loss = LTE_config.femtocells_config.macroscopic_pathloss_model_settings.wall_loss; % Desired signal experiences penetration loss

    %% Generation of the shadow fading
    LTE_config.shadow_fading_type = ‘claussen’; % Right now only 2D space-correlated shadow fading maps implemented

    % Configure the network source
    switch LTE_config.shadow_fading_type
    case ‘claussen’
    LTE_config.shadow_fading_map_resolution = 5;
    LTE_config.shadow_fading_n_neighbors = 12;
    LTE_config.shadow_fading_mean = 0;
    LTE_config.shadow_fading_sd = 8;
    LTE_config.r_eNodeBs = 0.5; % inter-site shadow fading correlation
    case ‘none’
    % do not use shadow fading
    error([LTE_config.shadow_fading_type ‘ shadow fading type not supported’]);

    %% Microscale Fading Generation config
    % Microscale fading trace to be used between the eNodeB and its attached UEs.
    LTE_config.channel_model.type = ‘winner+’; % ‘winner+’ ‘PedB’ ‘extPedB’ ‘TU’ –> the PDP to use
    LTE_config.channel_model.trace_length = 5; % Length of the trace in seconds. Be wary of the size you choose, as it will be loaded in memory.
    LTE_config.channel_model.correlated_fading = true;
    LTE_config.pregenerated_ff_file = ‘auto’;

    % With this option set to ‘true’, even if cache is present, the channel trace will be recalculated
    LTE_config.recalculate_fast_fading = false;

    %% UE (users) settings
    % note that for reducing trace sizes, the UE_id is stored as a uint16, so
    % up to 65535 users in total are supported. To change that, modify the scheduler class.

    LTE_config.UE.receiver_noise_figure = 9; % Receiver noise figure in dB
    % LTE_config.UE.thermal_noise_density = -131.59; % Thermal noise density in dBm/Hz (-174 dBm/Hz is the typical value) – use this (-131.59) for the SISO LL-SL comparison
    % LTE_config.UE.thermal_noise_density = -134.89; % Thermal noise density in dBm/Hz (-174 dBm/Hz is the typical value) – use this (-134.89) for the MIMO LL-SL comparison
    LTE_config.UE.thermal_noise_density = -174; % Thermal noise density in dBm/Hz (-174 dBm/Hz is the typical value)

    LTE_config.UE_distribution = ‘constant UEs per cell’;
    LTE_config.UE_per_eNodeB = 2; % number of users per eNodeB sector (calculates it for the center sector and applies this user density to the other sectors)
    % LTE_config.UE_distribution = ‘homogeneous distribution’;
    % LTE_config.UE_per_km2 = 40;
    LTE_config.UE_speed = 5/3.6; % Speed at which the UEs move. In meters/second: 5 Km/h = 1.38 m/s
    LTE_config.keep_UEs_still = false;

    %% eNodeB options
    % LTE_config.antenna.antenna_gain_pattern = ‘berger’;
    % LTE_config.antenna.antenna_gain_pattern = ‘kathreinTSAntenna’; % Additional parameters needed
    LTE_config.antenna.antenna_gain_pattern = ‘omnidirectional’; % As defined in TS 36.942. Identical to Berger, but with a 65° 3dB lobe

    % LTE_config.antenna.max_antenna_gain = 14; % For a berger antenna
    % LTE_config.antenna.max_antenna_gain = 15; % LTE antenna, rural area (900 MHz)
    LTE_config.antenna.max_antenna_gain = 15; % LTE antenna, urban area (2000 MHz)
    % LTE_config.antenna.max_antenna_gain = 12; % LTE antenna, urban area (900 MHz)

    % Additional parameters needed when using ‘kathreinTSAntenna’
    if strcmp(LTE_config.antenna.antenna_gain_pattern, ‘kathreinTSAntenna’)
    % Default values used for each site
    LTE_config.site_altitude = 0; % Altiude of site [m]
    LTE_config.tx_height = 20; % Height of site [m]
    LTE_config.rx_height = 1.5; % Receiver height [m]
    LTE_config.antenna.mechanical_downtilt = 0; % [°]
    LTE_config.antenna.electrical_downtilt = 8; % [°]
    LTE_config.antenna.kathrein_antenna_folder = ‘./data_files/KATHREIN_antenna_files’;
    % Kathrein Antenna Type : Extensions possible
    LTE_config.antenna.antenna_type = ‘742212’;
    % LTE_config.antenna.antenna_type = ‘742215’;
    LTE_config.antenna.frequency = 2140;

    %% Scheduler options
    LTE_config.scheduler = ‘prop fair Sun’; % ’round robin’, ‘best cqi’, ‘max min’, ‘max TP’, ‘resource fair’, ‘proportional fair’ or ‘prop fair Sun’
    LTE_config.scheduler_params.fairness = 0.5; % fairness for the variable fairness scheduler
    % LTE_config.scheduler_params.alpha = 1; % Additional configuration parameters for the scheduler (defau
    % LTE_config.scheduler_params.beta = 1;
    LTE_config.power_allocation = ‘homogeneous;’; % ‘right now no power loading is implemented, so just leave it as ‘homogeneous’

    %% CQI mapper options
    LTE_config.CQI_mapper.CQI2SNR_method = 1; % 1 to use less conservative method to map from CQI back to SNR
    % uses the value in the middle of the SNR interval corresponding to a CQI instead of the lower boarder value
    % this value will just be used in connection with quantized CQI feedback

    %% Uplink channel options
    LTE_config.feedback_channel_delay = 3; % In TTIs
    LTE_config.unquantized_CQI_feedback = false;

    %% Where to save the results
    LTE_config.results_folder = ‘./results’;
    LTE_config.results_file = ‘auto’; % NOTE: ‘auto’ assigns a filename automatically

    %% Values that should not be changed
    LTE_config.antenna_azimuth_offsett = 60; % This controls the antenna layout that will be generated. 0 degrees generates hexagonal cells,
    % while 30 degrees hexagonal sectors.
    %% Walking model
    LTE_config.UE.walk = ‘SLvsLL’;

    Best regards.


    Dear Anne,

    We use the forum as basis of our communication in order to share experiences and knowledge with other users too.

    Regarding your simulation files, using the parameters you sent above, I get in the GUI plot 10 femtos generated per cell, as intended to be. The red diamond shape markers denote femto base stations. You can see the plot in the link with access password: femto.

    I suggest that you carefully check if you overwrite any of the parameters during simulation; after generating the network in LTE_sim_main.m file, put breakpoints and check for parameters of LTE_config class to see if parameter LTE_config.femtocells_config.femtos_per_cell = 10.

    Best regards,


    Hi Dr.Fjolla
    Thank you very much for your quick and accurate answer.
    Yes, I will certainly continue my project based on your forum.

    Regarding producing 10 femtocells in each macrocells(7 macrocells). I run and it works true, and GUI produce the image that you sent.
    But my main question is:
    In LTE_sim_main_launcher_demo_RRH.m in line 45(comment), it is said that: % Recommended 5m for 1 ring and 10m for two rings (unless you have lots of RAM).

    i wanna be sure according above comment and according that i set number of rings in my project to 1, setting LTE_config.map_resolution to 10, is it true?

    Best regards.


    Dear Anne,

    Great news!

    We recommend a map resolution of 10 meters/pixel in case of having a larger simulation area as it is the case with 2 rings of base stations, since the dimensions of pathloss map will increase ant that can consume a lot of RAM. However that depends on the actual machine you are running simulations. You won’t do a mistake by choosing between 5 and 10 meters/pixel. The smaller the map resolution, more accurate calculation of the large scale losses is, however that goes in the expense of RAM resources. It is a trade off that you decide how to cope with.

    Best regards,


    Hi Dr.Fjolla

    I fully understood your recent explanation.
    Your valuable answers and your team always help me.
    Thank you sincerely.

Viewing 9 posts - 1 through 9 (of 9 total)
  • The forum ‘Vienna LTE-A Downlink System Level Simulator’ is closed to new topics and replies.