Add PAMmapper bit mapping and Gray penalty visualization
This commit is contained in:
@@ -17,30 +17,42 @@ if 1
|
||||
|
||||
uloops = struct;
|
||||
uloops.precomp = [0];
|
||||
uloops.bitrate = [300].*1e9; %[300,330,360,390,420,450,480] [224,336,360,390,420,448] for MPI
|
||||
uloops.fsym = 180e9;
|
||||
% uloops.bitrate = 100e9;
|
||||
% uloops.laser_wavelength = [1293,1297.5,1302,1306.5,1310,1313.4,1318,1322.7,1327.4];
|
||||
uloops.laser_wavelength = [1293];
|
||||
uloops.M = [4];
|
||||
uloops.laser_wavelength = [1310];
|
||||
uloops.M = [6];
|
||||
uloops.link_length = 1;
|
||||
% uloops.link_length = [0:2:10]; % 1,2,3,5,6,8,10
|
||||
uloops.channel_alpha = [0.5];
|
||||
uloops.channel_alpha = [0.8];
|
||||
uloops.duob_mode = db_mode.no_db;
|
||||
uloops.decoding_mode = "memoryless";
|
||||
uloops.channel_mode = "awgn_alphad";
|
||||
uloops.channel_snr_dB = [20:-2:0];
|
||||
uloops.channel_mode = "awgn_alphad"; %awgn_alphad
|
||||
uloops.channel_snr_dB = [20];
|
||||
uloops.rop = -6;
|
||||
|
||||
wh = DataStorage(uloops);
|
||||
wh.addStorage("ber");
|
||||
|
||||
wh = submit_handle(@imdd_model,wh,"parallel",1);
|
||||
wh = submit_handle(@imdd_model,wh,"parallel",0);
|
||||
|
||||
end
|
||||
|
||||
%%
|
||||
figure
|
||||
hold on
|
||||
if isfield(uloops, 'fsym') && isfield(uloops, 'bitrate')
|
||||
error('Define only one of uloops.fsym or uloops.bitrate.');
|
||||
elseif isfield(uloops, 'fsym')
|
||||
rateLookup = uloops.fsym;
|
||||
elseif isfield(uloops, 'bitrate')
|
||||
rateLookup = uloops.bitrate;
|
||||
else
|
||||
error('Define either uloops.fsym or uloops.bitrate.');
|
||||
end
|
||||
|
||||
for alpha = uloops.channel_alpha
|
||||
a=wh.getStoValue('ber',0, [300].*1e9 , 1293, 4, uloops.link_length,alpha,uloops.duob_mode,uloops.decoding_mode,uloops.channel_mode,uloops.channel_snr_dB);
|
||||
a=wh.getStoValue('ber',0, rateLookup, uloops.laser_wavelength, uloops.M, uloops.link_length,alpha,uloops.duob_mode,uloops.decoding_mode,uloops.channel_mode,uloops.channel_snr_dB);
|
||||
gmi_ffe = cellfun(@(x) x.ffe_results.metrics.GMI, a);
|
||||
alpha_ffe = cellfun(@(x) x.ffe_results.metrics.Alpha, a);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user