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,20 +1,8 @@
M = 6;
M = 4;
bitpattern = [];
s = RandStream('twister','Seed',1);
for i = 1:log2(M)
N = 2^(17-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);
bits = Signalgenerator("form", signalform.prms,"M", M,"order", 16).process();
symbols = PAMmapper(M,0).map(bits);
@@ -106,7 +94,7 @@ end
%% State Analysis
signal_to_analyze = symbols_tx_emu;
signal_to_analyze = symbols_db;
x = signal_to_analyze.signal(:);
levels = sort(unique(x)).'; % or provide known 1x6 level values

View File

@@ -1,5 +1,5 @@
for M = [2 4 8]
bits = Signalgenerator("form", signalform.prms,"M", M,"order", 16).process();
for M = [4]
bits = Signalgenerator("form", signalform.prms,"M", M,"order", 18).process();
mapper = PAMmapper(M,0);
symbols = mapper.map(bits);
@@ -8,6 +8,13 @@ for M = [2 4 8]
symbols_pre = db.precode(symbols);
symbols_db = db.encode(symbols_pre);
%%% TEST 1
symbols_db_ = awgn_channel(symbols_db,"snr_dB",15);
figure(1003042);
showLevelHistogram(symbols_db_,symbols_db,"ref_symbol_uncoded",symbols);
showLevelHistogram(symbols_db_,symbols_db);
symbols_rx = db.decode(symbols_db);
bits_rx = PAMmapper(M,0).demap(symbols_rx);
[~,~,ber,~] = calc_ber(bits.signal,bits_rx.signal,"skip_front",0,"skip_end",0,"returnErrorLocation",1);
@@ -15,6 +22,12 @@ for M = [2 4 8]
symbols_pre_pr = pr1.precode(symbols,"M",M);
symbols_db_pr = pr1.encode(symbols_pre_pr,"M",M);
%%% TEST 2
symbols_db_pr_ = awgn_channel(symbols_db_pr,"snr_dB",15);
figure(1003043);
% showLevelHistogram(symbols_db_pr_,symbols_db_pr,"ref_symbol_uncoded",symbols);
symbols_rx_pr = pr1.decode(symbols_db_pr,"M",M);
bits_rx_pr = mapper.demap(symbols_rx_pr);
[~,~,ber_pr,~] = calc_ber(bits.signal,bits_rx_pr.signal,"skip_front",0,"skip_end",0,"returnErrorLocation",1);
@@ -36,6 +49,8 @@ for M = [2 4 8]
' | max abs diff: ',sprintf('%.3g',dec_maxdiff)]);
disp('---');
f = figure("Name",sprintf("PAM-%d Partial-Response Histograms",M));
t = tiledlayout(f,1,4,"TileSpacing","compact","Padding","compact");
title(t,sprintf("PAM-%d Symbol Histograms",M));

View File

@@ -3,29 +3,10 @@ M = 4;
randkey = 2;
fsym = 112e9;
%%%%% PRBS Generation in correct shape for Modulation Format %%%%%%
O = 18; %order of prbs
N = 2^(O-1); %length of prbs
[~,seed] = prbs(O,1); %initialize first seed of prbs
bitpattern=[];
if useprbs
for i = 1:log2(M)
[bitpattern(:,i),seed] = prbs(O,N,seed);
end
else
s = RandStream('twister','Seed',randkey);
for i = 1:log2(M)
bitpattern(:,i) = randi(s,[0 1], N, 1);
end
end
if M == 6
bitpattern = reshape(bitpattern,[],1);
bitpattern = bitpattern(1:end-mod(length(bitpattern),5));
end
Tx_bits = Informationsignal(bitpattern);
Tx_bits = Signalgenerator( ...
"form", signalform.prms, ...
"M", M, ...
"order", 15).process();
Digi_Mod = PAMmapper(M,0);
Symbols_tx = Digi_Mod.map(Tx_bits);
@@ -52,7 +33,7 @@ else
Symbols.spectrum("fignum",129,"displayname",['coeff:',num2str(coeff)]);
Symbols = MLSE("DIR",coeff,"duobinary_output",0,"trellis_states",Digi_Mod.levels,"M",M).process(Symbols);
Symbols = MLSE("DIR",coeff,"duobinary_output",0,"trellis_states",Digi_Mod.levels,"M",M).process(Symbols,Symbols_tx);
Rx_bits = PAMmapper(M,0).demap(Symbols);