Scattered stuff from Silas during Dissertation

This commit is contained in:
Silas Oettinghaus
2026-06-03 09:05:33 +02:00
parent a91da3b97c
commit 5c2e27687d
37 changed files with 1726 additions and 1338 deletions

View File

@@ -1,5 +1,5 @@
if 0
if 1
% A) RUN FULL LOOP
M_format = [2,4,6,8];
snr = 10:25;

View File

@@ -210,8 +210,8 @@ classdef ml_mlse_pam < handle
% ==============================================================
% ML-Based Branch Metric Estimation + Viterbi
% ==============================================================
debug = 1;
showPlots = 1;
% debug = 1;
% showPlots = 1;
nSymbols = ceil(N/obj.sps);

View File

@@ -35,7 +35,7 @@ for b = 1:numel(baudrates)
[Rx_sig_2sps_v1, Symbols_v1, Tx_bits_v1] = standard_link_model( ...
"M",M,"fsym",baudrate,"rop",rop,"laser_linewidth",1310, ...
"link_length_m",0,"random_key",1);
"link_length_km",0,"random_key",1);

View File

@@ -3,19 +3,24 @@ M = 4;
order = 18;
randkey = 1;
bitpattern = [];
s = RandStream('twister','Seed',randkey);
for i = 1:log2(M)
N = 2^(order-1); %length of prbs
bitpattern(:,i) = randi(s,[0 1], N, 1);
end
% bitpattern = [];
% s = RandStream('twister','Seed',randkey);
% for i = 1:log2(M)
% N = 2^(order-1); %length of prbs
% bitpattern(:,i) = randi(s,[0 1], N, 1);
% end
%
% if M == 6
% bitpattern = reshape(bitpattern',[],1);
% bitpattern = bitpattern(1:end-mod(length(bitpattern),5));
% end
%
% Bits = Informationsignal(bitpattern);
if M == 6
bitpattern = reshape(bitpattern',[],1);
bitpattern = bitpattern(1:end-mod(length(bitpattern),5));
end
Bits = Informationsignal(bitpattern);
Bits = Signalgenerator( ...
"form", signalform.prms, ...
"M", M, ...
"order", order).process();
Symbols = PAMmapper(M,0).map(Bits);
Symbols.fs = 200e9;
@@ -31,8 +36,7 @@ symbols_filt = Symbols.filter(h,1);
%% SHOW FIG 3 in Paper: "ML Base Pre-Eq"
SNR_dB = [20:1:25];
SNR_db = linspace(12,25,12);
SNR_dB = [15:2:25];
ber_ffe = zeros(size(SNR_dB));
ber_mlse_l5 = zeros(size(SNR_dB));
@@ -43,7 +47,7 @@ ber_ml_mlse_l4 = zeros(size(SNR_dB));
epochs_training = 100;
for i = 1:numel(SNR_dB)
parfor i = 1:numel(SNR_dB)
symbols_noi = symbols_filt;
symbols_noi.signal = awgn(symbols_filt.signal, SNR_dB(i), 'measured'); % AWGN with given SNR