changes from zurich; my mac

This commit is contained in:
Silas
2025-02-20 05:38:09 +01:00
parent cf94b67828
commit cb4caf8778
15 changed files with 434 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
%%% Run parameters
% TX
M = 4;
fsym = 32e9;
apply_pulsef = 1;
fdac = 256e9;
fadc = 256e9;
random_key = 1;
precomp = 0;
db_precode = 0;
db_encode = 0;
rcalpha = 0.05;
kover = 16;
vbias_rel = 0.5;
u_pi = 2.9;
vbias = -vbias_rel*u_pi;
laser_wavelength = 1293;
laser_linewidth = 0;
tx_bw_nyquist = 0.8;
% 1) PRBS Generation
O = 18; %order of prbs
N = 2^(O-1); %length of prbs
rcalpha = 1;
Pform = Pulseformer("fsym",fsym,"fdac",fdac,"pulse","rrc","pulselength",1024,"alpha",rcalpha);
[Digi_sig,Symbols,Tx_bits] = PAMsource(...
"fsym",fsym,"M",M,"order",18,"useprbs",0,...
"fs_out",fdac,...
"applyclipping",0,"clipfactor",1.5,...
"applypulseform",apply_pulsef,"pulseformer",Pform,...
"randkey",random_key,...
"db_precode",db_precode,"db_encode",db_encode,...
"mrds_code",0,"mrds_blocklength",512).process();
Digi_sig.spectrum("displayname",'Signal after shaping','fignum',1);
% Digi_sig.move_it_spectrum("displayname",'Signal after shaping','fignum',2);
% Digi_sig = Digi_sig.resample("fs_out",fsym);
MF = Pulseformer("fsym",fsym,"fdac",fdac,"pulse","rrc","pulselength",1024,"alpha",rcalpha,"matched",0);
Digi_sig = MF.process(Digi_sig);
Digi_sig.spectrum("displayname",'Signal after shaping','fignum',1);

29
test/test_mapping_eth.m Normal file
View File

@@ -0,0 +1,29 @@
% Setup PRBS parameters
O = 12;
M = 2;
N = 2^(O-1); % Length of PRBS
randkey = 1; % Random key for random stream
[~, seed] = prbs(O, 1); % Initialize first seed of PRBS
bitpattern = [];
s = RandStream('twister', 'Seed', randkey);
for i = 1:log2(M)
bitpattern(:, i) = randi(s, [0 1], N, 1);
end
Tx_bits = Informationsignal(bitpattern);
Digi_Mod = PAMmapper(M, 0,"eth_style",1);
% Map bits to symbols
Symbols = Digi_Mod.map(Tx_bits);
% Demap symbols back to bits
Rx_bits = Digi_Mod.demap(Symbols);
[~, error_num, ber, ~] = calc_ber(Tx_bits.signal, Rx_bits.signal, ...
"skip_front", 0, "skip_end", 0, "returnErrorLocation", 1);
fprintf('BER VNLE: %.1E \n',ber);