DB and 400G and minor changes

This commit is contained in:
Silas Oettinghaus
2024-10-07 08:22:28 +02:00
parent 179a7f9682
commit da3be973e2
20 changed files with 578 additions and 142 deletions

View File

@@ -184,12 +184,12 @@ classdef ChannelFreqResp < handle
% it could be helpful to clip at linear 1 (=to keep comp from attenuating the signal)
% iH(abs(iH)<1) = 1.*exp(1j*angle(iH(abs(iH)<1)));
if 0
figure(7);hold on;plot(fnew,20*log10(abs(iH)))
end
% iH(1) is DC ---> iH(end) is High Freq.
% iH(1) is DC ---> iH(end) is High Freq.
H_inv = [iH(1) iH fliplr(conj(iH)) conj(iH(1))];
H_inv = [iH(1) iH iH(end) fliplr(conj(iH)) conj(iH(1))];

View File

@@ -10,6 +10,7 @@ classdef PAMsource
randkey
db_precode
db_encode
mrds_code
mrds_blocklength
@@ -36,6 +37,7 @@ classdef PAMsource
options.randkey = 0;
options.db_precode = 0;
options.db_encode = 0;
options.mrds_code = 0;
options.mrds_blocklength = 512;
@@ -95,10 +97,16 @@ classdef PAMsource
symbols = PAMmapper(obj.M,0).map(bits);
symbols.fs = obj.fsym;
%%%%%% Duobinary %%%%%%%%%%%
if obj.db_precode
symbols = Duobinary().precode(symbols);
end
if obj.db_encode
symbols = Duobinary().encode(symbols);
end
% figure(12);hold on;histogram(symbols.signal,'Normalization','probability');
if obj.mrds_code
symbols = MRDS_coding("blocklength",obj.mrds_blocklength).encode(symbols);