Scattered stuff from Silas during Dissertation
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user