Working from home on zürich DSP.
This commit is contained in:
113
projects/Messung_Zürich/dsp_all_files.m
Normal file
113
projects/Messung_Zürich/dsp_all_files.m
Normal file
@@ -0,0 +1,113 @@
|
||||
|
||||
|
||||
|
||||
M = 8;
|
||||
if M == 4
|
||||
file_codes = {"20250221T032043",...
|
||||
"20250221T032312",...
|
||||
"20250221T032424",...
|
||||
"20250221T032529",...
|
||||
"20250221T032632",...
|
||||
"20250221T032800",...
|
||||
"20250221T032936",...
|
||||
"20250221T033035",...
|
||||
"20250221T033138",...
|
||||
"20250221T033138",...
|
||||
"20250221T033425",...
|
||||
"20250221T033527",...
|
||||
"20250221T033642",...
|
||||
"20250221T033743",...
|
||||
"20250221T033851",...
|
||||
"20250221T034314",...
|
||||
"20250221T034529",...
|
||||
"20250221T034647",...
|
||||
"20250221T034756",...
|
||||
"20250221T034915",...
|
||||
};
|
||||
baudrate = [96,120,128,136,144,152,160,168,172,176,180,184,188,192,196,200,204,212,220,224];
|
||||
pam4.result_vnle = result_vnle;
|
||||
pam4.result_db = result_db;
|
||||
elseif M ==8
|
||||
file_codes = {"20250221T004651",... %96
|
||||
"20250221T004926",...
|
||||
"20250221T005844",...
|
||||
"20250221T010032",...
|
||||
"20250221T010150",...
|
||||
"20250221T025505",...%144 ohne balun
|
||||
"20250221T024629",...%152 ohne balun
|
||||
"20250221T024315",...%160 ohne balun
|
||||
"20250221T023534",...%168 ohne balun
|
||||
"20250221T024929",...%172 ohne balun
|
||||
"20250221T025305",...%176 ohne balun
|
||||
};
|
||||
file_codes = {"20250221T004651"};
|
||||
baudrate = [96,112,120,128,136,144,152,160,168,172,176];
|
||||
end
|
||||
|
||||
if 1
|
||||
|
||||
uloops = struct;
|
||||
uloops.filecode = file_codes;
|
||||
uloops.tcorrect = [0];
|
||||
wh = DataStorage(uloops);
|
||||
wh.addStorage("ber");
|
||||
|
||||
wh = submit_handle(@dsp_ief_file,wh,"parallel",0);
|
||||
end
|
||||
|
||||
a = wh.getStoValue('ber',uloops.filecode, uloops.tcorrect);
|
||||
|
||||
% get best results per baudrate
|
||||
% ber_vnle_values = cellfun(@(a) cellfun(@(y) y.ber_vnle, a.vnle_package, 'UniformOutput', false), a, 'UniformOutput', false);
|
||||
% best_vnle = cellfun(@(x) min(cell2mat(x)), ber_vnle_values);
|
||||
|
||||
ber_vnle_values = cellfun(@(a) cellfun(@(y) y.ber_vnle, a.vnle_pf_package, 'UniformOutput', false), a, 'UniformOutput', false);
|
||||
best_vnle = cellfun(@(x) min(cell2mat(x)), ber_vnle_values);
|
||||
|
||||
ber_mlse_values = cellfun(@(a) cellfun(@(y) y.ber_mlse, a.vnle_pf_package, 'UniformOutput', false), a, 'UniformOutput', false);
|
||||
best_mlse = cellfun(@(x) min(cell2mat(x)), ber_mlse_values);
|
||||
|
||||
%%% PLOT PARAMETER OPTIMIZATION
|
||||
figure()
|
||||
cols = cbrewer2('Set1',6);
|
||||
hold on
|
||||
title(sprintf('%d km | %d nm | PAM %d',1,1313.5,M));
|
||||
xax = uloops.tcorrect;
|
||||
plot(xax,best_vnle,'DisplayName',sprintf('VNLE'),'Color',cols(1,:),'LineStyle','-','HandleVisibility','on');
|
||||
|
||||
plot(xax,best_mlse,'DisplayName',sprintf('VNLE + 1 tap post-filter + MLSE'),'Color',cols(2,:),'LineStyle','-','HandleVisibility','on');
|
||||
|
||||
% plot(xax,best_db,'DisplayName',sprintf('DB tgt. + MLSE'),'Color',cols(3,:),'LineStyle','-','HandleVisibility','on');
|
||||
|
||||
set(gca, 'YScale', 'log');
|
||||
ylim([5e-5 0.3]);
|
||||
xlim([min(xax), max(xax) ]);
|
||||
yline([3.8e-3, 2e-2],'HandleVisibility','off');
|
||||
legend
|
||||
beautifyBERplot()
|
||||
xlabel('Number 1st order taps');
|
||||
ylabel('BER');
|
||||
|
||||
|
||||
|
||||
|
||||
%%% PLOT COMPLETE BAUDRATE
|
||||
figure(20)
|
||||
cols = cbrewer2('Set1',6);
|
||||
hold on
|
||||
title(sprintf('%d km | %d nm | PAM %d',1,1313.5,M));
|
||||
|
||||
plot(baudrate,best_vnle,'DisplayName',sprintf('VNLE'),'Color',cols(1,:),'LineStyle','-','HandleVisibility','on');
|
||||
|
||||
plot(baudrate,best_mlse,'DisplayName',sprintf('VNLE + 1 tap post-filter + MLSE'),'Color',cols(2,:),'LineStyle','-','HandleVisibility','on');
|
||||
|
||||
plot(baudrate,best_db,'DisplayName',sprintf('DB tgt. + MLSE'),'Color',cols(3,:),'LineStyle','-','HandleVisibility','on');
|
||||
|
||||
set(gca, 'YScale', 'log');
|
||||
ylim([5e-5 0.3]);
|
||||
xlim([min(baudrate), max(baudrate) ]);
|
||||
yline([3.8e-3, 2e-2],'HandleVisibility','off');
|
||||
legend
|
||||
beautifyBERplot()
|
||||
xlabel('Bit Rate in Gbps');
|
||||
ylabel('BER');
|
||||
Reference in New Issue
Block a user