From 638b62ee031c2cbba373a95ca8c0a61ee05ed18c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joseph=20Hopfm=C3=BCller?= Date: Wed, 11 Dec 2024 10:56:30 +0100 Subject: [PATCH] add training data, y-pol phase shifted by 90 deg, x/y different powers --- ...20241211-105524-128-16384-1-0-0-0-0-PAM4-0-0.ini | 3 +++ data/npys/ceb9676f372a236b2a6ec2a3c535947a.npy | 3 +++ src/single-core-data-gen/generate_signal.py | 13 +++++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 data/20241211-105524-128-16384-1-0-0-0-0-PAM4-0-0.ini create mode 100644 data/npys/ceb9676f372a236b2a6ec2a3c535947a.npy diff --git a/data/20241211-105524-128-16384-1-0-0-0-0-PAM4-0-0.ini b/data/20241211-105524-128-16384-1-0-0-0-0-PAM4-0-0.ini new file mode 100644 index 0000000..963cf19 --- /dev/null +++ b/data/20241211-105524-128-16384-1-0-0-0-0-PAM4-0-0.ini @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac7eb8830fa7bb91e18ae87ab7b55d463738dbfd1f5662957c06c69ac98a214f +size 599 diff --git a/data/npys/ceb9676f372a236b2a6ec2a3c535947a.npy b/data/npys/ceb9676f372a236b2a6ec2a3c535947a.npy new file mode 100644 index 0000000..5815d23 --- /dev/null +++ b/data/npys/ceb9676f372a236b2a6ec2a3c535947a.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43b78cdded1b5acd9d569920357d45c9433348a955b794524ee705845828825c +size 134217856 diff --git a/src/single-core-data-gen/generate_signal.py b/src/single-core-data-gen/generate_signal.py index c189db4..4dbd583 100644 --- a/src/single-core-data-gen/generate_signal.py +++ b/src/single-core-data-gen/generate_signal.py @@ -116,7 +116,7 @@ class pam_generator: raise ValueError(f"Unknown pulse shape: {self.pulse_shape}") # prepare symbols - symbols_x = symbols[0] / (self.mod_order or np.max(symbols[0])) + symbols_x = symbols[0] / (self.mod_order) diffs_x = np.diff(symbols_x, prepend=symbols_x[0]) digital_x = self.generate_digital_signal(diffs_x, max_jitter) digital_x = np.pad( @@ -127,7 +127,7 @@ class pam_generator: E_x = np.convolve(digital_x, wavelet) # convert to pam and set modulation depth (scale and move up such that 1 stays at 1) - E_x = np.cumsum(E_x) * self.modulation_depth + (1 - self.modulation_depth) + E_x = np.cumsum(E_x) * self.modulation_depth + 2*(1 - self.modulation_depth) # cut off the wavelet tails E_x = E_x[self.glova.sps // 2 + len(wavelet) // 2 - 1 : -len(wavelet) // 2] @@ -136,7 +136,7 @@ class pam_generator: E[0]["E"][0] = np.sqrt(np.multiply(np.square(E[0]["E"][0]), E_x)) if not self.single_channel: - symbols_y = symbols[1] / (self.mod_order or np.max(symbols[1])) + symbols_y = symbols[1] / (self.mod_order) diffs_y = np.diff(symbols_y, prepend=symbols_y[0]) digital_y = self.generate_digital_signal(diffs_y, max_jitter) digital_y = np.pad( @@ -224,17 +224,22 @@ def initialize_fiber_and_data(config, input_data_override=None): pulse_shape=config["signal"]["pulse_shape"], fwhm=config["signal"]["fwhm"], seed=config["signal"]["jitter_seed"], - single_channel=False + single_channel=False, + mod_order=config["signal"]["mod_order"], ) symbols_x = symbolsrc(pattern="random") symbols_y = symbolsrc(pattern="random") symbols_x[:3] = 0 symbols_y[:3] = 0 + # symbols_x += 1 + cw = laser() source_signal = modulator(E=cw, symbols=(symbols_x, symbols_y)) + + # source_signal[0]['E'][1] += source_signal[0]['E'][1][np.argmin(np.abs(source_signal[0]['E'][1]))] source_signal = py_edfa(E=source_signal)