Reply To: TWO CELL SIMULATION

#10542
BP
Participant

Sir
Moreover when i tried it with LDPC coding it again gave me some error.

Error using speye
Input arguments must be nonnegative integers less than MAXSIZE as defined by COMPUTER. Use HELP COMPUTER for
more details.

Error in Coding.ChannelCodingComponents.LDPCCoding.LDPCLift (line 172)
A = speye(Zi,Zi);

Error in Coding.ChannelCoding/update (line 298)
Coding.ChannelCodingComponents.LDPCCoding.LDPCLift(obj);

Error in Elements.Link/updateLink (line 156)
obj.NrInputBits = obj.ChannelCoder.update(nCodedBits);

Error in main (line 68)
Links{BS{iBS}.ID, iLink}.updateLink( simParams );

>> CODE
% 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]; % 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];

scStr.simulation.centerFrequency = 2.5e9;
scStr.simulation.channelEstimationMethod = ‘PilotAided’;
scStr.simulation.pilotPattern = ‘LTE Downlink’;
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,UE1,UE2,UE3’]; % 2 cells with one user each

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

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

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

%% Modulation Parameters
% waveform
scStr.modulation.waveform = { ‘UFMC’, … % waveform for each BS:
‘UFMC’ }; % ‘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]; % 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;
scStr.modulation.precodingMatrix{3} = 1;
% time and bandwidth setup
scStr.modulation.subcarrierSpacing = [15e3, 60e3]; % select a four times bigger subcarrier spacing in the second cell
scStr.modulation.numerOfSubcarriers = [208, 52]; % to have the same bandwidth, the total number of subcarriers must be one fourth on the second cell
scStr.modulation.nSymbolsTotal = [15, 60]; % to have the same frame duration, the total number of symbols must be four times higher in the second cell
scStr.modulation.nGuardSymbols = [1, 4]; % 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 = {‘LDPC’, ‘LDPC’};
scStr.coding.decoding = { ‘Min-Sum’,…
‘Min-Sum’};
scStr.coding.decodingIterations = [10, 10];

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

%% Channel Parameters
scStr.simulation.userVelocity = [30,40,50];
scStr.channel.dopplerModel = ‘Jakes’;
scStr.channel.nPaths = 50;
scStr.channel.powerDelayProfile = ‘ExtendedVehicularA’;

  • This reply was modified 2 years, 9 months ago by BP.