ecoc measurements

This commit is contained in:
Silas Labor Zizou
2025-04-13 16:29:12 +02:00
parent 00f1c557c0
commit 0236103b13
19 changed files with 709 additions and 359 deletions

View File

@@ -11,6 +11,7 @@ classdef PAMsource
db_precode
db_encode
duobinary_mode
mrds_code
mrds_blocklength
@@ -38,6 +39,7 @@ classdef PAMsource
options.db_precode = 0;
options.db_encode = 0;
options.duobinary_mode = db_mode.no_db;
options.mrds_code = 0;
options.mrds_blocklength = 512;
@@ -102,8 +104,7 @@ classdef PAMsource
para.reset_prms = 0;
para.method = 1;
data_in = [];
global loop;
loop = 0;
@@ -134,43 +135,52 @@ classdef PAMsource
symbols.fs = obj.fsym;
%%%%%% Duobinary %%%%%%%%%%%
if obj.db_precode
symbols = Duobinary().precode(symbols);
switch obj.duobinary_mode
case db_mode.no_db
case db_mode.db_precoded
symbols = Duobinary().precode(symbols);
case db_mode.db_encoded
symbols = Duobinary().precode(symbols);
symbols = Duobinary().encode(symbols);
end
if obj.db_encode
symbols = Duobinary().encode(symbols);
end
% figure(12);hold on;histogram(symbols.signal,'Normalization','probability');
%%%%%% MRDS %%%%%%%%%%%
if obj.mrds_code
symbols = MRDS_coding("blocklength",obj.mrds_blocklength).encode(symbols);
end
%%%%%% SAVE MIN-MAX FOR CLIP %%%%%%%%%%%
if obj.applyclipping
sym_min = min(symbols.signal);
sym_max = max(symbols.signal);
end
%%%%% Pulse-forming %%%%%%
if obj.applypulseform
%%% MY CODE
digi_sig = obj.pulseformer.process(symbols);
if 0
digi_sig = obj.pulseformer.process(symbols);
%%% MOVEIT WRAPPER BETA
% symbols.spectrum("fignum",111,"displayname","1) RAW SIGNAL");
%
% pulsf = Moveit_wrapper('pulsef');
% pulsf.para.alpharacos = obj.pulseformer.alpha;
% pulsf.para.f_sym = obj.fsym;
% pulsf.para.fs = obj.fsym;
% pulsf.para.pulse = 2;
%
% digi_sig = pulsf.process(symbols);
else
%%% MOVEIT WRAPPER BETA
% symbols.spectrum("fignum",111,"displayname","1) RAW SIGNAL");
pulsf = Moveit_wrapper('pulsef');
pulsf.para.alpharacos = obj.pulseformer.alpha;
pulsf.para.f_sym = obj.pulseformer.fsym;
pulsf.para.fs = obj.pulseformer.fdac;
pulsf.para.pulse = 1;
digi_sig = pulsf.process(symbols);
digi_sig.fs = obj.pulseformer.fdac;
end
% Design raised cosine filter with given order in symbols
% digi_sig = symbols;
% sps = 4;