From 298969df143ccfb48a31396106e11692bbb17365 Mon Sep 17 00:00:00 2001 From: Marius Brehler Date: Thu, 4 Apr 2019 12:19:59 +0200 Subject: [PATCH 01/37] Fix path to Raman gain profile --- Helpers/widgets.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Helpers/widgets.py b/Helpers/widgets.py index 14a80c3..e2dfa19 100644 --- a/Helpers/widgets.py +++ b/Helpers/widgets.py @@ -16,6 +16,7 @@ # # Contributors: # Marius Brehler (TU Dortmund) 2018-2019 +# Marius Brehler 2019 import ipywidgets as widgets from ipywidgets import Layout @@ -157,7 +158,7 @@ def update_alpha(choosen_amplification,noise_widget,path_average_widget): path_average_widget.value = True elif choosen_amplification == "Raman": from scipy.io import loadmat - matfile = loadmat('../data/gainprofile_40steps.mat') + matfile = loadmat('../Data/gainprofile_40steps.mat') selected_alpha = matfile['gain'].flatten() noise_widget.disabled = True noise_widget.value = False @@ -281,4 +282,4 @@ def create_hbox_linkHeader(): hbox_linkH = widgets.HBox([table_header_5_widget]) - return hbox_linkH \ No newline at end of file + return hbox_linkH From 67841eaeea1ba9683ce598d8c03ab6e3cebcc325 Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Mon, 8 Apr 2019 14:24:58 +0200 Subject: [PATCH 02/37] Fixed: BaseExample.evaluate_results(...) was actually showing rx power instead of tx power --- Examples/BaseExample.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Examples/BaseExample.py b/Examples/BaseExample.py index b00e41b..beaa9fa 100644 --- a/Examples/BaseExample.py +++ b/Examples/BaseExample.py @@ -282,7 +282,7 @@ def evaluate_results(self, tx_data, rx_data): eff, br, bw_rx = modulation_efficiency.compute(rx_data["t"], rx_data["q"], rx_data["q"], nerr, nbits) _, _, bw_tx = modulation_efficiency.compute(tx_data["t"], tx_data["q"], tx_data["q"], 0, 1) - tx_power_level = np.mean(np.abs(rx_data["q"])**2) + tx_power_level = np.mean(np.abs(tx_data["q"])**2) tx_power_level_in_dBm = 10*np.log10(tx_power_level / 0.001) link_length = self.link.span_length * self.link.n_spans From 8395f0e4c9f10e8dd272cc08872b4ec8155ca6dc Mon Sep 17 00:00:00 2001 From: Marius Brehler Date: Wed, 5 Jun 2019 11:58:42 +0200 Subject: [PATCH 03/37] Fix attenuation --- Links/SMFSplitStep.py | 3 ++- Links/_ssprop.py | 7 ++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Links/SMFSplitStep.py b/Links/SMFSplitStep.py index 7b4dc4e..531bc76 100644 --- a/Links/SMFSplitStep.py +++ b/Links/SMFSplitStep.py @@ -17,6 +17,7 @@ # Contributors: # Sander Wahls (TU Delft) 2018-2019 # Marius Brehler (TU Dortmund) 2018-2019 +# Marius Brehler 2019 from Links import BaseLink from Links._ssprop import _ssprop @@ -78,7 +79,7 @@ def __init__(self, dt, dz, nz, self._dt = dt self._dz = dz self._nz = nz - self._alpha = alpha *np.log(10)*0.05 + self._alpha = alpha *np.log(10)*0.1 self._gain = self._dz * self._nz * alpha self._beta2 = beta2 self._gamma = gamma diff --git a/Links/_ssprop.py b/Links/_ssprop.py index 45314ed..b22af32 100644 --- a/Links/_ssprop.py +++ b/Links/_ssprop.py @@ -1,3 +1,4 @@ +# Copyright 2019, Marius Brehler # Copyright 2018, Sander Wahls (TU Delft) # Copyright 2018, Marius Brehler (TU Dortmund) # Copyright 2006, Thomas E. Murphy @@ -73,11 +74,7 @@ def _ssprop(u0,dt,dz,nz,alpha,betap,gamma,maxiter=4,tol=1e-5): w = 2*np.pi*np.hstack((np.arange(0, nt/2), np.arange(-nt/2, 0)))/(dt*nt) halfstep = 0 - if np.size(alpha) == 1: - halfstep = -alpha/2 - elif np.size(alpha) == nz: - haltstep = 0 - else: + if (np.size(alpha) != 1) & (np.size(alpha) != nz): raise Exception('alpha is neither constant nor is the vector of length nz') for ii in range(0, np.size(betap)): From 52f7df8b8caf656b0730027c9088c4179ee31131 Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Mon, 17 Jun 2019 12:05:53 +0200 Subject: [PATCH 04/37] added dummy file --- DUMMY FILE.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 DUMMY FILE.txt diff --git a/DUMMY FILE.txt b/DUMMY FILE.txt new file mode 100644 index 0000000..e69de29 From 096aea45a7f7258cef55cfc45d3b9665e28c73fa Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Mon, 17 Jun 2019 12:15:46 +0200 Subject: [PATCH 05/37] modified the DUMMY FILE to see how to update the files. --- DUMMY FILE.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/DUMMY FILE.txt b/DUMMY FILE.txt index e69de29..2155e5b 100644 --- a/DUMMY FILE.txt +++ b/DUMMY FILE.txt @@ -0,0 +1,14 @@ +doing some more changes. + +# cmd -> go to the path where you want to clone the repository +# use the following command for cloning0 +git clone address of repository + +git + + +git add # add the changed file for tracking in the git +git status # to check the status of the changes +git commit # commit the changes. +# add commit message. +git push origin DDF # push to remote repository \ No newline at end of file From fc294f0c4de277e7bc8f39dc0656dcbc7dd690f3 Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Mon, 17 Jun 2019 12:25:10 +0200 Subject: [PATCH 06/37] Removed the dummy file. --- DUMMY FILE.txt | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 DUMMY FILE.txt diff --git a/DUMMY FILE.txt b/DUMMY FILE.txt deleted file mode 100644 index 2155e5b..0000000 --- a/DUMMY FILE.txt +++ /dev/null @@ -1,14 +0,0 @@ -doing some more changes. - -# cmd -> go to the path where you want to clone the repository -# use the following command for cloning0 -git clone address of repository - -git - - -git add # add the changed file for tracking in the git -git status # to check the status of the changes -git commit # commit the changes. -# add commit message. -git push origin DDF # push to remote repository \ No newline at end of file From 1ddb1d92544cf2aadc0a7c86dd18369306f6fb69 Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Tue, 18 Jun 2019 19:37:36 +0200 Subject: [PATCH 07/37] Added MPSK modulation feature to GuiEtAl2018 ( b-Modulation code) example. Added reshapePSKConstellation file. --- Constellations/__init__.py | 1 + Examples/GuiEtAl2018.py | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Constellations/__init__.py b/Constellations/__init__.py index 5cbf713..dd6975a 100644 --- a/Constellations/__init__.py +++ b/Constellations/__init__.py @@ -21,3 +21,4 @@ from Constellations.QAMConstellation import QAMConstellation from Constellations.MPSKConstellation import MPSKConstellation from Constellations.ReshapedQAMConstellation import ReshapedQAMConstellation +from Constellations.ReshapedPSKConstellation import ReshapedPSKConstellation diff --git a/Examples/GuiEtAl2018.py b/Examples/GuiEtAl2018.py index f99cb6f..e25b2b2 100644 --- a/Examples/GuiEtAl2018.py +++ b/Examples/GuiEtAl2018.py @@ -71,6 +71,8 @@ def __init__(self): the fiber transmission.""" # Modulator parameters + self.constellation_type = 'QAM' + """We support 'QAM' and 'PSK'.""" self.constellation_level = 16 """Level of the QAM constellation used as input for the reshaping @@ -115,14 +117,18 @@ def reconfigure(self): self._normalization = Lossless(self.beta2, self.gamma, self.Tscale) # Constellation - - from Constellations import ReshapedQAMConstellation - m = int(math.sqrt(self.constellation_level)) - assert self.constellation_level == m*m - bnds = np.array([0, 4/np.abs(carrier_waveform(0.0))]) - self._constellation = ReshapedQAMConstellation(m, m, - carrier_waveform, - self.Ed, bnds) + if self.constellation_type == 'QAM': + from Constellations import ReshapedQAMConstellation + m = int(math.sqrt(self.constellation_level)) + assert self.constellation_level == m*m + bnds = np.array([0, 4/np.abs(carrier_waveform(0.0))]) + self._constellation = ReshapedQAMConstellation(m, m,carrier_waveform,self.Ed, bnds) + elif self.constellation_type == 'PSK': + from Constellations import ReshapedPSKConstellation + bnds = np.array([0,4/np.abs(carrier_waveform(0.0))]) + self._constellation = ReshapedPSKConstellation(self.constellation_level,carrier_waveform,self.Ed,bnds) + else: + raise Exception('Constellation not supported') # Modulator From b403996d93fbb17e6a9d9136415067e42d5fc99b Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Tue, 18 Jun 2019 20:16:05 +0200 Subject: [PATCH 08/37] Added matched filtering functionality for the symbol detection in continuous spectrum modulation. This improves the EVM at receiver in presence of noise. The filtering range is specified in terms of percentage of carrier spacing. --- Modulators/ContSpecModulator.py | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/Modulators/ContSpecModulator.py b/Modulators/ContSpecModulator.py index 5881076..a466c9b 100644 --- a/Modulators/ContSpecModulator.py +++ b/Modulators/ContSpecModulator.py @@ -271,10 +271,27 @@ def demodulate(self, q): symbols = np.zeros(self.n_symbols_per_block, dtype=complex) scl = np.abs(self._carrier_waveform_fun(0.0)) * self._power_control_factor - for n in range(0, self.n_symbols_per_block): - symbols[n] = nfspec.cont[self._carrier_center_idx[n]] - if self._use_power_normalization_map: - symbols[n] = np.sqrt(np.log(np.abs(symbols[n])**2 + 1.0)) * np.exp(1j*np.angle(symbols[n])) - symbols[n] /= scl + matched_fiter = True + if matched_fiter: + percentage_averaging = 70 # % of carrier spacing. It specifies range of 'xi' to average for symbol detection + xi_avg_range = 0.5*self._carrier_spacing*percentage_averaging/100 # xi range for averaging + idx_diff = int(xi_avg_range/self._dxi) # get the index difference + carrier_shape_filter = self._carrier_waveform_fun(self._xi[int(self._M/2)-idx_diff:int(self._M/2)+idx_diff])# get carrier shape for the filter + for n in range(0, self.n_symbols_per_block): + idx_l = self._carrier_center_idx[n] - idx_diff # lower index of the xi average range; + idx_u = self._carrier_center_idx[n] + idx_diff # upper index of the xi average range; + matched_filtered_data = np.multiply(nfspec.cont[idx_l:idx_u],carrier_shape_filter) + symbols[n] = np.mean(matched_filtered_data)/np.mean(carrier_shape_filter) + if self._use_power_normalization_map: + symbols[n] = np.sqrt(np.log(np.abs(symbols[n])**2 + 1.0)) * np.exp(1j*np.angle(symbols[n])) + symbols[n] /= scl + + else: + for n in range(0, self.n_symbols_per_block): + symbols[n] = nfspec.cont[self._carrier_center_idx[n]] + print('carrier centers',self._carrier_center_idx[n]) + if self._use_power_normalization_map: + symbols[n] = np.sqrt(np.log(np.abs(symbols[n])**2 + 1.0)) * np.exp(1j*np.angle(symbols[n])) + symbols[n] /= scl return symbols, nfspec From 4d402828b7e49d858001bcc6a17930c053bb9c56 Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Tue, 18 Jun 2019 20:57:03 +0200 Subject: [PATCH 09/37] Added dispersion decreasing fiber function. --- Links/DDFSplitStep.py | 207 ++++++++++++++++++++++++++++++++++++++++++ Links/_DDFssprop.py | 94 +++++++++++++++++++ Links/__init__.py | 3 +- 3 files changed, 303 insertions(+), 1 deletion(-) create mode 100644 Links/DDFSplitStep.py create mode 100644 Links/_DDFssprop.py diff --git a/Links/DDFSplitStep.py b/Links/DDFSplitStep.py new file mode 100644 index 0000000..ee804f4 --- /dev/null +++ b/Links/DDFSplitStep.py @@ -0,0 +1,207 @@ +# This file is part of NFDMLab. +# +# NFDMLab is free software; you can redistribute it and/or +# modify it under the terms of the version 2 of the GNU General +# Public License as published by the Free Software Foundation. +# +# NFDMLab is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with NFDMLab; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA +# +# Contributors: +# Sander Wahls (TU Delft) 2018-2019 +# Marius Brehler (TU Dortmund) 2018-2019 + +from Links import BaseLink +from Links._DDFssprop import _DDFssprop +from Links._ssprop import _ssprop +import matplotlib.pyplot as plt +import numpy as np +from scipy.constants import Planck + +class DDFSplitStep(BaseLink): + """Simulates a link with one or several single mode dispersion decreasing fiber spans connected by + EDF amplifiers using a split step method based on SSPROP.""" + + def __init__(self, dt, dz, nz, + alpha=0.0, beta2=1.0, gamma=-1.0, + verbose=False, n_spans=1, + post_boost=False, noise=False, noise_figure=3, + center_frequency = 193.1e12): + """Constructor. + + Parameters + ---------- + + dt : float + Time step in s. + dz : float + Spatial step in m. + nz : int + Number of spatial steps for one fiber span. + alpha : float or numpy.array(float) + Fiber loss coefficient in 1/m. It is possible to pass a vector of + length nz in order to specify an individual loss coefficient for + each of the segments of a span. Noise-free Raman amplification can + be implemented using this feature. + beta2 : float + Fiber dispersion coefficient in s**2/m. + gamma : float + Fiber nonlinearity coefficient in (W m)**(-1). + verbose : bool + Set to True for diagnostic ouputs. + n_spans : int + Number of fiber spans in the link. + post_boost : bool + Accumulated fiber loss is compensated with a gain at the end of each + fiber span if True. Requires alpha to be a scalar. EDFA + amplification can be implemented using this feature. + noise : bool + Add amplified spontaneous emission (ASE) noise at the end of each + fiber span. EDFA amplification can be implemented using this + feature. + noise_figure : float + Noise figure in dB for determining the ASE noise if noise==True. + center_frequency : float + Center frequency in Hz for determining the ASE noise if noise==True. + """ + BaseLink.__init__(self) + self._dt = dt + self._dz = dz + self._nz = nz + self._alpha = alpha *np.log(10)*0.05 + self._gain = self._dz * self._nz * alpha + self._beta2 = beta2 + self._gamma = gamma + self._verbose = verbose + self._n_spans = n_spans + self._post_boost = post_boost + self._noise = noise + self._noise_figure = noise_figure + self._center_frequency = center_frequency + self._span_length = nz*dz + self._n_spans = n_spans + self._BETA2 = None + self._GAMMA = None + self._D_z = None + def _Get_Beta_Gamma_Profile(self): + ''' Returns the Beta2 and Gamma profile (vector) ie z dependent values + The function reuqires attenuation parameter and intial value of Beta2(0) and GAMMA(0) + and span length as input.''' + c = 3e8 # light speed m/s + lambda0 = 1.55e-6 # center wavelength + kappa = lambda0**2*1e-6/(2*np.pi*c) + BETA20 = abs(self._beta2) + GAMMA0 = abs(self._gamma) + R0 = (BETA20/kappa + 20)/8 # core radius in micro meter + n2 = GAMMA0*(lambda0*np.pi*(R0*1e-6)**2)/(2*np.pi) + #dz = self._dz + #z = np.arange(0,self.n_steps_per_span)*dz + a = BETA20*R0**2 + Rad_z = np.zeros(self._nz) + for i in range(0,self._nz): + p = [8*kappa,-20*kappa,0,-a*np.exp(-2*self._alpha*self._dz*i)] + Rad_roots = np.roots(p) + ### select the one with lowest imaginary part , then use it's real part + #Rad_img = abs(Rad_roots.imag) + #j = 0 + #if Rad_imag[j]>=Rad_imag[j+1]: + # j = j+1 + #if Rad_imag[j]>=Rad_imag[j+2]: + # j = j+2 + Rad_z[i] = Rad_roots[0].real + self._BETA2 = -kappa*(8*np.array(Rad_z)-20) + self._GAMMA = np.divide((2*np.pi*n2),(lambda0*np.pi*(Rad_z*1e-6)**2)) + self._D_z = np.divide(self._BETA2,self._BETA2[0]) + + def _ASE_noise_power(self): + '''Returns the amplified spontaneous emission (ASE) power using the + equations 7.2.11 and 7.2.15 in the 4th edition of "Fiber-Optic + Communication Systems" by G. P. Agrawal (Wiley 2010).''' + + if self._noise == False: + return 0.0 + G = 10**(self._gain/10.0) + Fn = 10**(self._noise_figure/10.0) + n_sp = (G*Fn - 1.0)/2.0/(G - 1.0) + return np.max([0, n_sp * Planck * self._center_frequency * (G - 1)]) + + def _ASE_noise(self, n_samples): + '''Generates a vector of white Gaussian noise whose variance is the ASE + noise power times the simulation bandwidth.''' + + wgn = np.sqrt(0.5)*(np.random.randn(n_samples) + 1j*np.random.randn(n_samples)) + + # The expected power of c*wgn, where c>0 is t.b.d., is + # + # P1 = E[|c*wgn[0]|**2+...+|c*wgn[n_samples-1]|^2]/n_samples = c^2 + # + # We want this to be equal to the integral of S_ASE(f) = ASE_noise_power + # over the simulation bandwidth 1/dt, i.e., + + P2 = self._ASE_noise_power() / self._dt + # Solving P1=c^2=P2 for c leads to + + c = np.sqrt(P2) + return c*wgn + + def _ASE_noise_sanity_check(self): + '''Plots an averaged periodogram of the ASE noise.''' + import matplotlib.pyplot as plt + fig = plt.figure() + N = 2**18 + K = 100 + X2 = np.zeros(N) + for k in range(0, K): + X2 += np.abs(np.fft.fft(self._ASE_noise(N)))**2 * self._dt / N + X2 /= (K - 1) + f = np.fft.fftfreq(N, 1/self._dt) + plt.semilogy(f, X2) + plt.title("The PSD should be flat at {}".format(self._ASE_noise_power())) + fig.show() + + def transmit(self, input): + # Docstring is inherited from base class. + self._Get_Beta_Gamma_Profile() + if self._n_spans == 1: + uu = _DDFssprop(input, + self._dt, + self._dz, + self._nz, + self._alpha, + self._BETA2, + self._GAMMA) + + if self._post_boost == True: + if self._alpha.size != 1: + raise Exception('alpha array not supported together with boost') + + uu *= np.exp(self._gain*np.log(10)*0.05) + uu += self._ASE_noise(np.size(uu)) + + else: + uu = input + for span_i in range(0,self._n_spans): + uu = _DDFssprop(uu, + self._dt, + self._dz, + self._nz, + self._alpha, + self._BETA2, + self._GAMMA) + if self._verbose: + print("Finished span",span_i+1) + + if self._post_boost == True: + if self._alpha.size != 1: + raise Exception('alpha array not supported together with boost') + uu *= np.exp(self._gain*np.log(10)*0.05) + uu += self._ASE_noise(np.size(uu)) + + return uu diff --git a/Links/_DDFssprop.py b/Links/_DDFssprop.py new file mode 100644 index 0000000..4f49b0f --- /dev/null +++ b/Links/_DDFssprop.py @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- +""" +Created on Thu Mar 28 18:29:07 2019 + +@author: vinodbajaj +""" + +# Copyright 2018, Sander Wahls (TU Delft) +# Copyright 2018, Marius Brehler (TU Dortmund) +# Copyright 2006, Thomas E. Murphy +# +# This file is part of NFDMLab. +# +# NFDMLab is free software; you can redistribute it and/or +# modify it under the terms of the version 2 of the GNU General +# Public License as published by the Free Software Foundation. +# +# NFDMLab is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with NFDMLab; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA + +import numpy as np +from warnings import warn +import matplotlib.pyplot as plt + +def _DDFssprop(u0,dt,dz,nz,alpha,D,R): + """This function solves the nonlinear Schrodinger equation for + pulse propagation in an optical fiber using the split-step + Fourier method. + It has feature to include length dependent variation in the + dispersion and nonlinear parameter varies over length. + + + The following effects are included in the model: group velocity + dispersion (GVD), loss, and self-phase + modulation (gamma). + + USAGE + + u1 = ssprop(u0,dt,dz,nz,alpha,D,R) + + + INPUT + + u0 - starting field amplitude (vector) + dt - time step + dz - propagation stepsize + nz - number of steps to take, ie, ztotal = dz*nz + alpha - power loss coefficient, ie, P=P0*exp(-alpha*z) + D - dispersion parameter over length of span (vector : size 1 X Nsteps ) + R - nonlinear parameter over length of span (vector : size 1 X Nsteps ) + + + OUTPUT + + u1 - field at the output + + NOTES The dimensions of the input and output quantities can + be anything, as long as they are self consistent. E.g., if + |u|^2 has dimensions of Watts and dz has dimensions of + meters, then gamma should be specified in W^-1*m^-1. + Similarly, if dt is given in picoseconds, and dz is given in + meters, then beta(n) should have dimensions of ps^(n-1)/m. + + AUTHORS + + This function is a Python port of the script ssprop.m by + Thomas E. Murphy (tem@umd.edu), which comes with the SSPROP + package (https://www.photonics.umd.edu/software/ssprop/). + The port has been written by Sander Wahls and has been + modified by Marius Brehler. + """ + + nt = np.size(u0) + assert nt%2 == 0 + w = 2*np.pi*np.hstack((np.arange(0, nt/2), np.arange(-nt/2, 0)))/(dt*nt) + + u1 = u0 + for iz in range(0, nz): + beta = D[iz] # get beta_2 value at that location + gamma = R[iz] # get gamma value at that location + halfstep = np.exp(1j*beta*w**2/2*dz/2) + + uhalf = np.fft.ifft(halfstep*np.fft.fft(u1)) + uv = uhalf*np.exp(1j*gamma*(np.abs(u1)**2*dz)) + uv = np.fft.ifft(halfstep*np.fft.fft(uv)) + u1 = uv*np.exp(-alpha*dz) + return u1 diff --git a/Links/__init__.py b/Links/__init__.py index 8dd1698..43b7133 100644 --- a/Links/__init__.py +++ b/Links/__init__.py @@ -18,4 +18,5 @@ # Sander Wahls (TU Delft) 2019 from Links.BaseLink import BaseLink -from Links.SMFSplitStep import SMFSplitStep \ No newline at end of file +from Links.SMFSplitStep import SMFSplitStep +from Links.DDFSplitStep import DDFSplitStep \ No newline at end of file From 6c30ee3216f72e7a9fcec76f5eca5abdc046a9df Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Tue, 18 Jun 2019 21:49:16 +0200 Subject: [PATCH 10/37] Added modified version BuelowArefIdler2016 example, which simulate propagation over Dispersion Decreasing Fiber. It will need modified compensation at the receiver, which is added in the DDFDiscSpecModulator file. --- Examples/BuelowArefIdler2016_DDF.py | 151 +++++++++++++++++++++++++ Examples/__init__.py | 1 + Modulators/DDFDiscSpecModulator.py | 167 ++++++++++++++++++++++++++++ Modulators/__init__.py | 3 +- 4 files changed, 321 insertions(+), 1 deletion(-) create mode 100644 Examples/BuelowArefIdler2016_DDF.py create mode 100644 Modulators/DDFDiscSpecModulator.py diff --git a/Examples/BuelowArefIdler2016_DDF.py b/Examples/BuelowArefIdler2016_DDF.py new file mode 100644 index 0000000..b75fb71 --- /dev/null +++ b/Examples/BuelowArefIdler2016_DDF.py @@ -0,0 +1,151 @@ + + +# This file is part of NFDMLab. +# +# NFDMLab is free software; you can redistribute it and/or +# modify it under the terms of the version 2 of the GNU General +# Public License as published by the Free Software Foundation. +# +# NFDMLab is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with NFDMLab; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA +# +# Contributors: +# Sander Wahls (TU Delft) 2018-2019 +# Shrinivas Chimmalgi (TU Delft) 2018 +import numpy as np +import math + +from Examples import BaseExample + +class BuelowArefIdler2016_DDF(BaseExample): + '''This example loosely recreates the experiment presented in the paper + + "Transmission of Waveforms Determined by 7 Eigenvalues with PSK-Modulated + Spectral Amplitudes" by H. Buelow, V. Aref and W. Idler + + presented at the 42nd European Conference on Optical Communication + (ECOC 2016). + The transmission fiber is a dispersion decreasing fiber.''' + + def __init__(self): + # Fiber parameters + + self.beta2 =-25.491e-27 + """Dispersion coefficient in s**2/m.""" + + self.gamma = 1.36e-3 + """Nonlinearity coefficient in (W m)**(-1).""" + + self.Tscale = 4.1022e-11 + + """Time scale used during normalization in s.""" + + self.alpha = np.array([0.2e-3]) + """Loss coefficient in 1/m.""" + + self.n_spans = 8 + """Number of fiber spans.""" + + self.n_steps_per_span = 500 + """Number of spatial steps per fiber span during simulations.""" + + self.fiber_span_length = 80e3 #If you change it, then change the average dispersion in the demodulator + """Length of a fiber span in m.""" + + self.post_boost = True + """Boost at end of each span (lumped amplification). True or False.""" + + self.path_average = False + """Use path-average fiber parameters during normalization. True or + False.""" + + self.noise = False + """Add ASE noise (lumped amplification only). True or False.""" + + self.noise_figure = 6 + """Noise figure in dB.""" + + # Receiver bandwidth + + self.tx_bandwidth = 33*1e9 + """Bandwidth of the ideal low-pass at the transmitter in Hz.""" + + self.rx_bandwidth = 33*1e9 # Hz + """Bandwidth of the ideal low-pass at the receiver in Hz.""" + + # Modulator parameters + + self.constellation_level = 4 + """Level of the QAM constellation (4, 16, 256, ...).""" + + self.eigenvalues = np.array([0.45j-0.6, 0.3j-0.4, 0.45j-0.2, 0.3j, 0.45j+0.2, 0.3j+0.4, 0.45j+0.6]) + """Eigenvalue pattern.""" + + self.residues_amplitude = np.exp(np.array([11.85, 7.06, 7.69, 3.81, 1.93, -0.62, -5.43])) + """Spectral amplitudes for each of the eigenvalues. These values get + multiplied with symbols drawn from the constellation before pulse + generation). """ + + + self.reconfigure() + + def reconfigure(self): + distance = self.n_spans*self.fiber_span_length #m + assert(np.size(self.eigenvalues) == np.size(self.residues_amplitude)) + T = np.array([-9*np.pi, 9*np.pi]) + + + # Normalization + + if self.path_average == True: + from Normalization import Lumped + self._normalization = Lumped(self.beta2, self.gamma, + self.Tscale, + alpha=np.mean(self.alpha)*np.log(10)*0.1, + zamp=self.fiber_span_length) + else: + from Normalization import Lossless + self._normalization = Lossless(self.beta2, self.gamma, self.Tscale) + + + # Constellation + + from Constellations import QAMConstellation + m = int(math.sqrt(self.constellation_level)) + assert self.constellation_level == m*m + self._constellation = QAMConstellation(m, m) + + # Modulator + + from Modulators import DDFDiscSpecModulator + normalized_distance = self.normalization.norm_dist(distance) + required_normalized_dt = (T[1] - T[0])/512 + self._modulator = DDFDiscSpecModulator(self.eigenvalues, + self.residues_amplitude, + normalized_distance, + T, required_normalized_dt) + + # Link + + from Links import DDFSplitStep # Propagation in Dispersion Decreasing Fiber + dt = self.normalization.denorm_time(self.modulator.normalized_dt) + dz = self.fiber_span_length/self.n_steps_per_span + nz = self.n_spans*self.n_steps_per_span + self._link = DDFSplitStep(dt, dz, self.n_steps_per_span, + self.alpha, self.beta2, self.gamma, + False, self.n_spans, self.post_boost, + self.noise, self.noise_figure) + + # Filters + + from Filters import PassThrough + from Filters import FFTLowPass + self._tx_filter = PassThrough() + self._rx_filter = FFTLowPass(self.rx_bandwidth/2, dt) diff --git a/Examples/__init__.py b/Examples/__init__.py index 2f8ec2a..bcb7d44 100644 --- a/Examples/__init__.py +++ b/Examples/__init__.py @@ -21,3 +21,4 @@ from Examples.BuelowArefIdler2016 import BuelowArefIdler2016 from Examples.LeArefBuelow2017 import LeArefBuelow2017 from Examples.GuiEtAl2018 import GuiEtAl2018 +from Examples.BuelowArefIdler2016_DDF import BuelowArefIdler2016_DDF diff --git a/Modulators/DDFDiscSpecModulator.py b/Modulators/DDFDiscSpecModulator.py new file mode 100644 index 0000000..8bd00d4 --- /dev/null +++ b/Modulators/DDFDiscSpecModulator.py @@ -0,0 +1,167 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Mar 29 20:30:13 2019 + +@author: vinodbajaj +""" + +# This file is part of NFDMLab. +# +# NFDMLab is free software; you can redistribute it and/or +# modify it under the terms of the version 2 of the GNU General +# Public License as published by the Free Software Foundation. +# +# NFDMLab is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with NFDMLab; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA +# +# Contributors: +# Sander Wahls (TU Delft) 2018 +# Shrinivas Chimmalgi (TU Delft) 2018 + +import numpy as np +import matplotlib.pyplot as plt +from FNFTpy.fnft_nsev_inverse_wrapper import nsev_inverse_wrapper, nsev_inverse_xi_wrapper +from FNFTpy.options_handling import fnft_nsev_inverse_default_options_wrapper +from FNFTpy.fnft_nsev_wrapper import nsev_wrapper +from FNFTpy.options_handling import fnft_nsev_default_options_wrapper +from Modulators import BaseModulator +from Helpers import NFSpectrum +from Helpers import next_pow2 + +class DDFDiscSpecModulator(BaseModulator): + """This modulator embeds symbols in residues of a multi-soliton with fixed + eigenvalue pattern.""" + + def __init__(self, eigenvalues, residues_amplitude, normalized_distance, + T, required_normalized_dt): + """Constructor. + + Parameters + ---------- + eigenvalues : numpy.array(complex) + Vector of eigenvalues used to generate fiber inputs. + residues_amplitude : numpy.array(complex) + Vector of scaling factors. The final residues for the eigenvalue is + obtained by multiplying these factors with the symbols. + normalized_distance : float + Fiber length in normalized units. + T : numpy.array(float) + Vector of length two with T[0]0: + for i in range(0, self.n_symbols_per_block): + dists = np.abs(self._eigenvalues[i] - nfspec.bound_states) + idx = np.argmin(dists) + symbols[i] = phase_shifts[idx]*nfspec.normconsts[idx]/self._residues_amplitude[i] + return symbols, nfspec diff --git a/Modulators/__init__.py b/Modulators/__init__.py index 7f74035..f698c88 100644 --- a/Modulators/__init__.py +++ b/Modulators/__init__.py @@ -19,4 +19,5 @@ from Modulators.BaseModulator import BaseModulator from Modulators.ContSpecModulator import ContSpecModulator -from Modulators.DiscSpecModulator import DiscSpecModulator \ No newline at end of file +from Modulators.DiscSpecModulator import DiscSpecModulator +from Modulators.DDFDiscSpecModulator import DDFDiscSpecModulator \ No newline at end of file From d7cef2fde1cc86aa77687b3bc184d8a97436a00d Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Tue, 18 Jun 2019 21:52:29 +0200 Subject: [PATCH 11/37] Added PSK modulation reshaping file, which was left behind in previous commit where MPSK modulation was added in b-modulation example. --- Constellations/ReshapedPSKConstellation.py | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 Constellations/ReshapedPSKConstellation.py diff --git a/Constellations/ReshapedPSKConstellation.py b/Constellations/ReshapedPSKConstellation.py new file mode 100644 index 0000000..12cf566 --- /dev/null +++ b/Constellations/ReshapedPSKConstellation.py @@ -0,0 +1,81 @@ +# This file is part of NFDMLab. +# +# NFDMLab is free software; you can redistribute it and/or +# modify it under the terms of the version 2 of the GNU General +# Public License as published by the Free Software Foundation. +# +# NFDMLab is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with NFDMLab; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA +# +# Contributors: +# Sander Wahls (TU Delft) 2018 +# Shrinivas Chimmalgi (TU Delft) 2018 + +import numpy as np +import scipy.integrate as integrate +import warnings + +from Constellations import MPSKConstellation + +class ReshapedPSKConstellation(MPSKConstellation): + """Reshaped phase shift keying (PSK) constellation (implements + BaseConstellation). + + The goal of the reshaping procedure is to fit the average (normalized) + energy of the generated pulses to a desired value Ed. For details, see + Gui et al., Opt. Express 26(21), 2018. + """ + + def __init__(self, m, b0_fun, Ed, bnds): + """Constructor for a reshaped m x n PSK constellation. + + Parameters + ---------- + m : int + + b0_fun : function + Carrier waveform. The function should maps any input vector of the + type numpy.array(float), which represents a vector of nonlinear + frequencies xi, to a output vector of the type numpy.array(complex), + which represents the values of the carrier waveform at these xi. + Ed : float + Desired average energy of the generated pulses (with respect to + normalized units). Should be positive. + bnds : numpy.array(float) + Vector with two entries [a,b], which are used as initial bounds in + the bisection produdure based on which the constellation is + reshaped. It should be 0 Date: Wed, 19 Jun 2019 14:03:09 +0200 Subject: [PATCH 12/37] Added b Modulation example for propagation in Dispersion Decreasing Fiber. Added DDFContSpecModulator in which the compensation at the receiver is modified considering propagation in DDF. --- Example_b_Modulation_SMF_DDF.py | 58 +++++ Examples/GuiEtAl2018_DDF.py | 170 ++++++++++++++ Examples/__init__.py | 1 + Modulators/DDFContSpecModulator.py | 346 +++++++++++++++++++++++++++++ Modulators/__init__.py | 3 +- 5 files changed, 577 insertions(+), 1 deletion(-) create mode 100644 Example_b_Modulation_SMF_DDF.py create mode 100644 Examples/GuiEtAl2018_DDF.py create mode 100644 Modulators/DDFContSpecModulator.py diff --git a/Example_b_Modulation_SMF_DDF.py b/Example_b_Modulation_SMF_DDF.py new file mode 100644 index 0000000..abe9142 --- /dev/null +++ b/Example_b_Modulation_SMF_DDF.py @@ -0,0 +1,58 @@ +import Examples +import sys +import numpy as np +import scipy.io as scio + +Fiber_type = 'DDF' # 'DDF' or 'CDF' + +if Fiber_type == 'DDF': + example = Examples.GuiEtAl2018_DDF() + example.n_steps_per_span = 500 + example.path_average = False + example.beta2 = -25.491e-27 + example.gamma = 1.3e-3 +elif Fiber_type == 'CDF': + example = Examples.GuiEtAl2018() + example.n_steps_per_span = 200 + Factor_gamma_eff_80km = 0.2646 + example.beta2 = -25.49e-27*Factor_gamma_eff_80km #-8.414e-27 + example.gamma = 1.3e-3 + example.path_average = True +else: + raise Exception('Specify the correct fiber type') +example.n_spans = 1 +#example.gamma = 1.3e-3 #2.2e-3 +#example.alpha = 0 +example.constellation_type = 'PSK' +example.constellation_level = 8 +example.n_symbols_per_block = 9 +example.fiber_span_length = 80e3 +example.noise = True +example.noise_figure = 6 +example.tx_bandwidth = 40e9 +example.rx_bandwidth = 40e9 +example.Ed = 16 +example.reconfigure() +runs = 10 +tx_data, rx_data = example.run(runs) + + +#Rotation compensation +########################################################################################### +#Compensate for the rotation mismatch +RotationCompensation = 1 +if RotationCompensation == 1: + #Find the average rotation error + Rotation_Error = (np.angle(rx_data["symbols"])-np.angle(tx_data["symbols"])-np.pi)%(2*np.pi)+np.pi + MeanRotation = np.mean(Rotation_Error) + #Compensate for the average rotation + rx_data["symbols"] = rx_data["symbols"] * np.exp(-1j*MeanRotation) +########################################################################################### + +#Plot the result + +example.evaluate_results(tx_data, rx_data) + + +print('Energy per carrier',example.Ed) +print('Fiber type : ', Fiber_type) \ No newline at end of file diff --git a/Examples/GuiEtAl2018_DDF.py b/Examples/GuiEtAl2018_DDF.py new file mode 100644 index 0000000..999d63d --- /dev/null +++ b/Examples/GuiEtAl2018_DDF.py @@ -0,0 +1,170 @@ +# -*- coding: utf-8 -*- +""" +Created on Tue Apr 30 17:13:41 2019 + +@author: vinodbajaj +""" + +# This file is part of NFDMLab. +# +# NFDMLab is free software; you can redistribute it and/or +# modify it under the terms of the version 2 of the GNU General +# Public License as published by the Free Software Foundation. +# +# NFDMLab is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with NFDMLab; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA +# +# Contributors: +# Sander Wahls (TU Delft) 2018-2019 +# Shrinivas Chimmalgi (TU Delft) 2018 + +import numpy as np +import math + +from Examples import BaseExample + +class GuiEtAl2018_DDF(BaseExample): + '''This example loosely recreates the experiment presented in the paper + + "Nonlinear frequency division multiplexing with b-modulation: shifting the + energy barrier " by T. Gui, G. Zhou, C. Lu, A.P.T. Lau, and S. Wahls + + published in Optics Express 26(21), 2018.''' + + def __init__(self): + # Fiber parameters + + self.beta2 = -25.491e-27 + """Dispersion parameter in s**2/m.""" + + self.gamma = 1.3e-3 + """Nonlinearity parameter in (W m)**(-1).""" + + self.Tscale = 1.25e-9 # s + """Time scale used during normalization in s.""" + + self.alpha = np.array([0.2e-3]) + """Loss coefficient in 1/m.""" + + self.post_boost = True + """Boost at the end of each span (lumped amplification). True or + False.""" + + self.path_average = False + """Use path-averaged fiber parameters during normalization. True or + False.""" + + self.noise = True + """Add ASE noise during amplification (only if post_boost == True). + True or False.""" + + self.noise_figure = 3 + """Noise figure in dB.""" + + self.n_spans = 8 + """Number of fiber spans.""" + + self.fiber_span_length = 80e3 + """Length of a fiber span in m.""" + + self.n_steps_per_span = 500 + """Number of spatial steps per span during the numerical simulation of + the fiber transmission.""" + + # Modulator parameters + self.constellation_type = 'PSK' + """We support 'QAM' and 'PSK'.""" + + self.constellation_level = 16 + """Level of the QAM constellation used as input for the reshaping + process (4, 16, 256, ...).""" + + self.n_symbols_per_block = 9 + """Number of carriers.""" + + self.Ed = 4 + """Desired average pulse energy in normalized units. Used during the + reshaping of the constellation. (See the paper for details.)""" + + # Filters + + self.tx_bandwidth = 33e9 + """Bandwidth of the (ideal) low-pass filter at the transmitter in Hz.""" + + self.rx_bandwidth = 33e9 # in GHz + """Bandwidth of the (ideal) low-pass filter at the receiver in Hz.""" + + self.reconfigure() + + def reconfigure(self): + distance = self.n_spans*self.fiber_span_length #m + from Modulators.CarrierWaveforms import flat_top + carrier_waveform = lambda xi : flat_top(xi, T0) + self._carrier_spacing = 15.0 + T0 = 4.5 + T = np.array([-2.25, 2.25]) # changed from -1 1 + + # Normalization + + if self.path_average == True: + from Normalization import Lumped + self._normalization = Lumped(self.beta2, + self.gamma, + self.Tscale, + alpha=np.mean(self.alpha)*np.log(10)*0.1, + zamp=self.fiber_span_length) + else: + from Normalization import Lossless + self._normalization = Lossless(self.beta2, self.gamma, self.Tscale) + + # Constellation + if self.constellation_type == 'QAM': + from Constellations import ReshapedQAMConstellation + m = int(math.sqrt(self.constellation_level)) + assert self.constellation_level == m*m + bnds = np.array([0, 4/np.abs(carrier_waveform(0.0))]) + self._constellation = ReshapedQAMConstellation(m, m,carrier_waveform,self.Ed, bnds) + elif self.constellation_type == 'PSK': + from Constellations import ReshapedPSKConstellation + bnds = np.array([0,4/np.abs(carrier_waveform(0.0))]) + self._constellation = ReshapedPSKConstellation(self.constellation_level,carrier_waveform,self.Ed,bnds) + else: + raise Exception('Constellation not supported') + # Modulator + + from Modulators import DDFContSpecModulator + normalized_distance = self.normalization.norm_dist(distance) + normalized_duration = T[1] - T[0] + required_normalized_dt = normalized_duration/self.n_symbols_per_block/128 # originally it was 8 instead of 128 in denominator + required_dxi = self._carrier_spacing / 8 + self._modulator = DDFContSpecModulator(carrier_waveform, + self._carrier_spacing, + self.n_symbols_per_block, + normalized_distance, + T, + required_normalized_dt, + required_dxi, + "b") + + # Link + + from Links import DDFSplitStep + dt = self._normalization.denorm_time(self.modulator.normalized_dt) + dz = self.fiber_span_length/self.n_steps_per_span + self._link = DDFSplitStep(dt, dz, self.n_steps_per_span, self.alpha, + self.beta2, self.gamma, False, self.n_spans, + self.post_boost, self.noise, self.noise_figure) + + # Filters + + from Filters import PassThrough + self._tx_filter = PassThrough() + from Filters import FFTLowPass + self._rx_filter = FFTLowPass(self.rx_bandwidth/2, dt) diff --git a/Examples/__init__.py b/Examples/__init__.py index bcb7d44..a3e5245 100644 --- a/Examples/__init__.py +++ b/Examples/__init__.py @@ -22,3 +22,4 @@ from Examples.LeArefBuelow2017 import LeArefBuelow2017 from Examples.GuiEtAl2018 import GuiEtAl2018 from Examples.BuelowArefIdler2016_DDF import BuelowArefIdler2016_DDF +from Examples.GuiEtAl2018_DDF import GuiEtAl2018_DDF \ No newline at end of file diff --git a/Modulators/DDFContSpecModulator.py b/Modulators/DDFContSpecModulator.py new file mode 100644 index 0000000..a2a036d --- /dev/null +++ b/Modulators/DDFContSpecModulator.py @@ -0,0 +1,346 @@ +# -*- coding: utf-8 -*- +""" +Created on Wed Apr 3 09:43:16 2019 + +@author: vinodbajaj +""" + +# This file is part of NFDMLab. +# +# NFDMLab is free software; you can redistribute it and/or +# modify it under the terms of the version 2 of the GNU General +# Public License as published by the Free Software Foundation. +# +# NFDMLab is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with NFDMLab; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA +# +# Contributors: +# Sander Wahls (TU Delft) 2018-2019 +# Shrinivas Chimmalgi (TU Delft) 2018 +import scipy.io +import numpy as np +import matplotlib.pyplot as plt +from FNFTpy.fnft_nsev_inverse_wrapper import nsev_inverse_wrapper, nsev_inverse_xi_wrapper +from FNFTpy.options_handling import fnft_nsev_inverse_default_options_wrapper +from FNFTpy.fnft_nsev_wrapper import nsev_wrapper +from FNFTpy.options_handling import fnft_nsev_default_options_wrapper +from Modulators import BaseModulator +from Helpers import NFSpectrum +from Helpers import next_pow2 + +class DDFContSpecModulator(BaseModulator): + """This modulator embeds symbols in the continuous spectrum using a classic + multi-carrier approach.""" + + def __init__(self, + carrier_waveform_fun, + carrier_spacing, + n_symbols_per_block, + normalized_distance, + T, + required_normalized_dt, + required_dxi, + contspec_type, + percent_precompensation = 0.0, + power_control_factor = 1.0, + use_power_normalization_map = False): + """Constructor. + + Parameters + ---------- + carrier_waveform_fun : function + A function that maps numpy.array(float) to numpy.array(complex). The + inputs of this function are vectors with nonlinear frequencies xi. + The outputs are vectors with the values of the carrier waveforms at + the corresponding xi. See Helpers.CarrierWaveforms for examples. + carrier_spacing : float + Spacing between consequtive carriers in the nonlinear frequency + domain (xi). + n_symbols_per_block : int + Number of carriers. + normalized_distance : float + Length of the fiber link in normalized units. + T : numpy.array(float) + Vector of length two with T[0] required_dxi: + self._M *= 2 # M = 8192 + rv, self._XI = nsev_inverse_xi_wrapper(self._n_samples_new, + self._Tnew[0], + self._Tnew[1], + self._M) + self._dxi = (self._XI[1] - self._XI[0])/(self._M - 1) + + # Generate some time and nonlinear frequency grids for later use. + + self._t = self._T[0] + np.arange(0, self.n_samples)*self.normalized_dt + self._xi = self._XI[0] + np.arange(0, self._M)*self._dxi + + # carrier spacing = 0.6283 + self._carrier_centers = (np.arange(0, n_symbols_per_block)-(n_symbols_per_block-1)/2.0)*carrier_spacing + self._carrier_center_idx = np.zeros(n_symbols_per_block, dtype=int) + '''print("Size of the xi grid is",self._xi.size) + 'print("Size of the CARRIER centers is",self._carrier_centers.size)''' + for n in range(0, n_symbols_per_block): + self._carrier_center_idx[n] = np.argmin(abs(self._xi - self._carrier_centers[n])) + + # Set the right type of continuos spectrum for the NFT routines. + + self._opts_inv = fnft_nsev_inverse_default_options_wrapper() + self._opts_fwd = fnft_nsev_default_options_wrapper() + #self._opts_inv.discretization = self._opts_fwd.discretization + if self._contspec_type == "b": + self._opts_fwd.contspec_type = 1 # b_of_xi + self._opts_inv.contspec_type = 1 # ab + elif self._contspec_type != "b/a": + raise Exception("Unknown contspec_type '"+str(self._contspec_type)+"'") + self._opts_fwd.discspec_type = 3 # skip computation of discrete spectrum + + # Determine interval [xi_min, xi_max] outside of which the carrier + # waveform is effectively zero. This is essential to speed the + # modulation process when the number of carriers is getting larger. + + vals = self._carrier_waveform_fun(self._xi) + tol = 10 * np.finfo(vals[0]).eps * np.max(np.abs(vals)) + idx = np.argwhere(np.abs(vals)>tol) + i1 = idx[0][0] + i2 = idx[-1][0] + self._xi_min = self._xi[i1] + self._xi_max = self._xi[i2] + + def _new_nfspec(self): + """Generates an empty NFSpectrum object with the right contspec_type and + plotting hints.""" + nfspec = NFSpectrum(self._contspec_type, "none") + nfspec.xi = self._xi + nfspec.xi_plot_range = np.array([-1.5, 1.5])*self.n_symbols_per_block/2*self._carrier_spacing + return nfspec + + def modulate(self, symbols): + # Docstring is inherited from base class. + + # Generate a nonlinear Fourier spectrum in which the given symbols are + # embedded. + nc = np.size(symbols) + assert nc == self.n_symbols_per_block + nfspec = self._new_nfspec() + nfspec.cont = np.zeros(self._M, dtype=complex) +# print("XI is",self._XI) +# print("t resolution is",self._t[1]-self._t[0]) +# print("Size of t is",self._t.size) +# print("first element of t is",self._t[0]) +# print("T window is",self._Tnew) + #print("Size of the xi grid is",self._xi.size) + #print("first element of the xi grid is",self._xi[0]) + #print("last element of the xi grid is",self._xi[8191]) + #print("resolution of the xi grid is",self._xi[1]-self._xi[0]) + #print("Size of the carrier centers is",self._carrier_centers.size) + #print("first element of the carrier centers is",self._carrier_centers[0]) + #print("resolution of the carrier centers is",self._carrier_centers[1]-self._carrier_centers[0]) ''' + + + + for n in range(0, nc): + shifted_xi = self._xi - self._carrier_centers[n] + idx = np.logical_and(shifted_xi>=self._xi_min, shifted_xi<=self._xi_max) + + nfspec.cont[idx] = nfspec.cont[idx] + symbols[n]*self._carrier_waveform_fun(shifted_xi[idx]) + + + #plt.xlabel('nonlinear freq') + #plt.ylabel('amplitude') + #plt.title('subcarrier shape') + # xi min and xi max are boundaries of XI + + + + for n in range(0, nc): + i = self._carrier_center_idx[n] + # Apply the power control factor and, if requested, the power + # normalization map + + + nfspec.cont *= self._power_control_factor + if self._use_power_normalization_map: + if self._contspec_type == "b": + raise Exception("Power normalization map currently only implemented for continuous spectra of reflection coefficient type (b/a)") + nfspec.cont = np.sqrt(np.exp(np.abs(nfspec.cont)**2) - 1.0) * np.exp(1j*np.angle(nfspec.cont)) + + # Pre-equalize for the phase change induced by the channel + + nfspec.cont *= np.exp(-2.0j*self._xi**2*self._normalized_distance*0.413*(self._percent_precompensation/100)) + #print('nfspec type is',type(nfspec.cont)) + # Generate corresponding time domain signal on the extended grid + # specified construction + + rdict = nsev_inverse_wrapper(self._M, + nfspec.cont, + self._XI[0], + self._XI[1], + 0, + [], + [], + self._n_samples_new, + self._Tnew[0], + self._Tnew[1], + +1, + self._opts_inv) + if rdict['return_value'] != 0: + raise Exception("FNFT failed") + + # Remove all samples that are not in the time range specified by the + # user. + + q = rdict['q'][ int((self._O-1)*self.n_samples/2) + :int((self._O+1)*self.n_samples/2)] + + return q, nfspec + + def demodulate(self, q): + # Docstring is inherited from base class. + + # Oversample the given time domain signal and compute the continous + # spectrum. + + assert np.size(q) == self.n_samples #1024 + from scipy import signal + DO = self._O * self.n_samples # 4*1024 + qO, tO = signal.resample(q, DO, self._t) + + rdict = nsev_wrapper(DO, + qO, + tO[0], + tO[-1], + self._XI[0], + self._XI[1], + self._M, + 0, + +1, + self._opts_fwd) + if rdict['return_value'] != 0: + raise Exception("FNFT failed") + + nfspec = self._new_nfspec() + if self._contspec_type == "b/a": + nfspec.cont = rdict['cont_ref'] + elif self._contspec_type == "b": + nfspec.cont = rdict['cont_b'] + else: + raise Exception("Unknown contspec_type '"+str(self._contspec_type)+"'") + + # Remove any remaining phase changes due to the channel that have not + # already been removed at the transmitter + + D_z_avg = 0.414 # Normalized dispersion averaged over span + + # The factor ideally should be 0.413 for 80 km and -25.491e-27 starting dispersion, but + # its optimum value changes with step size of split step Fourier method (i.e. depends on accuracy) + # As checked by EVM performance, its value found as 0.4134 for 1000 steps and 0.414 for 500 steps. + nfspec.cont *= np.exp(-2.0j*self._xi**2*self._normalized_distance*D_z_avg + *(1 - self._percent_precompensation/100)) + #for i in range(0,self._M): + # nfspec.cont[i] *= np.exp(+1.0j*2*self._xi[i]*((2.5e-9/4e-10)%(2*np.pi))) + + # Recover the symbols + + + symbols = np.zeros(self.n_symbols_per_block, dtype=complex) + scl = np.abs(self._carrier_waveform_fun(0.0)) * self._power_control_factor + matched_fiter = True + if matched_fiter: + percentage_averaging = 70 # % of carrier spacing. It specifies range of 'xi' to average for symbol detection + xi_avg_range = 0.5*self._carrier_spacing*percentage_averaging/100 # xi range for averaging + idx_diff = int(xi_avg_range/self._dxi) # get the index difference + carrier_shape_filter = self._carrier_waveform_fun(self._xi[int(self._M/2)-idx_diff:int(self._M/2)+idx_diff])# get carrier shape for the filter + for n in range(0, self.n_symbols_per_block): + idx_l = self._carrier_center_idx[n] - idx_diff # lower index of the xi average range; + idx_u = self._carrier_center_idx[n] + idx_diff # upper index of the xi average range; + matched_filtered_data = np.multiply(nfspec.cont[idx_l:idx_u],carrier_shape_filter) + symbols[n] = np.mean(matched_filtered_data)/np.mean(carrier_shape_filter) + if self._use_power_normalization_map: + symbols[n] = np.sqrt(np.log(np.abs(symbols[n])**2 + 1.0)) * np.exp(1j*np.angle(symbols[n])) + symbols[n] /= scl + + else: + for n in range(0, self.n_symbols_per_block): + symbols[n] = nfspec.cont[self._carrier_center_idx[n]] + print('carrier centers',self._carrier_center_idx[n]) + if self._use_power_normalization_map: + symbols[n] = np.sqrt(np.log(np.abs(symbols[n])**2 + 1.0)) * np.exp(1j*np.angle(symbols[n])) + symbols[n] /= scl + + return symbols, nfspec diff --git a/Modulators/__init__.py b/Modulators/__init__.py index f698c88..202c11f 100644 --- a/Modulators/__init__.py +++ b/Modulators/__init__.py @@ -20,4 +20,5 @@ from Modulators.BaseModulator import BaseModulator from Modulators.ContSpecModulator import ContSpecModulator from Modulators.DiscSpecModulator import DiscSpecModulator -from Modulators.DDFDiscSpecModulator import DDFDiscSpecModulator \ No newline at end of file +from Modulators.DDFDiscSpecModulator import DDFDiscSpecModulator +from Modulators.DDFContSpecModulator import DDFContSpecModulator From 3bc35c76d58600a742330bfd25d9cda5fc5b8fd8 Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Fri, 21 Jun 2019 16:04:06 +0200 Subject: [PATCH 13/37] Normalizing the Rx symbols (constellation) with respect to RMS power of TX symbols. This will isolate the false degradation in EVM due to magintude-scaling of RX symbols. This process (along with rotation removal ) is usually done before EVM computation. --- Examples/BaseExample.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Examples/BaseExample.py b/Examples/BaseExample.py index beaa9fa..431784a 100644 --- a/Examples/BaseExample.py +++ b/Examples/BaseExample.py @@ -270,6 +270,8 @@ def evaluate_results(self, tx_data, rx_data): rx_data["nfspecs"][0].show(legend=["tx", "rx"]) constellation_diagram = ConstellationDiagram(self.constellation) + # scaling the Rx symbols, to the rms power of Tx symbols, This will isolate the effect of scaling from EVM computation + rx_data["symbols"] = np.sqrt(np.mean(np.abs(tx_data["symbols"])**2))*rx_data["symbols"]/np.sqrt(np.mean(np.abs(rx_data["symbols"])**2)) constellation_diagram.plot(rx_data["symbols"], new_fig=True) error_vector_magnitude = ErrorVectorMagnitude() From cac49881692ae76c8560432393df9a125b84233e Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Mon, 2 Sep 2019 10:17:57 +0200 Subject: [PATCH 14/37] Made a factor that is used to determine step sizes in Examples/GuiEtAl2018 reconfigurable (via new variable dX_factor). --- Examples/GuiEtAl2018.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Examples/GuiEtAl2018.py b/Examples/GuiEtAl2018.py index f99cb6f..06c9647 100644 --- a/Examples/GuiEtAl2018.py +++ b/Examples/GuiEtAl2018.py @@ -91,6 +91,11 @@ def __init__(self): self.rx_bandwidth = 33e9 # in GHz """Bandwidth of the (ideal) low-pass filter at the receiver in Hz.""" + self.dX_factor = 8 + """Factor used when determining the time domain step size dt and the + nonlinear frequency domain step size dxi. Both are proportional to + 1/dX_factor.""" + self.reconfigure() def reconfigure(self): @@ -129,8 +134,8 @@ def reconfigure(self): from Modulators import ContSpecModulator normalized_distance = self.normalization.norm_dist(distance) normalized_duration = T[1] - T[0] - required_normalized_dt = normalized_duration/self.n_symbols_per_block/8 - required_dxi = self._carrier_spacing / 8 + required_normalized_dt = normalized_duration/self.n_symbols_per_block/self.dX_factor + required_dxi = self._carrier_spacing / self.dX_factor self._modulator = ContSpecModulator(carrier_waveform, self._carrier_spacing, self.n_symbols_per_block, From ca8adbe72a2e602cb3e15accc2314ef5da930df0 Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Mon, 2 Sep 2019 15:35:08 +0200 Subject: [PATCH 15/37] Started to work on a conventional time-domain transceiver, added Examples/TimeDomainPulseShaping Filters/DispersionCompensation and Modulators/TimeDomainModulator --- Examples/TimeDomainPulseShaping.py | 116 +++++++++++++++++++++++++++++ Examples/__init__.py | 1 + Filters/Concatenate.py | 12 +++ Filters/DispersionCompensation.py | 58 +++++++++++++++ Filters/__init__.py | 2 + Modulators/TimeDomainModulator.py | 52 +++++++++++++ Modulators/__init__.py | 3 +- 7 files changed, 243 insertions(+), 1 deletion(-) create mode 100644 Examples/TimeDomainPulseShaping.py create mode 100644 Filters/Concatenate.py create mode 100644 Filters/DispersionCompensation.py create mode 100644 Modulators/TimeDomainModulator.py diff --git a/Examples/TimeDomainPulseShaping.py b/Examples/TimeDomainPulseShaping.py new file mode 100644 index 0000000..878e3ed --- /dev/null +++ b/Examples/TimeDomainPulseShaping.py @@ -0,0 +1,116 @@ +import numpy as np +import math + +from Examples import BaseExample +from Constellations import QAMConstellation +import Modulators +from Links import SMFSplitStep +from Normalization import Lossless +from Filters import FFTLowPass, DispersionCompensation, Concatenate +from Modulators import CarrierWaveforms + +class TimeDomainPulseShaping(BaseExample): + """Convetional time domain pulse shaping with raised cosines and a linear + dispersion compensation filter.""" + + def __init__(self): + + self.roll_off_factor = 0.5 + """Roll-off factor for the raised cosine pulses.""" + + self.T0 = 2.5e-11 + """Symbol duration in s.""" + + self.n_symbols_per_block = 128 + """Number of symbols per block.""" + + self.n_guard_symbols = 32 + """The length of the guard interval is given by this number times T0.""" + + self.beta2 = -5e-27 + """Dispersion parameter in s**2/m.""" + + self.gamma = 1.2e-3 + """Nonlinearity parameter in (W m)**(-1).""" + + self.Tscale = 1.25e-9 # s + """Time scale used during normalization in s.""" + + self.alpha = np.array([0.2e-3]) + """Loss coefficient in 1/m.""" + + self.post_boost = True + """Boost at the end of each span (lumped amplification). True or + False.""" + + self.path_average = True + """Use path-averaged fiber parameters during normalization. True or + False.""" + + self.noise = True + """Add ASE noise during amplification (only if post_boost == True). + True or False.""" + + self.noise_figure = 6 + """Noise figure in dB.""" + + self.n_spans = 8 + """Number of fiber spans.""" + + self.fiber_span_length = 80e3 + """Length of a fiber span in m.""" + + self.n_steps_per_span = 40 + """Number of spatial steps per span during the numerical simulation of + the fiber transmission.""" + + self.tx_bandwidth = 40e9 + """Bandwidth of the (ideal) low-pass filter at the transmitter in Hz.""" + + self.rx_bandwidth = 40e9 # in GHz + """Bandwidth of the (ideal) low-pass filter at the receiver in Hz.""" + + self.constellation_level = 4 + """Level of the QAM constellation (4, 16, 256, ...).""" + + self.dispersion_compensation = True + """Compensate for chromatic dispersion at the end of the link. True or + False.""" + + self.tx_gain = 0.25 + """Gain (in linear units) that is applied at the transmitter before + transmission. Use for power control.""" + + self.dt_factor = 16 + """Factor that determines the time domain step size, which is + proportional to 1/dt_factor.""" + + self.reconfigure() + + def reconfigure(self): + + self.pulse_fun = lambda t : self.tx_gain*CarrierWaveforms.raised_cosine(t, self.roll_off_factor, self.T0) + self.pulse_spacing = self.T0 + self.dt = self.T0 / self.dt_factor + + m = int(math.sqrt(self.constellation_level)) + assert self.constellation_level == m*m + self._constellation = QAMConstellation(m, m) + dz = self.fiber_span_length/self.n_steps_per_span + self._link = SMFSplitStep(self.dt, dz, self.n_steps_per_span, self.alpha, + self.beta2, self.gamma, False, self.n_spans, + self.post_boost, self.noise, self.noise_figure) + self._modulator = Modulators.TimeDomainModulator(self.pulse_fun, + self.pulse_spacing, + self.dt, + self.n_symbols_per_block, + self.n_guard_symbols) + self._normalization = Lossless(1, 1, 1) # = no normalization + + self._tx_filter = FFTLowPass(self.tx_bandwidth/2, self.dt) + rx_lowpass = FFTLowPass(self.rx_bandwidth/2, self.dt) + if self.dispersion_compensation: + dcf = DispersionCompensation(self.beta2, self.fiber_span_length*self.n_spans, self.dt) + self._rx_filter = Concatenate(rx_lowpass, dcf) + else: + self._rx_filter = rx_lowpass diff --git a/Examples/__init__.py b/Examples/__init__.py index 2f8ec2a..ed40272 100644 --- a/Examples/__init__.py +++ b/Examples/__init__.py @@ -21,3 +21,4 @@ from Examples.BuelowArefIdler2016 import BuelowArefIdler2016 from Examples.LeArefBuelow2017 import LeArefBuelow2017 from Examples.GuiEtAl2018 import GuiEtAl2018 +from Examples.TimeDomainPulseShaping import TimeDomainPulseShaping diff --git a/Filters/Concatenate.py b/Filters/Concatenate.py new file mode 100644 index 0000000..ef2061e --- /dev/null +++ b/Filters/Concatenate.py @@ -0,0 +1,12 @@ +from Filters import BaseFilter + +class Concatenate(BaseFilter): + '''Concatenates two filters.''' + + def __init__(self, filter1, filter2): + """Constructor.""" + self._filter1 = filter1 + self._filter2 = filter2 + + def filter(self, input): + return self._filter2.filter(self._filter1.filter(input)) diff --git a/Filters/DispersionCompensation.py b/Filters/DispersionCompensation.py new file mode 100644 index 0000000..c714ddc --- /dev/null +++ b/Filters/DispersionCompensation.py @@ -0,0 +1,58 @@ +# This file is part of NFDMLab. +# +# NFDMLab is free software; you can redistribute it and/or +# modify it under the terms of the version 2 of the GNU General +# Public License as published by the Free Software Foundation. +# +# NFDMLab is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with NFDMLab; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA +# +# Contributors: +# Sander Wahls (TU Delft) 2018-2019 + +import numpy as np +from Filters import BaseFilter + +class DispersionCompensation(BaseFilter): + '''Dispersion compensation fiter implemented using the FFT.''' + + def __init__(self, beta2, link_length, h_sec): + """Constructor. + + Parameters + ---------- + beta2 : float + link_length : float + h_sec : float + """ + self._beta2 = beta2 + self._link_length = link_length + self._h_sec = h_sec + + def filter(self, input): + """Removes chromatic disperion effects from a signal. + + Parameters + ---------- + input : numpy.array(complex) + Vector of equi-distant time domain samples q[n]=q(t0+n*h_sec), + n=0,1,2,...,N-1, where h_sec is the sampling interval that was + provided to __init__(...). + + Returns + ------- + numpy.array(complex) + Vector of the same properties as the input. + """ + ft = np.fft.fft(input) + N = np.size(ft) + freq_Hz = np.fft.fftfreq(N, d=self._h_sec) + ft *= np.exp(-0.5j*(2*np.pi*freq_Hz)**2*self._link_length*self._beta2) + return np.fft.ifft(ft) diff --git a/Filters/__init__.py b/Filters/__init__.py index c7c7d0b..7c80e95 100644 --- a/Filters/__init__.py +++ b/Filters/__init__.py @@ -20,3 +20,5 @@ from Filters.BaseFilter import BaseFilter from Filters.PassThrough import PassThrough from Filters.FFTLowPass import FFTLowPass +from Filters.DispersionCompensation import DispersionCompensation +from Filters.Concatenate import Concatenate diff --git a/Modulators/TimeDomainModulator.py b/Modulators/TimeDomainModulator.py new file mode 100644 index 0000000..5d58fd2 --- /dev/null +++ b/Modulators/TimeDomainModulator.py @@ -0,0 +1,52 @@ +import numpy as np +from Modulators import BaseModulator +from Helpers import NFSpectrum + +class TimeDomainModulator(BaseModulator): + """TODO""" + + def __init__(self, + pulse_fun, + pulse_spacing, + dt, + n_symbols_per_block, + n_guard_symbols): + self._pulse_fun = pulse_fun + self._pulse_spacing = pulse_spacing + + self._norm_dt = dt # Here: normalized = unnormalized (= no normalization neccessary) + self._n_samples = int(pulse_spacing/dt * (n_symbols_per_block + n_guard_symbols)) + self._n_symbols_per_block = n_symbols_per_block + self._normalized_dt = dt + + self._t = (np.arange(0, self.n_samples) - (self.n_samples-1)/2)*dt + self._pulse_centers = (np.arange(0, n_symbols_per_block)-(n_symbols_per_block-1)/2.0)*pulse_spacing + self._pulse_center_idx = np.zeros(n_symbols_per_block, dtype=int) + for n in range(0, n_symbols_per_block): + self._pulse_center_idx[n] = np.argmin(abs(self._t - self._pulse_centers[n])) + + vals = self._pulse_fun(self._t) + tol = 10 * np.finfo(vals[0]).eps * np.max(np.abs(vals)) + idx = np.argwhere(np.abs(vals)>tol) + i1 = idx[0][0] + i2 = idx[-1][0] + self._t_min = self._t[i1] + self._t_max = self._t[i2] + + def modulate(self, symbols): + nc = np.size(symbols) + assert nc == self.n_symbols_per_block + q_tx = np.zeros(self.n_samples, dtype=complex) + for n in range(0, nc): + shifted_t = self._t - self._pulse_centers[n] + idx = np.logical_and(shifted_t>=self._t_min, shifted_t<=self._t_max) + q_tx[idx] = q_tx[idx] + symbols[n]*self._pulse_fun(shifted_t[idx]) + return 1e-1*q_tx, NFSpectrum('none', 'none') + + def demodulate(self, q_rx): + q_tx_hat = q_rx + symbols = np.zeros(self.n_symbols_per_block, dtype=complex) + scl = 1e-1*np.abs(self._pulse_fun(0.0)) + for n in range(0, self.n_symbols_per_block): + symbols[n] = q_tx_hat[self._pulse_center_idx[n]] / scl + return symbols, NFSpectrum('none', 'none') diff --git a/Modulators/__init__.py b/Modulators/__init__.py index 7f74035..7444713 100644 --- a/Modulators/__init__.py +++ b/Modulators/__init__.py @@ -19,4 +19,5 @@ from Modulators.BaseModulator import BaseModulator from Modulators.ContSpecModulator import ContSpecModulator -from Modulators.DiscSpecModulator import DiscSpecModulator \ No newline at end of file +from Modulators.DiscSpecModulator import DiscSpecModulator +from Modulators.TimeDomainModulator import TimeDomainModulator From 0b67f93cb0079b267e287f61ebc6390262587ef4 Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Wed, 4 Sep 2019 11:36:05 +0200 Subject: [PATCH 16/37] Moved functionality to embed/extract symbols in/from sums of shifted base waveforms into separate helper class. --- Helpers/SumOfShiftedWaveforms.py | 115 ++++++++++++++++++++++++++++++ Helpers/__init__.py | 1 + Modulators/ContSpecModulator.py | 51 +++++-------- Modulators/TimeDomainModulator.py | 33 +++------ 4 files changed, 141 insertions(+), 59 deletions(-) create mode 100644 Helpers/SumOfShiftedWaveforms.py diff --git a/Helpers/SumOfShiftedWaveforms.py b/Helpers/SumOfShiftedWaveforms.py new file mode 100644 index 0000000..38864f7 --- /dev/null +++ b/Helpers/SumOfShiftedWaveforms.py @@ -0,0 +1,115 @@ +# This file is part of NFDMLab. +# +# NFDMLab is free software; you can redistribute it and/or +# modify it under the terms of the version 2 of the GNU General +# Public License as published by the Free Software Foundation. +# +# NFDMLab is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with NFDMLab; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA +# +# Contributors: +# Sander Wahls (TU Delft) 2018-2019 + +import numpy as np + +class SumOfShiftedWaveforms: + """Generates a waveform by adding shifted and scaled copies of a base + waveform. The generated waveform is of the form + + s(X) = sum_n symbol[n]*waveform_fun(X - n*waveform_spacing + offset). + """ + + def __init__(self, waveform_fun, waveform_spacing, n_waveforms, grid): + """Constructor. + + Parameters + ---------- + + waveform_fun : function that maps np.array(float) to np.array(complex) + The base waveform. + waveform_spacing : float + The spacing between the copies of the base waveform. + n_waveforms : int + The number of base waveforms that enter each generated waveform. + grid : np.array(float) + Sort array of locations at which the waveform is generated. + """ + + self._waveform_fun = waveform_fun + self._waveform_spacing = waveform_spacing + self._n_waveforms = n_waveforms + self._grid = grid + + self._centers = (np.arange(0, n_waveforms)-(n_waveforms-1)/2.0)*waveform_spacing + self._center_idx = np.zeros(n_waveforms, dtype=int) + for n in range(0, n_waveforms): + self._center_idx[n] = np.argmin(abs(grid - self._centers[n])) + + # Determine interval [left, right] outside of which the waveform is + # effectively zero. This is later used to speed up the modulation + # process when the number of carriers is getting larger. + + vals = waveform_fun(grid) + tol = 10 * np.finfo(vals[0]).eps * np.max(np.abs(vals)) + idx = np.argwhere(np.abs(vals)>tol) + i1 = idx[0][0] + i2 = idx[-1][0] + self._left = grid[i1] + self._right = grid[i2] + + @property + def waveform_fun(self): + """Returns the waveform_fun that was provided to the constructor + (read-only).""" + return self._waveform_fun + + @property + def waveform_spacing(self): + """Returns the waveform_spacing that was provided to the constructor + (read-only).""" + return self._waveform_spacing + + @property + def grid(self): + """Returns the grid that was provided to the constructor (read-only).""" + return self._grid + + @property + def centers(self): + """Returns a vector of grid points that contains the locations at which + the centers of base waveforms are placed when they are summed up. Equal + to the terms n*waveform_spacing+offset in the description of this + class (read-only).""" + return self._centers + + @property + def center_idx(self): + """Returns a vector of indices i[n] such that centers[n] = grid[i[n]] + (read-only).""" + return self._center_idx + + def generate_waveform(self, symbols): + """Generates a waveform as described in the description of this class.""" + nc = np.size(symbols) + assert nc == self._n_waveforms + vals = np.zeros(np.size(self._grid), dtype=complex) + for n in range(0, nc): + shifted_grid = self.grid - self.centers[n] + idx = np.logical_and(shifted_grid>=self._left, shifted_grid<=self._right) + vals[idx] = vals[idx] + symbols[n]*self._waveform_fun(shifted_grid[idx]) + return vals + + def extract_symbols(self, waveform): + """Extracts the symbols from a waveform generated by generate_waveform.""" + symbols = np.zeros(self._n_waveforms, dtype=complex) + scl = self.waveform_fun(0.0) + for n in range(0, self._n_waveforms): + symbols[n] = waveform[self.center_idx[n]] / scl + return symbols diff --git a/Helpers/__init__.py b/Helpers/__init__.py index f9262cd..69f2ae4 100644 --- a/Helpers/__init__.py +++ b/Helpers/__init__.py @@ -18,6 +18,7 @@ # Sander Wahls (TU Delft) 2019 from Helpers.NFSpectrum import NFSpectrum +from Helpers.SumOfShiftedWaveforms import SumOfShiftedWaveforms def checked_get(obj, attr_name, base_class): """Auxiliary function that checks whether the object obj has set an diff --git a/Modulators/ContSpecModulator.py b/Modulators/ContSpecModulator.py index 5881076..54fd33b 100644 --- a/Modulators/ContSpecModulator.py +++ b/Modulators/ContSpecModulator.py @@ -27,6 +27,7 @@ from Modulators import BaseModulator from Helpers import NFSpectrum from Helpers import next_pow2 +from Helpers import SumOfShiftedWaveforms class ContSpecModulator(BaseModulator): """This modulator embeds symbols in the continuous spectrum using a classic @@ -136,11 +137,11 @@ def __init__(self, # Generate some time and nonlinear frequency grids for later use. self._t = self._T[0] + np.arange(0, self.n_samples)*self.normalized_dt - self._xi = self._XI[0] + np.arange(0, self._M)*self._dxi - self._carrier_centers = (np.arange(0, n_symbols_per_block)-(n_symbols_per_block-1)/2.0)*carrier_spacing - self._carrier_center_idx = np.zeros(n_symbols_per_block, dtype=int) - for n in range(0, n_symbols_per_block): - self._carrier_center_idx[n] = np.argmin(abs(self._xi - self._carrier_centers[n])) + xi = self._XI[0] + np.arange(0, self._M)*self._dxi + self._sum_shifted_carriers = SumOfShiftedWaveforms(carrier_waveform_fun, + carrier_spacing, + n_symbols_per_block, + xi) # Set the right type of continuos spectrum for the NFT routines. @@ -154,23 +155,11 @@ def __init__(self, raise Exception("Unknown contspec_type '"+str(self._contspec_type)+"'") self._opts_fwd.discspec_type = 3 # skip computation of discrete spectrum - # Determine interval [xi_min, xi_max] outside of which the carrier - # waveform is effectively zero. This is essential to speed the - # modulation process when the number of carriers is getting larger. - - vals = self._carrier_waveform_fun(self._xi) - tol = 10 * np.finfo(vals[0]).eps * np.max(np.abs(vals)) - idx = np.argwhere(np.abs(vals)>tol) - i1 = idx[0][0] - i2 = idx[-1][0] - self._xi_min = self._xi[i1] - self._xi_max = self._xi[i2] - def _new_nfspec(self): """Generates an empty NFSpectrum object with the right contspec_type and plotting hints.""" nfspec = NFSpectrum(self._contspec_type, "none") - nfspec.xi = self._xi + nfspec.xi = self._sum_shifted_carriers.grid nfspec.xi_plot_range = np.array([-1.5, 1.5])*self.n_symbols_per_block/2*self._carrier_spacing return nfspec @@ -183,13 +172,7 @@ def modulate(self, symbols): nc = np.size(symbols) assert nc == self.n_symbols_per_block nfspec = self._new_nfspec() - nfspec.cont = np.zeros(self._M, dtype=complex) - for n in range(0, nc): - shifted_xi = self._xi - self._carrier_centers[n] - idx = np.logical_and(shifted_xi>=self._xi_min, shifted_xi<=self._xi_max) - nfspec.cont[idx] = nfspec.cont[idx] + symbols[n]*self._carrier_waveform_fun(shifted_xi[idx]) - for n in range(0, nc): - i = self._carrier_center_idx[n] + nfspec.cont = self._sum_shifted_carriers.generate_waveform(symbols) # Apply the power control factor and, if requested, the power # normalization map @@ -202,15 +185,16 @@ def modulate(self, symbols): # Pre-equalize for the phase change induced by the channel - nfspec.cont *= np.exp(-2.0j*self._xi**2*self._normalized_distance*(self._percent_precompensation/100)) + xi = self._sum_shifted_carriers.grid + nfspec.cont *= np.exp(-2.0j*xi**2*self._normalized_distance*(self._percent_precompensation/100)) # Generate corresponding time domain signal on the extended grid # specified construction rdict = nsev_inverse_wrapper(self._M, nfspec.cont, - self._XI[0], - self._XI[1], + xi[0], + xi[-1], 0, [], [], @@ -264,17 +248,16 @@ def demodulate(self, q): # Remove any remaining phase changes due to the channel that have not # already been removed at the transmitter - nfspec.cont *= np.exp(-2.0j*self._xi**2*self._normalized_distance + xi = self._sum_shifted_carriers.grid + nfspec.cont *= np.exp(-2.0j*xi**2*self._normalized_distance *(1 - self._percent_precompensation/100)) # Recover the symbols - symbols = np.zeros(self.n_symbols_per_block, dtype=complex) - scl = np.abs(self._carrier_waveform_fun(0.0)) * self._power_control_factor - for n in range(0, self.n_symbols_per_block): - symbols[n] = nfspec.cont[self._carrier_center_idx[n]] + symbols = self._sum_shifted_carriers.extract_symbols(nfspec.cont) + for n in range(0, np.size(symbols)): if self._use_power_normalization_map: symbols[n] = np.sqrt(np.log(np.abs(symbols[n])**2 + 1.0)) * np.exp(1j*np.angle(symbols[n])) - symbols[n] /= scl + symbols[n] /= self._power_control_factor return symbols, nfspec diff --git a/Modulators/TimeDomainModulator.py b/Modulators/TimeDomainModulator.py index 5d58fd2..9ddb53f 100644 --- a/Modulators/TimeDomainModulator.py +++ b/Modulators/TimeDomainModulator.py @@ -1,6 +1,7 @@ import numpy as np from Modulators import BaseModulator from Helpers import NFSpectrum +from Helpers import SumOfShiftedWaveforms class TimeDomainModulator(BaseModulator): """TODO""" @@ -11,42 +12,24 @@ def __init__(self, dt, n_symbols_per_block, n_guard_symbols): - self._pulse_fun = pulse_fun - self._pulse_spacing = pulse_spacing self._norm_dt = dt # Here: normalized = unnormalized (= no normalization neccessary) self._n_samples = int(pulse_spacing/dt * (n_symbols_per_block + n_guard_symbols)) self._n_symbols_per_block = n_symbols_per_block self._normalized_dt = dt - self._t = (np.arange(0, self.n_samples) - (self.n_samples-1)/2)*dt - self._pulse_centers = (np.arange(0, n_symbols_per_block)-(n_symbols_per_block-1)/2.0)*pulse_spacing - self._pulse_center_idx = np.zeros(n_symbols_per_block, dtype=int) - for n in range(0, n_symbols_per_block): - self._pulse_center_idx[n] = np.argmin(abs(self._t - self._pulse_centers[n])) - - vals = self._pulse_fun(self._t) - tol = 10 * np.finfo(vals[0]).eps * np.max(np.abs(vals)) - idx = np.argwhere(np.abs(vals)>tol) - i1 = idx[0][0] - i2 = idx[-1][0] - self._t_min = self._t[i1] - self._t_max = self._t[i2] + t = (np.arange(0, self.n_samples) - (self.n_samples-1)/2)*dt + self._sum_pulses = SumOfShiftedWaveforms(pulse_fun, + pulse_spacing, + n_symbols_per_block, + t) def modulate(self, symbols): nc = np.size(symbols) assert nc == self.n_symbols_per_block - q_tx = np.zeros(self.n_samples, dtype=complex) - for n in range(0, nc): - shifted_t = self._t - self._pulse_centers[n] - idx = np.logical_and(shifted_t>=self._t_min, shifted_t<=self._t_max) - q_tx[idx] = q_tx[idx] + symbols[n]*self._pulse_fun(shifted_t[idx]) + q_tx = self._sum_pulses.generate_waveform(symbols) return 1e-1*q_tx, NFSpectrum('none', 'none') def demodulate(self, q_rx): - q_tx_hat = q_rx - symbols = np.zeros(self.n_symbols_per_block, dtype=complex) - scl = 1e-1*np.abs(self._pulse_fun(0.0)) - for n in range(0, self.n_symbols_per_block): - symbols[n] = q_tx_hat[self._pulse_center_idx[n]] / scl + symbols = 10*self._sum_pulses.extract_symbols(q_rx) return symbols, NFSpectrum('none', 'none') From 9030908e06709aa32fe38802a21239971f1f0adf Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Sat, 5 Oct 2019 10:13:18 +0200 Subject: [PATCH 17/37] Fixed a typo in the doc of BaseModulator --- Modulators/BaseModulator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modulators/BaseModulator.py b/Modulators/BaseModulator.py index 12d616c..9ef9ce8 100644 --- a/Modulators/BaseModulator.py +++ b/Modulators/BaseModulator.py @@ -31,7 +31,7 @@ class BaseModulator(ABC): During construction, any modulator class should set the attributes - - _norm_dt + - _normalized_dt - _n_samples - _n_symbols_per_block From 8e9f3aa3514c3366e88b275f61ea9f8bc7ab063a Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Sat, 5 Oct 2019 11:09:59 +0200 Subject: [PATCH 18/37] TimeDomainPulseShaping now implements proper normalization. TimeDomainModulator got an option which ensures that n_samples is a power of two. --- Examples/TimeDomainPulseShaping.py | 48 ++++++++++++++++++++---------- Modulators/TimeDomainModulator.py | 25 +++++++++------- 2 files changed, 46 insertions(+), 27 deletions(-) diff --git a/Examples/TimeDomainPulseShaping.py b/Examples/TimeDomainPulseShaping.py index 878e3ed..64768e4 100644 --- a/Examples/TimeDomainPulseShaping.py +++ b/Examples/TimeDomainPulseShaping.py @@ -3,11 +3,10 @@ from Examples import BaseExample from Constellations import QAMConstellation -import Modulators from Links import SMFSplitStep -from Normalization import Lossless +from Normalization import Lumped from Filters import FFTLowPass, DispersionCompensation, Concatenate -from Modulators import CarrierWaveforms +from Modulators import TimeDomainModulator, CarrierWaveforms class TimeDomainPulseShaping(BaseExample): """Convetional time domain pulse shaping with raised cosines and a linear @@ -77,7 +76,7 @@ def __init__(self): """Compensate for chromatic dispersion at the end of the link. True or False.""" - self.tx_gain = 0.25 + self.tx_gain = 0.065 """Gain (in linear units) that is applied at the transmitter before transmission. Use for power control.""" @@ -89,23 +88,40 @@ def __init__(self): def reconfigure(self): - self.pulse_fun = lambda t : self.tx_gain*CarrierWaveforms.raised_cosine(t, self.roll_off_factor, self.T0) - self.pulse_spacing = self.T0 - self.dt = self.T0 / self.dt_factor + self._normalization = Lumped(self.beta2, + self.gamma, + self.T0, + self.alpha, + self.fiber_span_length) + + normalized_T0 = self._normalization.norm_time(self.T0) + self.pulse_fun = lambda t : self.tx_gain*CarrierWaveforms.raised_cosine(t, self.roll_off_factor, normalized_T0) + self.pulse_spacing = normalized_T0 + requested_normalized_dt = normalized_T0 / self.dt_factor m = int(math.sqrt(self.constellation_level)) assert self.constellation_level == m*m self._constellation = QAMConstellation(m, m) + + self._modulator = TimeDomainModulator(self.pulse_fun, + self.pulse_spacing, + requested_normalized_dt, + self.n_symbols_per_block, + self.n_guard_symbols) + self.dt = self._normalization.denorm_time(self._modulator.normalized_dt) + dz = self.fiber_span_length/self.n_steps_per_span - self._link = SMFSplitStep(self.dt, dz, self.n_steps_per_span, self.alpha, - self.beta2, self.gamma, False, self.n_spans, - self.post_boost, self.noise, self.noise_figure) - self._modulator = Modulators.TimeDomainModulator(self.pulse_fun, - self.pulse_spacing, - self.dt, - self.n_symbols_per_block, - self.n_guard_symbols) - self._normalization = Lossless(1, 1, 1) # = no normalization + self._link = SMFSplitStep(self.dt, + dz, + self.n_steps_per_span, + self.alpha, + self.beta2, + self.gamma, + False, + self.n_spans, + self.post_boost, + self.noise, + self.noise_figure) self._tx_filter = FFTLowPass(self.tx_bandwidth/2, self.dt) rx_lowpass = FFTLowPass(self.rx_bandwidth/2, self.dt) diff --git a/Modulators/TimeDomainModulator.py b/Modulators/TimeDomainModulator.py index 9ddb53f..f38a17a 100644 --- a/Modulators/TimeDomainModulator.py +++ b/Modulators/TimeDomainModulator.py @@ -1,6 +1,6 @@ import numpy as np from Modulators import BaseModulator -from Helpers import NFSpectrum +from Helpers import NFSpectrum, next_pow2 from Helpers import SumOfShiftedWaveforms class TimeDomainModulator(BaseModulator): @@ -9,27 +9,30 @@ class TimeDomainModulator(BaseModulator): def __init__(self, pulse_fun, pulse_spacing, - dt, + requested_normalized_dt, n_symbols_per_block, - n_guard_symbols): + n_guard_symbols, + make_n_samples_pow2=False): - self._norm_dt = dt # Here: normalized = unnormalized (= no normalization neccessary) - self._n_samples = int(pulse_spacing/dt * (n_symbols_per_block + n_guard_symbols)) - self._n_symbols_per_block = n_symbols_per_block - self._normalized_dt = dt - - t = (np.arange(0, self.n_samples) - (self.n_samples-1)/2)*dt + self._n_samples = int(pulse_spacing/requested_normalized_dt * (n_symbols_per_block + n_guard_symbols)) + T1 = self.n_samples/2*requested_normalized_dt + T0 = -T1 + if make_n_samples_pow2: + self._n_samples = next_pow2(self._n_samples) + t = np.linspace(T0, T1, self.n_samples) self._sum_pulses = SumOfShiftedWaveforms(pulse_fun, pulse_spacing, n_symbols_per_block, t) + self._normalized_dt = (T1 - T0)/self.n_samples + self._n_symbols_per_block = n_symbols_per_block def modulate(self, symbols): nc = np.size(symbols) assert nc == self.n_symbols_per_block q_tx = self._sum_pulses.generate_waveform(symbols) - return 1e-1*q_tx, NFSpectrum('none', 'none') + return q_tx, NFSpectrum('none', 'none') def demodulate(self, q_rx): - symbols = 10*self._sum_pulses.extract_symbols(q_rx) + symbols = self._sum_pulses.extract_symbols(q_rx) return symbols, NFSpectrum('none', 'none') From d4a2d3420834a1f33597ce0740f29e863c60493b Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Mon, 7 Oct 2019 22:35:41 +0200 Subject: [PATCH 19/37] TimeDomainPulseShaping example now has an option to enforce that number of samples is a power of two. --- Examples/TimeDomainPulseShaping.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Examples/TimeDomainPulseShaping.py b/Examples/TimeDomainPulseShaping.py index 64768e4..0c724c6 100644 --- a/Examples/TimeDomainPulseShaping.py +++ b/Examples/TimeDomainPulseShaping.py @@ -84,6 +84,9 @@ def __init__(self): """Factor that determines the time domain step size, which is proportional to 1/dt_factor.""" + self.make_n_samples_pow2 = False + """If true, it is ensured that the number of samples is a power of two.""" + self.reconfigure() def reconfigure(self): @@ -107,7 +110,8 @@ def reconfigure(self): self.pulse_spacing, requested_normalized_dt, self.n_symbols_per_block, - self.n_guard_symbols) + self.n_guard_symbols, + self.make_n_samples_pow2) self.dt = self._normalization.denorm_time(self._modulator.normalized_dt) dz = self.fiber_span_length/self.n_steps_per_span From a7cd9d2c5cf6a3ff134a56320134bf331d17d5a4 Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Wed, 30 Oct 2019 13:43:10 +0100 Subject: [PATCH 20/37] Reference added for EVM calculation --- QualityAssessment/ErrorVectorMagnitude.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/QualityAssessment/ErrorVectorMagnitude.py b/QualityAssessment/ErrorVectorMagnitude.py index 0383e98..c1c51fe 100644 --- a/QualityAssessment/ErrorVectorMagnitude.py +++ b/QualityAssessment/ErrorVectorMagnitude.py @@ -37,7 +37,17 @@ def in_dB(self, correct_symbols, recovered_symbols): ------- float 10*log10(P_error / P_reference) + + References + EVM calculations reference + 1. "dB or not dB?", Application Note 1MA98 , Rohde and Schwarz Gmbh, page-29 + 2. M. Vigilante, E. McCune and P. Reynaert, "To EVM or Two EVMs?: An Answer to the Question," in IEEE Solid-State Circuits Magazine, vol. 9, no. 3, pp. 36-39, Summer 2017. + from reference 2, it is clear that relation between E_rms (dB), E_max (dB) for different modualtion formats (on page 34) hold only if we use 20*log10 definition. + EVM (in dB) = 20 log10 (EVM (in percentage)/100) + + """ + num = np.linalg.norm(correct_symbols - recovered_symbols) den = np.linalg.norm(correct_symbols) return 20*np.log10(num/den) # The *2 corrects the sqrt in linalg.norm From 8d14135687c652f0e4841ef75a7ab75da8ef0556 Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Fri, 3 Sep 2021 10:48:44 +0200 Subject: [PATCH 21/37] Renamed TimeDomainModulator to TimeDomainPulseShapingModulator, added some documentation to it. --- Examples/TimeDomainPulseShaping.py | 33 +++++-- Modulators/CarrierWaveforms.py | 4 +- Modulators/TimeDomainModulator.py | 38 -------- Modulators/TimeDomainPulseShapingModulator.py | 86 +++++++++++++++++++ Modulators/__init__.py | 4 +- 5 files changed, 117 insertions(+), 48 deletions(-) delete mode 100644 Modulators/TimeDomainModulator.py create mode 100644 Modulators/TimeDomainPulseShapingModulator.py diff --git a/Examples/TimeDomainPulseShaping.py b/Examples/TimeDomainPulseShaping.py index 0c724c6..aed1e36 100644 --- a/Examples/TimeDomainPulseShaping.py +++ b/Examples/TimeDomainPulseShaping.py @@ -1,3 +1,22 @@ +# This file is part of NFDMLab. +# +# NFDMLab is free software; you can redistribute it and/or +# modify it under the terms of the version 2 of the GNU General +# Public License as published by the Free Software Foundation. +# +# NFDMLab is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with NFDMLab; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA +# +# Contributors: +# Sander Wahls (TU Delft) 2019, 2021 + import numpy as np import math @@ -6,7 +25,7 @@ from Links import SMFSplitStep from Normalization import Lumped from Filters import FFTLowPass, DispersionCompensation, Concatenate -from Modulators import TimeDomainModulator, CarrierWaveforms +from Modulators import TimeDomainPulseShapingModulator, CarrierWaveforms class TimeDomainPulseShaping(BaseExample): """Convetional time domain pulse shaping with raised cosines and a linear @@ -106,12 +125,12 @@ def reconfigure(self): assert self.constellation_level == m*m self._constellation = QAMConstellation(m, m) - self._modulator = TimeDomainModulator(self.pulse_fun, - self.pulse_spacing, - requested_normalized_dt, - self.n_symbols_per_block, - self.n_guard_symbols, - self.make_n_samples_pow2) + self._modulator = TimeDomainPulseShapingModulator(self.pulse_fun, + self.pulse_spacing, + requested_normalized_dt, + self.n_symbols_per_block, + self.n_guard_symbols, + self.make_n_samples_pow2) self.dt = self._normalization.denorm_time(self._modulator.normalized_dt) dz = self.fiber_span_length/self.n_steps_per_span diff --git a/Modulators/CarrierWaveforms.py b/Modulators/CarrierWaveforms.py index fb6aac6..8fa0fbb 100644 --- a/Modulators/CarrierWaveforms.py +++ b/Modulators/CarrierWaveforms.py @@ -15,7 +15,7 @@ # 02111-1307 USA # # Contributors: -# Sander Wahls (TU Delft) 2018 +# Sander Wahls (TU Delft) 2018, 2021 # Shrinivas Chimmalgi (TU Delft) 2018 import numpy as np @@ -48,6 +48,8 @@ def flat_top(xivec, T0): return vals def raised_cosine(xivec, roll_off_factor, T0): + """Raised-cosine carrier. T0 is the desired carrier spacing (i.e., the + distance between two consecutive zeros of the waveform).""" vals = np.sinc(xivec/T0) if np.isscalar(vals): xivec = np.array([xivec]) diff --git a/Modulators/TimeDomainModulator.py b/Modulators/TimeDomainModulator.py deleted file mode 100644 index f38a17a..0000000 --- a/Modulators/TimeDomainModulator.py +++ /dev/null @@ -1,38 +0,0 @@ -import numpy as np -from Modulators import BaseModulator -from Helpers import NFSpectrum, next_pow2 -from Helpers import SumOfShiftedWaveforms - -class TimeDomainModulator(BaseModulator): - """TODO""" - - def __init__(self, - pulse_fun, - pulse_spacing, - requested_normalized_dt, - n_symbols_per_block, - n_guard_symbols, - make_n_samples_pow2=False): - - self._n_samples = int(pulse_spacing/requested_normalized_dt * (n_symbols_per_block + n_guard_symbols)) - T1 = self.n_samples/2*requested_normalized_dt - T0 = -T1 - if make_n_samples_pow2: - self._n_samples = next_pow2(self._n_samples) - t = np.linspace(T0, T1, self.n_samples) - self._sum_pulses = SumOfShiftedWaveforms(pulse_fun, - pulse_spacing, - n_symbols_per_block, - t) - self._normalized_dt = (T1 - T0)/self.n_samples - self._n_symbols_per_block = n_symbols_per_block - - def modulate(self, symbols): - nc = np.size(symbols) - assert nc == self.n_symbols_per_block - q_tx = self._sum_pulses.generate_waveform(symbols) - return q_tx, NFSpectrum('none', 'none') - - def demodulate(self, q_rx): - symbols = self._sum_pulses.extract_symbols(q_rx) - return symbols, NFSpectrum('none', 'none') diff --git a/Modulators/TimeDomainPulseShapingModulator.py b/Modulators/TimeDomainPulseShapingModulator.py new file mode 100644 index 0000000..32135ac --- /dev/null +++ b/Modulators/TimeDomainPulseShapingModulator.py @@ -0,0 +1,86 @@ +# This file is part of NFDMLab. +# +# NFDMLab is free software; you can redistribute it and/or +# modify it under the terms of the version 2 of the GNU General +# Public License as published by the Free Software Foundation. +# +# NFDMLab is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with NFDMLab; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA +# +# Contributors: +# Sander Wahls (TU Delft) 2019, 2021 + +import numpy as np +from Modulators import BaseModulator +from Helpers import NFSpectrum, next_pow2 +from Helpers import SumOfShiftedWaveforms + +class TimeDomainPulseShapingModulator(BaseModulator): + """This is a conventional pulse shaping modulator that works in the time + domain. Symbols are embedded in superposed shifted copies of a base waveform + (e.g., a raised cosine).""" + + def __init__(self, + pulse_fun, + pulse_spacing, + requested_normalized_dt, + n_symbols_per_block, + n_guard_symbols, + make_n_samples_pow2=False): + """Constructor. + + Parameters + ---------- + pulse_fun : function + A function that maps numpy.array(float) to numpy.array(complex). The + inputs of this function are vectors of time points t. + The outputs are vectors with the values of the base waveform at + the corresponding t. + pulse_spacing : float + Spacing between two consecutive copies of the base waveform. + required_normalized_dt : float + The modulator will choose the number of time domain samples such + that the time step, in normalized units, does not exceed this value. + n_symbols_per_block : int + Number of shifted copies of the base waveform. + n_guard_symbols : int + Guard symbols are zero symbols that are added to the transmission to + avoid interference between consecutive blocks of data during + transmission. The duration of one block generated by this modulator + is pulse_duration*(n_symbols_per_block + n_guard_symbols). + make_n_samples_pow2 : bool + If True, the modular will choose the sampling interval such that the + number of samples generated by the modulator is a power of two. + """ + + self._n_samples = int(pulse_spacing/requested_normalized_dt * (n_symbols_per_block + n_guard_symbols)) + T1 = self.n_samples/2*requested_normalized_dt + T0 = -T1 + if make_n_samples_pow2: + self._n_samples = next_pow2(self._n_samples) + t = np.linspace(T0, T1, self.n_samples) + self._sum_pulses = SumOfShiftedWaveforms(pulse_fun, + pulse_spacing, + n_symbols_per_block, + t) + self._normalized_dt = (T1 - T0)/self.n_samples + self._n_symbols_per_block = n_symbols_per_block + + def modulate(self, symbols): + # Docstring is inherited from base class. + nc = np.size(symbols) + assert nc == self.n_symbols_per_block + q_tx = self._sum_pulses.generate_waveform(symbols) + return q_tx, NFSpectrum('none', 'none') + + def demodulate(self, q_rx): + # Docstring is inherited from base class. + symbols = self._sum_pulses.extract_symbols(q_rx) + return symbols, NFSpectrum('none', 'none') diff --git a/Modulators/__init__.py b/Modulators/__init__.py index 7444713..f8a1434 100644 --- a/Modulators/__init__.py +++ b/Modulators/__init__.py @@ -15,9 +15,9 @@ # 02111-1307 USA # # Contributors: -# Sander Wahls (TU Delft) 2019 +# Sander Wahls (TU Delft) 2019, 2021 from Modulators.BaseModulator import BaseModulator from Modulators.ContSpecModulator import ContSpecModulator from Modulators.DiscSpecModulator import DiscSpecModulator -from Modulators.TimeDomainModulator import TimeDomainModulator +from Modulators.TimeDomainPulseShapingModulator import TimeDomainPulseShapingModulator From 726f7b4b2c20f6d4eaf50a7ae4cf8b53662d3bec Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Fri, 3 Sep 2021 11:33:42 +0200 Subject: [PATCH 22/37] Fixed a numpy.VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences --- Links/SMFSplitStep.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Links/SMFSplitStep.py b/Links/SMFSplitStep.py index 531bc76..4376a92 100644 --- a/Links/SMFSplitStep.py +++ b/Links/SMFSplitStep.py @@ -100,6 +100,11 @@ def _ASE_noise_power(self): if self._noise == False: return 0.0 G = 10**(self._gain/10.0) + if isinstance(self._gain, np.ndarray): + assert(len(self._gain) == 1) # no individual loss coeffients per + # span allowed with noise enabled + # at the moment + G = G[0] Fn = 10**(self._noise_figure/10.0) n_sp = (G*Fn - 1.0)/2.0/(G - 1.0) return np.max([0, n_sp * Planck * self._center_frequency * (G - 1)]) From c63c1c7850727854d350bca6c1c06326c757aafc Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Fri, 3 Sep 2021 11:51:23 +0200 Subject: [PATCH 23/37] Registered new components with sphinx, fixed typo in docs, add note to please cite NFDMLab paper if useful --- Documentation/examples.rst | 3 +++ Documentation/getting_started.rst | 2 +- Documentation/index.rst | 2 ++ Documentation/modulators.rst | 4 ++++ Examples/TimeDomainPulseShaping.py | 2 +- 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Documentation/examples.rst b/Documentation/examples.rst index 2d8ba3f..16e0016 100644 --- a/Documentation/examples.rst +++ b/Documentation/examples.rst @@ -12,3 +12,6 @@ Examples .. autoclass:: Examples.GuiEtAl2018 :members: + +.. autoclass:: Examples.TimeDomainPulseShaping + :members: \ No newline at end of file diff --git a/Documentation/getting_started.rst b/Documentation/getting_started.rst index 2115a43..213b7b7 100644 --- a/Documentation/getting_started.rst +++ b/Documentation/getting_started.rst @@ -11,7 +11,7 @@ Users can create a instance of an existing example class in order to perform sim .. code-block:: python import Examples - ex = Example.BuelowArefIdler2016() + ex = Examples.BuelowArefIdler2016() A list of existing examples is provided under :doc:`examples`. diff --git a/Documentation/index.rst b/Documentation/index.rst index e64ace9..78f2be8 100644 --- a/Documentation/index.rst +++ b/Documentation/index.rst @@ -11,6 +11,8 @@ paper: `_ Optical Networking and Communication Conference & Exhibition (OFC), paper M3Z.13, Mar. 2019. +Please consider citing this paper if NFDMLab contributes to your research. + First Steps ----------- diff --git a/Documentation/modulators.rst b/Documentation/modulators.rst index 8939f31..1d93ed9 100644 --- a/Documentation/modulators.rst +++ b/Documentation/modulators.rst @@ -12,5 +12,9 @@ Modulators :special-members: .. autoclass:: Modulators.DiscSpecModulator + :members: + :special-members: + +.. autoclass:: Modulators.TimeDomainPulseShapingModulator :members: :special-members: \ No newline at end of file diff --git a/Examples/TimeDomainPulseShaping.py b/Examples/TimeDomainPulseShaping.py index aed1e36..2aeb265 100644 --- a/Examples/TimeDomainPulseShaping.py +++ b/Examples/TimeDomainPulseShaping.py @@ -28,7 +28,7 @@ from Modulators import TimeDomainPulseShapingModulator, CarrierWaveforms class TimeDomainPulseShaping(BaseExample): - """Convetional time domain pulse shaping with raised cosines and a linear + """Conventional time domain pulse shaping with raised cosines and a linear dispersion compensation filter.""" def __init__(self): From 4993238750d9444f5034a236831a7137a5f9086f Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Thu, 30 Dec 2021 11:04:19 +0100 Subject: [PATCH 24/37] Delete DDFDiscSpecModulator.py --- Modulators/DDFDiscSpecModulator.py | 167 ----------------------------- 1 file changed, 167 deletions(-) delete mode 100644 Modulators/DDFDiscSpecModulator.py diff --git a/Modulators/DDFDiscSpecModulator.py b/Modulators/DDFDiscSpecModulator.py deleted file mode 100644 index 8bd00d4..0000000 --- a/Modulators/DDFDiscSpecModulator.py +++ /dev/null @@ -1,167 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Fri Mar 29 20:30:13 2019 - -@author: vinodbajaj -""" - -# This file is part of NFDMLab. -# -# NFDMLab is free software; you can redistribute it and/or -# modify it under the terms of the version 2 of the GNU General -# Public License as published by the Free Software Foundation. -# -# NFDMLab is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public -# License along with NFDMLab; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -# 02111-1307 USA -# -# Contributors: -# Sander Wahls (TU Delft) 2018 -# Shrinivas Chimmalgi (TU Delft) 2018 - -import numpy as np -import matplotlib.pyplot as plt -from FNFTpy.fnft_nsev_inverse_wrapper import nsev_inverse_wrapper, nsev_inverse_xi_wrapper -from FNFTpy.options_handling import fnft_nsev_inverse_default_options_wrapper -from FNFTpy.fnft_nsev_wrapper import nsev_wrapper -from FNFTpy.options_handling import fnft_nsev_default_options_wrapper -from Modulators import BaseModulator -from Helpers import NFSpectrum -from Helpers import next_pow2 - -class DDFDiscSpecModulator(BaseModulator): - """This modulator embeds symbols in residues of a multi-soliton with fixed - eigenvalue pattern.""" - - def __init__(self, eigenvalues, residues_amplitude, normalized_distance, - T, required_normalized_dt): - """Constructor. - - Parameters - ---------- - eigenvalues : numpy.array(complex) - Vector of eigenvalues used to generate fiber inputs. - residues_amplitude : numpy.array(complex) - Vector of scaling factors. The final residues for the eigenvalue is - obtained by multiplying these factors with the symbols. - normalized_distance : float - Fiber length in normalized units. - T : numpy.array(float) - Vector of length two with T[0]0: - for i in range(0, self.n_symbols_per_block): - dists = np.abs(self._eigenvalues[i] - nfspec.bound_states) - idx = np.argmin(dists) - symbols[i] = phase_shifts[idx]*nfspec.normconsts[idx]/self._residues_amplitude[i] - return symbols, nfspec From abcd0ab8fb95b4c3a83f4127957fadf53bd51fbc Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Thu, 30 Dec 2021 11:05:49 +0100 Subject: [PATCH 25/37] Deleted ContSpecModulator Not required anymore. Now, we use the ContSpecModulator with adjusted normalization length to process using the modified NFT processing. --- .idea/.gitignore | 3 + .idea/NFDMLab.iml | 12 + .../inspectionProfiles/profiles_settings.xml | 6 + .idea/misc.xml | 4 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + Cont_spec_ex_GuiEtAl.py | 8 + Links/DDF_profile.py | 45 +++ Modulators/DDFContSpecModulator.py | 346 ------------------ disc_spec_ex_BuelowAreIdler_DDF.py | 8 + disc_spec_ex_BuelowArefIdler.py | 8 + 11 files changed, 108 insertions(+), 346 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/NFDMLab.iml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 Cont_spec_ex_GuiEtAl.py create mode 100644 Links/DDF_profile.py delete mode 100644 Modulators/DDFContSpecModulator.py create mode 100644 disc_spec_ex_BuelowAreIdler_DDF.py create mode 100644 disc_spec_ex_BuelowArefIdler.py diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/NFDMLab.iml b/.idea/NFDMLab.iml new file mode 100644 index 0000000..8b8c395 --- /dev/null +++ b/.idea/NFDMLab.iml @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..d1e22ec --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..e01d658 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cont_spec_ex_GuiEtAl.py b/Cont_spec_ex_GuiEtAl.py new file mode 100644 index 0000000..64ad57f --- /dev/null +++ b/Cont_spec_ex_GuiEtAl.py @@ -0,0 +1,8 @@ +import Examples +ex = Examples.GuiEtAl2018() +tx_data, rx_data = ex.run(5) # 5 is the number of bursts +ex.evaluate_results(tx_data, rx_data) +from QualityAssessment import BitErrorRatio +ber = BitErrorRatio(ex.constellation) +ber_value, n_err, n_bits = ber.compute(tx_data["symbols"], rx_data["symbols"]) +print("The bit error ratio is", ber_value) diff --git a/Links/DDF_profile.py b/Links/DDF_profile.py new file mode 100644 index 0000000..cc8be04 --- /dev/null +++ b/Links/DDF_profile.py @@ -0,0 +1,45 @@ +import numpy as np +def Get_Beta_Gamma_Profile(alpha, beta2, gamma, dz, nz): + ''' Returns the Beta2 and Gamma profile (vector) ie z dependent values + The function reuqires attenuation parameter and intial value of Beta2(0) and GAMMA(0) + and span length as input.''' + alpha = alpha/2 # convert to field attenuation. + c = 3e8 # light speed m/s + lambda0 = 1.55e-6 # center wavelength + kappa = lambda0**2*1e-6/(2*np.pi*c) + BETA20 = abs(beta2) + GAMMA0 = abs(gamma) + R0 = (BETA20/kappa + 20)/8 # core radius in micro meter + n2 = GAMMA0*(lambda0*np.pi*(R0*1e-6)**2)/(2*np.pi) + #dz = dz + #z = np.arange(0,self.n_steps_per_span)*dz + a = BETA20*R0**2 + Rad_z = np.zeros(nz) + for i in range(0,nz): + p = [8*kappa,-20*kappa,0,-a*np.exp(-2*alpha*dz*i)] + Rad_roots = np.roots(p) + ### select the one with lowest imaginary part , then use it's real part + #Rad_img = abs(Rad_roots.imag) + #j = 0 + #if Rad_imag[j]>=Rad_imag[j+1]: + # j = j+1 + #if Rad_imag[j]>=Rad_imag[j+2]: + # j = j+2 + Rad_z[i] = Rad_roots[0].real + + profile = {} + profile['Rad_z'] = Rad_z + profile['BETA2'] = -kappa*(8*np.array(Rad_z)-20) + profile['GAMMA'] = np.divide((2*np.pi*n2), (lambda0*np.pi*(Rad_z*1e-6)**2)) + profile['D_z'] = np.divide(profile['BETA2'], profile['BETA2'][0]) + profile['R_z'] = np.divide(profile['GAMMA'], profile['GAMMA'][0]) + profile['avg_D_z'] = np.mean(profile['D_z']) + profile['avg_R_z'] = np.mean(profile['R_z']) + + # self._BETA2 = -kappa*(8*np.array(Rad_z)-20) + # self._GAMMA = np.divide((2*np.pi*n2),(lambda0*np.pi*(Rad_z*1e-6)**2)) + # self._D_z = np.divide(self._BETA2,self._BETA2[0]) + # self._R_z = np.divide(self._GAMMA,self._GAMMA[0]) + # self._avg_D_z = np.mean(self._D_z) + # self._avg_R_z = np.mean(self._R_z) + return profile diff --git a/Modulators/DDFContSpecModulator.py b/Modulators/DDFContSpecModulator.py deleted file mode 100644 index a2a036d..0000000 --- a/Modulators/DDFContSpecModulator.py +++ /dev/null @@ -1,346 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Wed Apr 3 09:43:16 2019 - -@author: vinodbajaj -""" - -# This file is part of NFDMLab. -# -# NFDMLab is free software; you can redistribute it and/or -# modify it under the terms of the version 2 of the GNU General -# Public License as published by the Free Software Foundation. -# -# NFDMLab is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public -# License along with NFDMLab; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -# 02111-1307 USA -# -# Contributors: -# Sander Wahls (TU Delft) 2018-2019 -# Shrinivas Chimmalgi (TU Delft) 2018 -import scipy.io -import numpy as np -import matplotlib.pyplot as plt -from FNFTpy.fnft_nsev_inverse_wrapper import nsev_inverse_wrapper, nsev_inverse_xi_wrapper -from FNFTpy.options_handling import fnft_nsev_inverse_default_options_wrapper -from FNFTpy.fnft_nsev_wrapper import nsev_wrapper -from FNFTpy.options_handling import fnft_nsev_default_options_wrapper -from Modulators import BaseModulator -from Helpers import NFSpectrum -from Helpers import next_pow2 - -class DDFContSpecModulator(BaseModulator): - """This modulator embeds symbols in the continuous spectrum using a classic - multi-carrier approach.""" - - def __init__(self, - carrier_waveform_fun, - carrier_spacing, - n_symbols_per_block, - normalized_distance, - T, - required_normalized_dt, - required_dxi, - contspec_type, - percent_precompensation = 0.0, - power_control_factor = 1.0, - use_power_normalization_map = False): - """Constructor. - - Parameters - ---------- - carrier_waveform_fun : function - A function that maps numpy.array(float) to numpy.array(complex). The - inputs of this function are vectors with nonlinear frequencies xi. - The outputs are vectors with the values of the carrier waveforms at - the corresponding xi. See Helpers.CarrierWaveforms for examples. - carrier_spacing : float - Spacing between consequtive carriers in the nonlinear frequency - domain (xi). - n_symbols_per_block : int - Number of carriers. - normalized_distance : float - Length of the fiber link in normalized units. - T : numpy.array(float) - Vector of length two with T[0] required_dxi: - self._M *= 2 # M = 8192 - rv, self._XI = nsev_inverse_xi_wrapper(self._n_samples_new, - self._Tnew[0], - self._Tnew[1], - self._M) - self._dxi = (self._XI[1] - self._XI[0])/(self._M - 1) - - # Generate some time and nonlinear frequency grids for later use. - - self._t = self._T[0] + np.arange(0, self.n_samples)*self.normalized_dt - self._xi = self._XI[0] + np.arange(0, self._M)*self._dxi - - # carrier spacing = 0.6283 - self._carrier_centers = (np.arange(0, n_symbols_per_block)-(n_symbols_per_block-1)/2.0)*carrier_spacing - self._carrier_center_idx = np.zeros(n_symbols_per_block, dtype=int) - '''print("Size of the xi grid is",self._xi.size) - 'print("Size of the CARRIER centers is",self._carrier_centers.size)''' - for n in range(0, n_symbols_per_block): - self._carrier_center_idx[n] = np.argmin(abs(self._xi - self._carrier_centers[n])) - - # Set the right type of continuos spectrum for the NFT routines. - - self._opts_inv = fnft_nsev_inverse_default_options_wrapper() - self._opts_fwd = fnft_nsev_default_options_wrapper() - #self._opts_inv.discretization = self._opts_fwd.discretization - if self._contspec_type == "b": - self._opts_fwd.contspec_type = 1 # b_of_xi - self._opts_inv.contspec_type = 1 # ab - elif self._contspec_type != "b/a": - raise Exception("Unknown contspec_type '"+str(self._contspec_type)+"'") - self._opts_fwd.discspec_type = 3 # skip computation of discrete spectrum - - # Determine interval [xi_min, xi_max] outside of which the carrier - # waveform is effectively zero. This is essential to speed the - # modulation process when the number of carriers is getting larger. - - vals = self._carrier_waveform_fun(self._xi) - tol = 10 * np.finfo(vals[0]).eps * np.max(np.abs(vals)) - idx = np.argwhere(np.abs(vals)>tol) - i1 = idx[0][0] - i2 = idx[-1][0] - self._xi_min = self._xi[i1] - self._xi_max = self._xi[i2] - - def _new_nfspec(self): - """Generates an empty NFSpectrum object with the right contspec_type and - plotting hints.""" - nfspec = NFSpectrum(self._contspec_type, "none") - nfspec.xi = self._xi - nfspec.xi_plot_range = np.array([-1.5, 1.5])*self.n_symbols_per_block/2*self._carrier_spacing - return nfspec - - def modulate(self, symbols): - # Docstring is inherited from base class. - - # Generate a nonlinear Fourier spectrum in which the given symbols are - # embedded. - nc = np.size(symbols) - assert nc == self.n_symbols_per_block - nfspec = self._new_nfspec() - nfspec.cont = np.zeros(self._M, dtype=complex) -# print("XI is",self._XI) -# print("t resolution is",self._t[1]-self._t[0]) -# print("Size of t is",self._t.size) -# print("first element of t is",self._t[0]) -# print("T window is",self._Tnew) - #print("Size of the xi grid is",self._xi.size) - #print("first element of the xi grid is",self._xi[0]) - #print("last element of the xi grid is",self._xi[8191]) - #print("resolution of the xi grid is",self._xi[1]-self._xi[0]) - #print("Size of the carrier centers is",self._carrier_centers.size) - #print("first element of the carrier centers is",self._carrier_centers[0]) - #print("resolution of the carrier centers is",self._carrier_centers[1]-self._carrier_centers[0]) ''' - - - - for n in range(0, nc): - shifted_xi = self._xi - self._carrier_centers[n] - idx = np.logical_and(shifted_xi>=self._xi_min, shifted_xi<=self._xi_max) - - nfspec.cont[idx] = nfspec.cont[idx] + symbols[n]*self._carrier_waveform_fun(shifted_xi[idx]) - - - #plt.xlabel('nonlinear freq') - #plt.ylabel('amplitude') - #plt.title('subcarrier shape') - # xi min and xi max are boundaries of XI - - - - for n in range(0, nc): - i = self._carrier_center_idx[n] - # Apply the power control factor and, if requested, the power - # normalization map - - - nfspec.cont *= self._power_control_factor - if self._use_power_normalization_map: - if self._contspec_type == "b": - raise Exception("Power normalization map currently only implemented for continuous spectra of reflection coefficient type (b/a)") - nfspec.cont = np.sqrt(np.exp(np.abs(nfspec.cont)**2) - 1.0) * np.exp(1j*np.angle(nfspec.cont)) - - # Pre-equalize for the phase change induced by the channel - - nfspec.cont *= np.exp(-2.0j*self._xi**2*self._normalized_distance*0.413*(self._percent_precompensation/100)) - #print('nfspec type is',type(nfspec.cont)) - # Generate corresponding time domain signal on the extended grid - # specified construction - - rdict = nsev_inverse_wrapper(self._M, - nfspec.cont, - self._XI[0], - self._XI[1], - 0, - [], - [], - self._n_samples_new, - self._Tnew[0], - self._Tnew[1], - +1, - self._opts_inv) - if rdict['return_value'] != 0: - raise Exception("FNFT failed") - - # Remove all samples that are not in the time range specified by the - # user. - - q = rdict['q'][ int((self._O-1)*self.n_samples/2) - :int((self._O+1)*self.n_samples/2)] - - return q, nfspec - - def demodulate(self, q): - # Docstring is inherited from base class. - - # Oversample the given time domain signal and compute the continous - # spectrum. - - assert np.size(q) == self.n_samples #1024 - from scipy import signal - DO = self._O * self.n_samples # 4*1024 - qO, tO = signal.resample(q, DO, self._t) - - rdict = nsev_wrapper(DO, - qO, - tO[0], - tO[-1], - self._XI[0], - self._XI[1], - self._M, - 0, - +1, - self._opts_fwd) - if rdict['return_value'] != 0: - raise Exception("FNFT failed") - - nfspec = self._new_nfspec() - if self._contspec_type == "b/a": - nfspec.cont = rdict['cont_ref'] - elif self._contspec_type == "b": - nfspec.cont = rdict['cont_b'] - else: - raise Exception("Unknown contspec_type '"+str(self._contspec_type)+"'") - - # Remove any remaining phase changes due to the channel that have not - # already been removed at the transmitter - - D_z_avg = 0.414 # Normalized dispersion averaged over span - - # The factor ideally should be 0.413 for 80 km and -25.491e-27 starting dispersion, but - # its optimum value changes with step size of split step Fourier method (i.e. depends on accuracy) - # As checked by EVM performance, its value found as 0.4134 for 1000 steps and 0.414 for 500 steps. - nfspec.cont *= np.exp(-2.0j*self._xi**2*self._normalized_distance*D_z_avg - *(1 - self._percent_precompensation/100)) - #for i in range(0,self._M): - # nfspec.cont[i] *= np.exp(+1.0j*2*self._xi[i]*((2.5e-9/4e-10)%(2*np.pi))) - - # Recover the symbols - - - symbols = np.zeros(self.n_symbols_per_block, dtype=complex) - scl = np.abs(self._carrier_waveform_fun(0.0)) * self._power_control_factor - matched_fiter = True - if matched_fiter: - percentage_averaging = 70 # % of carrier spacing. It specifies range of 'xi' to average for symbol detection - xi_avg_range = 0.5*self._carrier_spacing*percentage_averaging/100 # xi range for averaging - idx_diff = int(xi_avg_range/self._dxi) # get the index difference - carrier_shape_filter = self._carrier_waveform_fun(self._xi[int(self._M/2)-idx_diff:int(self._M/2)+idx_diff])# get carrier shape for the filter - for n in range(0, self.n_symbols_per_block): - idx_l = self._carrier_center_idx[n] - idx_diff # lower index of the xi average range; - idx_u = self._carrier_center_idx[n] + idx_diff # upper index of the xi average range; - matched_filtered_data = np.multiply(nfspec.cont[idx_l:idx_u],carrier_shape_filter) - symbols[n] = np.mean(matched_filtered_data)/np.mean(carrier_shape_filter) - if self._use_power_normalization_map: - symbols[n] = np.sqrt(np.log(np.abs(symbols[n])**2 + 1.0)) * np.exp(1j*np.angle(symbols[n])) - symbols[n] /= scl - - else: - for n in range(0, self.n_symbols_per_block): - symbols[n] = nfspec.cont[self._carrier_center_idx[n]] - print('carrier centers',self._carrier_center_idx[n]) - if self._use_power_normalization_map: - symbols[n] = np.sqrt(np.log(np.abs(symbols[n])**2 + 1.0)) * np.exp(1j*np.angle(symbols[n])) - symbols[n] /= scl - - return symbols, nfspec diff --git a/disc_spec_ex_BuelowAreIdler_DDF.py b/disc_spec_ex_BuelowAreIdler_DDF.py new file mode 100644 index 0000000..78913da --- /dev/null +++ b/disc_spec_ex_BuelowAreIdler_DDF.py @@ -0,0 +1,8 @@ +import Examples +ex = Examples.BuelowArefIdler2016_DDF() +tx_data, rx_data = ex.run(5) # 5 is the number of bursts +ex.evaluate_results(tx_data, rx_data) +from QualityAssessment import BitErrorRatio +ber = BitErrorRatio(ex.constellation) +ber_value, n_err, n_bits = ber.compute(tx_data["symbols"], rx_data["symbols"]) +print("The bit error ratio is", ber_value) diff --git a/disc_spec_ex_BuelowArefIdler.py b/disc_spec_ex_BuelowArefIdler.py new file mode 100644 index 0000000..25d1e4e --- /dev/null +++ b/disc_spec_ex_BuelowArefIdler.py @@ -0,0 +1,8 @@ +import Examples +ex = Examples.BuelowArefIdler2016() +tx_data, rx_data = ex.run(5) # 5 is the number of bursts +ex.evaluate_results(tx_data, rx_data) +from QualityAssessment import BitErrorRatio +ber = BitErrorRatio(ex.constellation) +ber_value, n_err, n_bits = ber.compute(tx_data["symbols"], rx_data["symbols"]) +print("The bit error ratio is", ber_value) From 4fac9659dfd67430d5b91cc109687dcd0e842ce2 Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Thu, 30 Dec 2021 11:06:18 +0100 Subject: [PATCH 26/37] DDF modulators are deleted. --- Modulators/__init__.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Modulators/__init__.py b/Modulators/__init__.py index 202c11f..a5debdd 100644 --- a/Modulators/__init__.py +++ b/Modulators/__init__.py @@ -20,5 +20,3 @@ from Modulators.BaseModulator import BaseModulator from Modulators.ContSpecModulator import ContSpecModulator from Modulators.DiscSpecModulator import DiscSpecModulator -from Modulators.DDFDiscSpecModulator import DDFDiscSpecModulator -from Modulators.DDFContSpecModulator import DDFContSpecModulator From 17cc01458895798b6ebbadf982a8dedfc90a2cc3 Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Thu, 30 Dec 2021 11:07:21 +0100 Subject: [PATCH 27/37] Updated DDFssprop DDFssprop now takes power attenuation as input instead of field attenuation. --- Links/_DDFssprop.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Links/_DDFssprop.py b/Links/_DDFssprop.py index 4f49b0f..5bbd14a 100644 --- a/Links/_DDFssprop.py +++ b/Links/_DDFssprop.py @@ -80,7 +80,7 @@ def _DDFssprop(u0,dt,dz,nz,alpha,D,R): nt = np.size(u0) assert nt%2 == 0 w = 2*np.pi*np.hstack((np.arange(0, nt/2), np.arange(-nt/2, 0)))/(dt*nt) - + field_attenuation = alpha/2 u1 = u0 for iz in range(0, nz): beta = D[iz] # get beta_2 value at that location @@ -90,5 +90,5 @@ def _DDFssprop(u0,dt,dz,nz,alpha,D,R): uhalf = np.fft.ifft(halfstep*np.fft.fft(u1)) uv = uhalf*np.exp(1j*gamma*(np.abs(u1)**2*dz)) uv = np.fft.ifft(halfstep*np.fft.fft(uv)) - u1 = uv*np.exp(-alpha*dz) + u1 = uv*np.exp(-field_attenuation*dz) return u1 From 300e7262da531ba9951101ca60eab2f1a171b4b4 Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Thu, 30 Dec 2021 11:08:40 +0100 Subject: [PATCH 28/37] Update DDFSplitStep DDF splitstep is updated to behave similar to SMF split step. Mainly, it is about alpha which was field attenuation earlier, and is changed to power attenuation coefficient. --- Links/DDFSplitStep.py | 59 ++++++++----------------------------------- 1 file changed, 11 insertions(+), 48 deletions(-) diff --git a/Links/DDFSplitStep.py b/Links/DDFSplitStep.py index ee804f4..9a1030b 100644 --- a/Links/DDFSplitStep.py +++ b/Links/DDFSplitStep.py @@ -17,13 +17,13 @@ # Contributors: # Sander Wahls (TU Delft) 2018-2019 # Marius Brehler (TU Dortmund) 2018-2019 +# Marius Brehler 2019 from Links import BaseLink from Links._DDFssprop import _DDFssprop -from Links._ssprop import _ssprop -import matplotlib.pyplot as plt import numpy as np from scipy.constants import Planck +from Links.DDF_profile import Get_Beta_Gamma_Profile class DDFSplitStep(BaseLink): """Simulates a link with one or several single mode dispersion decreasing fiber spans connected by @@ -75,7 +75,7 @@ def __init__(self, dt, dz, nz, self._dt = dt self._dz = dz self._nz = nz - self._alpha = alpha *np.log(10)*0.05 + self._alpha = alpha *np.log(10)*0.1 self._gain = self._dz * self._nz * alpha self._beta2 = beta2 self._gamma = gamma @@ -90,36 +90,7 @@ def __init__(self, dt, dz, nz, self._BETA2 = None self._GAMMA = None self._D_z = None - def _Get_Beta_Gamma_Profile(self): - ''' Returns the Beta2 and Gamma profile (vector) ie z dependent values - The function reuqires attenuation parameter and intial value of Beta2(0) and GAMMA(0) - and span length as input.''' - c = 3e8 # light speed m/s - lambda0 = 1.55e-6 # center wavelength - kappa = lambda0**2*1e-6/(2*np.pi*c) - BETA20 = abs(self._beta2) - GAMMA0 = abs(self._gamma) - R0 = (BETA20/kappa + 20)/8 # core radius in micro meter - n2 = GAMMA0*(lambda0*np.pi*(R0*1e-6)**2)/(2*np.pi) - #dz = self._dz - #z = np.arange(0,self.n_steps_per_span)*dz - a = BETA20*R0**2 - Rad_z = np.zeros(self._nz) - for i in range(0,self._nz): - p = [8*kappa,-20*kappa,0,-a*np.exp(-2*self._alpha*self._dz*i)] - Rad_roots = np.roots(p) - ### select the one with lowest imaginary part , then use it's real part - #Rad_img = abs(Rad_roots.imag) - #j = 0 - #if Rad_imag[j]>=Rad_imag[j+1]: - # j = j+1 - #if Rad_imag[j]>=Rad_imag[j+2]: - # j = j+2 - Rad_z[i] = Rad_roots[0].real - self._BETA2 = -kappa*(8*np.array(Rad_z)-20) - self._GAMMA = np.divide((2*np.pi*n2),(lambda0*np.pi*(Rad_z*1e-6)**2)) - self._D_z = np.divide(self._BETA2,self._BETA2[0]) - + def _ASE_noise_power(self): '''Returns the amplified spontaneous emission (ASE) power using the equations 7.2.11 and 7.2.15 in the 4th edition of "Fiber-Optic @@ -168,15 +139,12 @@ def _ASE_noise_sanity_check(self): def transmit(self, input): # Docstring is inherited from base class. - self._Get_Beta_Gamma_Profile() + profile = Get_Beta_Gamma_Profile(self._alpha, self._beta2, self._gamma, self._dz, self._nz) + self._BETA2 = profile['BETA2'] + self._GAMMA = profile['GAMMA'] + if self._n_spans == 1: - uu = _DDFssprop(input, - self._dt, - self._dz, - self._nz, - self._alpha, - self._BETA2, - self._GAMMA) + uu = _DDFssprop(input, self._dt, self._dz, self._nz, self._alpha, self._BETA2, self._GAMMA) if self._post_boost == True: if self._alpha.size != 1: @@ -188,13 +156,8 @@ def transmit(self, input): else: uu = input for span_i in range(0,self._n_spans): - uu = _DDFssprop(uu, - self._dt, - self._dz, - self._nz, - self._alpha, - self._BETA2, - self._GAMMA) + uu = _DDFssprop(uu, self._dt, self._dz, self._nz, self._alpha, self._BETA2, self._GAMMA) + if self._verbose: print("Finished span",span_i+1) From b81aa250608b1d3fd849177edfa617890ff3827a Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Thu, 30 Dec 2021 11:09:27 +0100 Subject: [PATCH 29/37] Update SMFSplitStep SMFSplitStep now integrates DDF propagation. --- Links/SMFSplitStep.py | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/Links/SMFSplitStep.py b/Links/SMFSplitStep.py index 531bc76..c5b045a 100644 --- a/Links/SMFSplitStep.py +++ b/Links/SMFSplitStep.py @@ -21,6 +21,8 @@ from Links import BaseLink from Links._ssprop import _ssprop +from Links._DDFssprop import _DDFssprop +from Links.DDF_profile import Get_Beta_Gamma_Profile import numpy as np from scipy.constants import Planck @@ -33,7 +35,7 @@ class SMFSplitStep(BaseLink): polarization to the ASE noise are not included. """ - def __init__(self, dt, dz, nz, + def __init__(self, dt, dz, nz, fiber_type='SMF', alpha=0.0, beta2=1.0, gamma=-1.0, verbose=False, n_spans=1, post_boost=False, noise=False, noise_figure=3, @@ -91,6 +93,11 @@ def __init__(self, dt, dz, nz, self._center_frequency = center_frequency self._span_length = nz*dz self._n_spans = n_spans + self._fiber_type = fiber_type + if fiber_type == 'DDF': + self._BETA2 = None + self._GAMMA = None + self._D_z = None def _ASE_noise_power(self): '''Returns the amplified spontaneous emission (ASE) power using the @@ -141,15 +148,18 @@ def _ASE_noise_sanity_check(self): def transmit(self, input): # Docstring is inherited from base class. + if self._fiber_type == 'DDF': + profile = Get_Beta_Gamma_Profile(self._alpha, self._beta2, self._gamma, self._dz, self._nz) + self._BETA2 = profile['BETA2'] + self._GAMMA = profile['GAMMA'] + simulate_fiber_prop = _DDFssprop + disp_nl_profile = (self._BETA2, self._GAMMA) + else: + simulate_fiber_prop = _ssprop + disp_nl_profile = ([0., 0., -self._beta2], -self._gamma) if self._n_spans == 1: - uu = _ssprop(input, - self._dt, - self._dz, - self._nz, - self._alpha, - [0., 0., -self._beta2], - -self._gamma) + uu = simulate_fiber_prop(input, self._dt, self._dz, self._nz, self._alpha, disp_nl_profile[0], disp_nl_profile[1]) if self._post_boost == True: if self._alpha.size != 1: @@ -161,13 +171,8 @@ def transmit(self, input): else: uu = input for span_i in range(0,self._n_spans): - uu = _ssprop(uu, - self._dt, - self._dz, - self._nz, - self._alpha, - [0., 0., -self._beta2], - -self._gamma) + uu = simulate_fiber_prop(uu, self._dt, self._dz, self._nz, self._alpha, disp_nl_profile[0], disp_nl_profile[1] ) + if self._verbose: print("Finished span",span_i+1) From db3270a80ba684a95a656fda570035e630cd84fb Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Thu, 30 Dec 2021 11:09:48 +0100 Subject: [PATCH 30/37] Binary files update --- .../BaseConstellation.cpython-38.pyc | Bin 0 -> 5476 bytes .../MPSKConstellation.cpython-38.pyc | Bin 0 -> 1625 bytes .../QAMConstellation.cpython-38.pyc | Bin 0 -> 1196 bytes .../ReshapedPSKConstellation.cpython-38.pyc | Bin 0 -> 2781 bytes .../ReshapedQAMConstellation.cpython-38.pyc | Bin 0 -> 2805 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 550 bytes Examples/BuelowArefIdler2016.py | 5 ++- Examples/BuelowArefIdler2016_DDF.py | 28 ++++++++------ Examples/GuiEtAl2018.py | 7 +++- Examples/GuiEtAl2018_DDF.py | 36 +++++++++++------- Examples/LeArefBuelow2017.py | 4 ++ .../__pycache__/BaseExample.cpython-38.pyc | Bin 0 -> 11427 bytes .../BuelowArefIdler2016.cpython-38.pyc | Bin 0 -> 2865 bytes .../BuelowArefIdler2016_DDF.cpython-38.pyc | Bin 0 -> 3078 bytes .../__pycache__/GuiEtAl2018.cpython-38.pyc | Bin 0 -> 3174 bytes .../GuiEtAl2018_DDF.cpython-38.pyc | Bin 0 -> 3406 bytes .../LeArefBuelow2017.cpython-38.pyc | Bin 0 -> 4120 bytes Examples/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 542 bytes Filters/__pycache__/BaseFilter.cpython-38.pyc | Bin 0 -> 905 bytes Filters/__pycache__/FFTLowPass.cpython-38.pyc | Bin 0 -> 1764 bytes .../__pycache__/PassThrough.cpython-38.pyc | Bin 0 -> 806 bytes Filters/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 308 bytes Helpers/__pycache__/NFSpectrum.cpython-38.pyc | Bin 0 -> 6586 bytes Helpers/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 1431 bytes Helpers/__pycache__/plot.cpython-38.pyc | Bin 0 -> 1435 bytes Links/__pycache__/BaseLink.cpython-38.pyc | Bin 0 -> 1950 bytes Links/__pycache__/DDFSplitStep.cpython-38.pyc | Bin 0 -> 5165 bytes Links/__pycache__/DDF_profile.cpython-38.pyc | Bin 0 -> 1183 bytes Links/__pycache__/SMFSplitStep.cpython-38.pyc | Bin 0 -> 5525 bytes Links/__pycache__/_DDFssprop.cpython-38.pyc | Bin 0 -> 2470 bytes Links/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 302 bytes Links/__pycache__/_ssprop.cpython-38.pyc | Bin 0 -> 2872 bytes .../__pycache__/BaseModulator.cpython-38.pyc | Bin 0 -> 3791 bytes .../CarrierWaveforms.cpython-38.pyc | Bin 0 -> 1610 bytes .../ContSpecModulator.cpython-38.pyc | Bin 0 -> 8056 bytes .../DiscSpecModulator.cpython-38.pyc | Bin 0 -> 4029 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 352 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 7303 bytes .../__pycache__/BitErrorRatio.cpython-38.pyc | Bin 0 -> 1677 bytes .../ConstellationDiagram.cpython-38.pyc | Bin 0 -> 2502 bytes .../ErrorVectorMagnitude.cpython-38.pyc | Bin 0 -> 1041 bytes .../ModulationEfficiency.cpython-38.pyc | Bin 0 -> 2817 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 475 bytes data_with_change.mat | Bin 0 -> 164104 bytes data_without_change.mat | Bin 0 -> 164104 bytes 45 files changed, 53 insertions(+), 27 deletions(-) create mode 100644 Constellations/__pycache__/BaseConstellation.cpython-38.pyc create mode 100644 Constellations/__pycache__/MPSKConstellation.cpython-38.pyc create mode 100644 Constellations/__pycache__/QAMConstellation.cpython-38.pyc create mode 100644 Constellations/__pycache__/ReshapedPSKConstellation.cpython-38.pyc create mode 100644 Constellations/__pycache__/ReshapedQAMConstellation.cpython-38.pyc create mode 100644 Constellations/__pycache__/__init__.cpython-38.pyc create mode 100644 Examples/__pycache__/BaseExample.cpython-38.pyc create mode 100644 Examples/__pycache__/BuelowArefIdler2016.cpython-38.pyc create mode 100644 Examples/__pycache__/BuelowArefIdler2016_DDF.cpython-38.pyc create mode 100644 Examples/__pycache__/GuiEtAl2018.cpython-38.pyc create mode 100644 Examples/__pycache__/GuiEtAl2018_DDF.cpython-38.pyc create mode 100644 Examples/__pycache__/LeArefBuelow2017.cpython-38.pyc create mode 100644 Examples/__pycache__/__init__.cpython-38.pyc create mode 100644 Filters/__pycache__/BaseFilter.cpython-38.pyc create mode 100644 Filters/__pycache__/FFTLowPass.cpython-38.pyc create mode 100644 Filters/__pycache__/PassThrough.cpython-38.pyc create mode 100644 Filters/__pycache__/__init__.cpython-38.pyc create mode 100644 Helpers/__pycache__/NFSpectrum.cpython-38.pyc create mode 100644 Helpers/__pycache__/__init__.cpython-38.pyc create mode 100644 Helpers/__pycache__/plot.cpython-38.pyc create mode 100644 Links/__pycache__/BaseLink.cpython-38.pyc create mode 100644 Links/__pycache__/DDFSplitStep.cpython-38.pyc create mode 100644 Links/__pycache__/DDF_profile.cpython-38.pyc create mode 100644 Links/__pycache__/SMFSplitStep.cpython-38.pyc create mode 100644 Links/__pycache__/_DDFssprop.cpython-38.pyc create mode 100644 Links/__pycache__/__init__.cpython-38.pyc create mode 100644 Links/__pycache__/_ssprop.cpython-38.pyc create mode 100644 Modulators/__pycache__/BaseModulator.cpython-38.pyc create mode 100644 Modulators/__pycache__/CarrierWaveforms.cpython-38.pyc create mode 100644 Modulators/__pycache__/ContSpecModulator.cpython-38.pyc create mode 100644 Modulators/__pycache__/DiscSpecModulator.cpython-38.pyc create mode 100644 Modulators/__pycache__/__init__.cpython-38.pyc create mode 100644 Normalization/__pycache__/__init__.cpython-38.pyc create mode 100644 QualityAssessment/__pycache__/BitErrorRatio.cpython-38.pyc create mode 100644 QualityAssessment/__pycache__/ConstellationDiagram.cpython-38.pyc create mode 100644 QualityAssessment/__pycache__/ErrorVectorMagnitude.cpython-38.pyc create mode 100644 QualityAssessment/__pycache__/ModulationEfficiency.cpython-38.pyc create mode 100644 QualityAssessment/__pycache__/__init__.cpython-38.pyc create mode 100644 data_with_change.mat create mode 100644 data_without_change.mat diff --git a/Constellations/__pycache__/BaseConstellation.cpython-38.pyc b/Constellations/__pycache__/BaseConstellation.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..76b7f163809507d2849cd931b40807e3c6f70d86 GIT binary patch literal 5476 zcmbtYOK;rB5oVK|hei)SR(|a|K*v}Z8pj@G4I~H_-i2i=vh$F#UORi3wK3qZduC{J z$Z?Znc?2pzAn(!FoUKa$|BC#9Tyo_#r@iJFBtX7uK4wOey-q?woNjh?vAgT5ud4X_ z<>iKf>o2$e>ag>M@ptOXUN$&}i1ahbE(Grq;%tyXlJ4jbi1v@leKtQ0z2Wx_UPZ zqFDOA6MJE>={bGn4Do!?9Z2_?6rH||UD7doS?Juxf7HWG8f_+wwkcTKlD05~^~yM4 z?F!nqsOWYT?W(Bhc1_g9!YiX)7Y(t9-vzNGmhsyVE8-M>7sYvTMx1@c+Dqaiv5F_l z;v9BzAw6@)iR9dJo!87T=qY!7CyID4RNS52PsF3KJK#>lA8c%MjDGd-H?2m4wwkYGZ~}hto(GY@jG4|aYsokbfjb?gLt~uU_9(f74bc(LQZc91KHAN z>B1o8MQwugUHnHYxWz^SP{-`4d0@e$=3W3zqe;tA%9-#rHyn<9`LfAB=if*-hPlGt zygm6S^ny6j$IY`xFecrK2!$Gb(!@9~Uje{<~vzevOl!ImtDg5gp>TMh$Hq@ZcjSj-?8s+`@ET z042bY`kBCWsF=lDKgAovT%AIqqa&EG;8 zp96Axv4fZ8KBsE1l_J{Kn83S8}OkfV!yzNDlt(TNQ#k{z;rGsaRAGqwbK zZSGq!B3WV{n489v^ZPcoQAt>0UotKkiIv#5jOSMpqA<&O0N;D0oFMWY1QamNi;}v$ zKzOdk8`x-eAj9meCw^5LsRXSKOId6pU!}_vFL8oLJYDvsYL>G|Y)YQ_3T9mXYaMp7 zz(=zATgv&f$_qX&2Wi3vf&#Jit_SDSYyco|Uj}{jLAJ^9m9FHqMJbPH;{^mn2pl~&QG6+^y!p2 zq!Vuv+BMSufJT9I!Je6l6V)dS`M>#{*)uO04>A7KDrEF8Bm_IeDA?5k%bIaTkSAyc z)?9ma-^%nP)+N+Cg|5U*tfB|*{W_uArn2|14J-K_nADG`MPO>$8FUCSsZFXhZjJ(`PCQ4WL&#-t zSzcjh*%i>@r|hJpwV1FqhZYOdOSD`;hq9Xk#M#7r%3|}4)d%MZN)T*9&1+jn)BD)e z!$G*4<$QD5&9p*_LlmV{rj_I{W8n{vswG1Na<|j-`ml314E^#k8E?bibtWkCl+2?$ zWI1HVNE*E!f279pIx3`bgfK5(!U1)1rpFNqdwdJ27)qm3=exjA3T)}QWtY}~Jay!U zvF~+@HxE#A`I4`Nfj^cmNQKS9yRe502$#frL$35iM`mDD0Z^lB3P0`r#9)% z@~w)F?CLBYBL&kubCpES&Do&?&ZCb6M}cG0tNsZ23^b?eY>Ao7X6C<7%*-I{5=M%P zGQI`;Yj*hu8ek9LqYrHKS>KHDT|wt%$j@TrYHx}NYOVrDhwK1y7Y)rJk9Bmdf-%4~ zSyY9tdQuU@JX%j;^^lhCSD~kdv4z<&JZmJ@A=45VeY2QUlbY^X&wqjZP_x_xL)Zrv zvcoO?Hq1!u1Zzoy~OKOvvEXAx25YOFbSunQoZ6ivnJ>MIRMOuBKhnn>) z(`3Vx1sT~=3{IJ9+wpMpnZDmV>LCkon@NW(`zHuTct18tdi1^fnKfm zsxDLO$8@7l6Y3h>envM+6lQKz@+#tU3Lg=rA9ZFoOxCF4pMER#O8s2@LVdMyPRlhL zspWKCMJKPw(bI|sR7N#t9$=+jJlTlAoDr3Q85`B^OCMQ(qzhE7XJ!q0NxJr~-^zCV QC1p_&QO9XUe6wW!2irH9T>t<8 literal 0 HcmV?d00001 diff --git a/Constellations/__pycache__/MPSKConstellation.cpython-38.pyc b/Constellations/__pycache__/MPSKConstellation.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..785d8c8b955b274367e3f9c1960585b7fe983f9f GIT binary patch literal 1625 zcmZ`(&2HO95Z+yqA|=aCT&QW21_loaP#q!#Mo)#|x{lzaXk)lFauEuc~a*sLm4eUb?z4itA0)2u#73e9q9*dqjOUJfUCnL;ox%AqWw13>$`#EPqI`h9>;--vJ^I3OB=l?7>OVWjmx4~@UjCc?}6b}3Vp(G-(odp zG5ZwvAut4U_4@OJ!*7>3r@IGZ2<*#oG*teNyol0~|2d%Aev+}tMJ65pnDKVTSE=m@t^i9bU#t0eNVLT3cjVx+|9gjsL~dX7s(?exL& zsW~Yv2ELy_F)vZd0aOjt1qS%d@yv!O6{B*P{l=OZgjX6{FCF85j?Ws(0W_I`=g~@u zOM6HvG=a!XwQBO2lOB4xIdcKAR@O@QE-ImVZ^+DpYPzSW^m=FxnI1JumwC+li44gW zI{uB-OLTVY9Nj^{b(?um@5b~`sI?N4P-Vg&f(AZR)(;oE+-WrYcXALwce&z1UTr

+lS~^1T+@>nYN`#=dpJA#XM?!Bs}o0%)igN<1FFbS5ca= zZZ8Wb)yQ_AM(WvQ(B0qbJ^wBkbeBE=*}d^ibn-$sw&F;tFiZ07O_QOCQA4ECY3HU3 zrBNCwN;_L|76!50hQ%ep{}MT-Tue>4@t(4dQ$p47d{J zTheyOqgdNtDYJH_Tx3$OP{7b6P$D|f&IKj7rGY4@ z;JMJYjHZC5DGXb?4zD~OYMk_2@0*T(9VUgUF;{_hQec+aeg*$e*WoHEXqYjsanyHJ zl2fU~buYxK$=$oG%Y9SCPr;y-HEiPz@&LE+ZG0c>8vY1x;OV^&7ZvWuy|!b>OwN?* z2Bp>QWY$eek0(L=?!={(Wg(^FA%t4UrkW9xk}#L{T~KKj9=1uf1DB(dPLjM3w_sbZ uEphUyvG!Hn$#71%XyA2O3dTTp}UMS-Z_v`$%msB+>TN zUilBrkzc_d;1~FW#HlyVoEUGKkhBuaYGyt5%r}o6?}w$O3Ih7p_|Den5c+AAY4Sj6 z0IN+99B~|>7KXPIIkDSvF*-!t<=!>oo^Y?+mdEi4s`G&IBvPz;qEm8NY6r=N5`*^W{?Ia#~I_2=}Zd3;%*e`j0+N{ zJR5}~o8VF-!E|`C8G@yVMWPjXkX&s$a3PB^`LHMf?*XeD5E`B19Oq6IX-M&llOyVC zk2^WOa`w^3gUgZT6xzNCD&E1#L1W^K_pN!R!TAyZ{a zL275BXXYu3x*gUQ+W3+sXTp>x8*a>c#$|0~=FcSS(;(%-EYNnSY0R_?d&X1YKp3AU z&`OwBPl@Q%;Mm~A;LzanuSl*yX1@>XoirBpPhpbs`hFT@#W2 zK9jJj-yi<%Zr_wC4HJk@*8x^7+o~6;cp07@ybf}(_P}fG(S!uS-KI*ZsZd(n8oOSk z^de)?-ARd3o(7c4H2^QtpAz=MN_$^yS<3z@%Gh&?9f0?fEbjIt{8f-yo~=gOJ73sM Vp;-`VAx(LAl+DX3Xm_}a&L0*BIQ0Mk literal 0 HcmV?d00001 diff --git a/Constellations/__pycache__/ReshapedPSKConstellation.cpython-38.pyc b/Constellations/__pycache__/ReshapedPSKConstellation.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..80142d7a0ea737daafabe95535dc67bc2b7fd752 GIT binary patch literal 2781 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 literal 0 HcmV?d00001 diff --git a/Examples/__pycache__/LeArefBuelow2017.cpython-38.pyc b/Examples/__pycache__/LeArefBuelow2017.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f5b6d9b0319c33e0d375e2b6059fa9a443031011 GIT binary patch literal 4120 zcmb_fOKcp+5uMNexLhumA5kCD)>yJFtxb{oQkE=JA6k^+P_zOvaIlxb?Dp*LNb^(o ztV9w^ATR}3J_N`m29gt*n{o(zbpj)~)&X{K`pAS)$%l zS9Mo+byrsxzunhY)bRVx`mdee9M`lzQ)BNhgT^(GxB_4r(|xU`tFIB5wTzz1vb8K^ zhMx=awY;v~(wNCIk2RKY^J`|U!1M*Jn%#s2ZN93@-W!f^Z!S4O?7IyT?)@2PTmuOU z;Ht@L2GeUMGnn~Ut7TY*W%13j9E|2=WzN0M-R6ys>qn2yo<4KYslmiz+Y^?XPGR{` zBwT;l;%J3NYAC$wgwu<3GmpdR@a>+p1SIPR%X(9+cO zj#UTy$YU4|)w#2`Zm+<1Y(PgKOfH;$iMC~D_u=0}Lq}Y0|A;q1Ga&IHAko%!rnmGB zy{p*jPF;892cD zfrG399AX2&VKxXnz=nV$Y#4Y@jXlH;fIrMefJYRLcD41f4UKLtF3`dG)~T7Xzx`?I zm8-3Hrau4a7faorZAofZrMYltw)OLmfB(s+-G9BYS%QNtkaq2p&#rBrOj}=#efHU3 zZY*xnHf&x4cpC0s>(lF(|1j{YOVh0%{O;wy_D;Moy(Kw3EzNITzq46MM+5QOJPVj5 z(|2G0$^hP~B1^H8v~9#CcUrE@ zhLI;+SyCUn>9soCl|wM8qAN98_oK#r*#n`g)vG=t1jHbc*Sov{bH5ZOyhJN1)UU(ln0-X-6$&h?Vi*d(5#bIqVkA4IG z@!-YPf=>2&*I(-9H}usW#nap`qgCt{!JQb@*x;zPO1m+pxKg*!C2O><6WyL}5qo@+ z4YA>tLHpe8?UvX9=&GPsK(DT0tUZo7NBmR4#A@HxoRiRi)($b{u-G#pqs=+DrWM&1~0iF8h_ufR_lMbyQGtTVI z3N`cY!Z*=<;10g~G%Lq&HFwj8)g*g~6-J3AI&mCvlq371pH`Oz4S~cl06kS*?TLQR z7}XHn+PcZmMr4C%_ZPIM#{4om((k(pHSL$x45w!R$pBBStk_$RE#=gP7q+B{O6sXD zjU}&Y$OGH?#%1s8>oaTMtIqe<4 zKtL&rUj#fg`6c3CC)n>DzYN*OAVKj^)H8bKOT(;uL5GS1O;F-B?nJDES0Lh>1@uub ztfu|(7u(F$6|+9+U_c44@j~o-$pW6TSqO@=vx{@lqq~j}o5*Kc^(sGv4?j(CilCo> z-da9LkRDxtdM*t|6ZIA!hDMg{?XyyELoGiS3E>ODEz%y{7kgsj**N8AsF&%5iOe7j z+X#;bJmD`W%h!c)In{kuGj;l7hv&CX!CM^%&!Q)PsMx>`k*FqL|yYV+jkj}z9k?`lp z*eHRDg5$)!NbnLs7VTjB5M_4G3-1elmE^t5-C3yY+3mBlQiLl@_yICR?-M^raG2l- z!3aQRZTwSlU*=~$9~Fz>*GTg+X^J+U@1_#-6R7|%cq*t4q@k$dKt+T)Bt203S*vW{ zT&lilBV>X6bWq@@z7K70CM|JGQ`;xpDyroOl~5i>zr90HMD57gl9%p>!4he(mDB|) zBsl$Fsqz4)Yxx04JO*f)qF&N-bYJvCdgk+DZmacWE=QV*KB$*<;>t!LGXfqm6O=81 zBPnTVbVfJO+faY1{f}Ik#+Q^P?UDA{;s2hilwf~l?0==8`D%_zn9xB*XX7N&2q3;> z+YdU9zop6BHj5gz&Bx)Dax%?*%6kQr1vynE6kZ|+DCn8NLR-nIJt#l%qAaJEcL3Kb x_M^o2>ZqZJlew+08T$#ph0(IGU3YQH3d+oXniH8g`kf>RD>68Tve7#@Q-$bbpRaRB0CA0Uy!kiwY5kjogw$OvLH%lFM%d9Xfod7c1kQx zb*)IuEyzg)a)q5rQ*-jm9g9-aJX3N~i;N5m&49uJKB*ufh$K+V9Hi5|G}E=jF$c)C z0CL5#=!|!9aRW;6BdG)l`DyY*i9qcv)*1` zrXyKh#0rv9fNRC!;377VG6}dcBojc6FJcEuuVg6V08(J$m!*D2er~FMS!P~-ioQ#J za%paAUP-aOduEA8X_CI5n~SecVv;`0JpK6i%)HE!_;|g7%3B;Zx%nxjIjMFcK+}pr JiGha^1_4^}kR$*A literal 0 HcmV?d00001 diff --git a/Filters/__pycache__/BaseFilter.cpython-38.pyc b/Filters/__pycache__/BaseFilter.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3708f94bf043e48dc78c4af5fc5d048e14d5eab6 GIT binary patch literal 905 zcmbtS&2H2%5VoCU2`gHGgoK1R_y#LMa<35D{?KxO6#~H_7t0%a*+_OAY^P#-ZC{3` z;01Vsh#MzfffM8GHVxv)NHg;M^&aPWzWiueqPNW@o2#1dadMIy+1G)sQL7idPh=8cOAj23A&V2NL!stL08sjTKTLbzz2yR&&<;`=}z8q%VAP!-4J><$PlXPruFoI)~#+f8Ml^io|Hy6N`9FQMFH`nEIrI- zR)4edQ0hjs@1$>S{SW7W^?yXvueqnCsXff>z>~WL!y@}pvVmyvHC#S+QmwkA&)EbP z*_+=7`PyiipI5aJ`H3l8Eo<-cv&z3}m-*uK|!?QQpRdH0b|{iF>OSv!ut+mpIfeWnOlqrQ!-}5&u4F6H+a*kO+zgF0uMml w1Wbx!LU11gmWVG)8~W%Wx};xlN9v|87yI4OP;-!GM)lbr6kQ7E7I61gNkp3JL1O&aLEV{eon&ir{ zAotQ-`wq#mPth0X6YRC8zCuqO?n<)Ms)rEZ>?}F+k(_U4ez<+Ri(veI_y;@cAoQpI z*&Gr49Ky5*AUNVULt_lzAPe$v9Afkw@sLOF5RXLoOE``={thMaUto9`NuT0<4I~@Qry3Fxyr4`1t!1efg4EJ5NCA7od@e z1Z*PnA``h#PH<9Msm_R-3IYy;Gz9e3@VY(oF<~L;8@VdVr4W~L6!Plu!9 zXWyQ%(_zDp9p1!uP+V0VN~MyH($9Ucd?KJu3(xmAtX3AOkLhZ(K=Iafj88yu=p4Vt z3;Y3J2M)at76E9XUp)^O;R2mQ()=1+N3a(!q7T5xdF!X>I_6-xh#xopZSMtX5V8sm zdnIx`6P8Tn*_5mUO;Vi~TKOl!qRt5;R-P%AeKd_y6{Q1eRGAl717-}nI`H6`c$;i- z_@nS?LiB_H*|N{2bxb+pWG)ETIg^T5=KUObs}%c(GeG+82TozOLw&u$5sZe}clRp!VgyGcr)frZgC$)OaSCM%8(05{nP z#4F)Sqi+0`xxBv8M?Bq^8r)3ya|>adgx9j>!c8FSOBzuaVSyZ=Wm0zp!PlqxThE}j zq*gwd9j-QQ6wyw2 zE||$A^rL?Vew*qkn+b9%gd(O+WIk9Q2R#$>vsEo6ohnd86;37&ieAn|)dtlkyotf4 z3fZYOzSycr!bZ|EzWS=Tj@>u_FFXPlu!km8g_6Im`$8k2-=nJ4Q1J!mb`J#F-@{$} zDZYa{cz$=I)*HJ~((;W#0o#;TT}pG!%gpP0lwOo9Tkfz8AhBZ3ut5 z2|;`Y)B0<7a1?ZI)oV#y#dQLjTd+~JmmSLZK2sZP0M)qlTRM-M+kA7+L;A3E@Luo_ Db;8z9 literal 0 HcmV?d00001 diff --git a/Filters/__pycache__/PassThrough.cpython-38.pyc b/Filters/__pycache__/PassThrough.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..019c3d7450add1e97ad397af37452536e7867d19 GIT binary patch literal 806 zcmah`F^|(Q6t~Otx2cb9VSvFB zq|km*iK-wCAUFpsVBsxbArEeXG-U8Sn2mngX|R~VHael2pB1IyDs#PIAiJ5{)DLap z9ydh{rU64NxCIs~bXe`(3##=pSF%~>+owxaTots$D-Ze@Gs!g;(%>woV$HG1IW9!q z7_5u6pkti3STt3=iK$X_bDYVlF8SwKKjaWU^2|tuPB^ZpnbmlaR03L#l?Dzm2I!sz6@Ft3}-WN~)-_6@yEcAh1J z_lfIGd#8JvN6upJ{d9Y8IMN+2?8{CF5!OyZ+K7-!vZi$FBSJnkwA`JH31KoLL{0YU z4m#D?^#WTSI5MYy0z>3G7JlSyX_2Vg@lLC9g8caa#oyaOwUZZ}ikJ5fct_|D4SB@X literal 0 HcmV?d00001 diff --git a/Filters/__pycache__/__init__.cpython-38.pyc b/Filters/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..596810a0fc74e4de9221bf3856226b2226623e8b GIT binary patch literal 308 zcmWIL<>g`kg8dF>5-&uMgTn$Po)3= literal 0 HcmV?d00001 diff --git a/Helpers/__pycache__/NFSpectrum.cpython-38.pyc b/Helpers/__pycache__/NFSpectrum.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..495adcdb46bbeb0cf258be6010ffe470a22b8775 GIT binary patch literal 6586 zcmds5TaVku73NTsL}_onYV;2{oVCuljHYbNAh0i`{Aw^Y;!k`mDfpPi0HZj z??@iWctc57@Xmv>Xe0d3(^_)G-tc4IFLvI%#>BoIy% zyQHO(0#2GZP1N;*>AdxDo)2G>-nI;$xqc#}TpvNG`ud}9Bs`mMp%mEO6OhH%Ivef> zEgmWWK=q4-xB(!s)@i}yic7b_-xc%fId_y$z07|6A&%hkZE3 z9L&(?50!LaqHCO>73+gD?0Ran^Nk(C8XbSTWIKb~P|kG=DDRLN`rfec*&J$|3CEwZ-|e#kbK0YtZUSe1dSSnKqLc< zMvbcDHEk5lxA2;oe|gUQMTag$QPUrl>AH<88sau#f<39JQxi5Z93!a3?1k|=HZg^X z+V>|WYRzeFT-md>jeY7_EtPAfa=lcxOXWtX+!Pgx`P}yaxZBf!AXMx8v%rfz*Z0O0 zbNPNbexjX$oeFAlJK;0Q<*+LUGa@Rmu5DE;okEh_FX^D5#7*~I<@SMYb%dTkQUw{! zCAfW^(fQS)ZfhTb0xzk{nk+aw+SyDrx~n8(S2Rs6`Yv zTMLQ|nl`_nCH_LGP^ku0n86^e>S!`GhhA#YTGGXGywz^b!lQI)E{;ggl{%JOGbT`l zaAnht5`hepL}wW=ZO1`$7CX*;R7DqXGZt-Tn>D8I<|5O7c#hAO$Z9%j4y*+H0<1sA zOKj``e2>k20Gh?iJ5=YX$Ks9~IZ%xb4-PN(f}_Xhtq$@8Clk}h&`9S= z>=d)GWSfnDP+sl{<2L8kPirU5>dkrw1+0tQIg3rbW^14An^-m5LmEY^MX4sRWgpki zBfUD0t%^Eh&&K99si&}@jjD?z%($=f8FG+_bYQSV9EuCdslZ$B8+Qn=-gje)e|)dA z?hdh~vtXjwTk!Mz=Twg*Naz4dM@xt{XZt79CS+w<5#oedCZoqwvPAJr-VrQ;tSkbR z^eAVN*C>w2+sNq)A;nDk>+01nhu+n(d37?buc6qQT-|InQi~>{PC?-rU@C4WQm65n zHZ#1q9qDJ~kx%7pJ6uGMSNZ-R;A;RKhRkV-q;*I@$p#|Q?HFAn+E2#9Io4#WZ2WEs zDMz~hPY`0yAq2UKFZtR4TR|cV$`U-H69g`$gz-Cy67@ZpW^7;mGE>92rjbHGQQt>P z2`5$ELnB39qNdAq(^N^=Q18)AQ{{{=&(0fIOL&QX^N6^7A|mvFlQHpIh$7aA*&gvi zWuKvBWhHP%C1(%Km6|=!gHi7~`qq%8TjvISTdKXnu`@MNl^9t$~bX`qY(>m~P z9sE0iq{WtGz)t<>co;ZQz_CMU;1n=?>y9e zU=e`Gl^syLzu8*K5SV#2%3IYL)Tb6@uO$SYqhYJmQW^Mh+aib8wnn&T6m=XfmozTP zD#TNNz~G1o(O9?)j%vcIt>O<}?ZRPXPKVs>(rl+cibx7q_D{SB_MBjdv%n{|IybRI z5%u+=pDAjn{~D5)vMqpFzs9VV_mP%Qs#^xF1Y6=mm~iHVXNPR_ z2a6|VUF$eR@MfW_3KNhqj`6Z%#x9~~_*5ka66b1y()QvsCX&yjBKYY5K%XPfc~Ie& zb?T3#579C2dE1GSZ@m)(x$9sk+;%4n{X#N1Z208|DuG{iIeO_2Aj5=f#^$G~P7g-& z1|TvP-g(@hbSEo6=*)#Jop!Wt(8(-zJ|7TE&FnNWgBrWg}n&QyE`&!uTUUU zsz|Fkz-`x~q(fS4SGK#owoSt*c2k_bbcJp$l50oFKwAXCG|&TANLfKz&n=%;bz>Gm zH-cPd)UIGUsTqw^hI~ZJo%e=n9a8>`EBY8WW7PuF*!r@WWm-rhY%ougondECvQ6Tl zWz9y^3+-&Ya)^&wY%~9_+}#9Yrbti%VB2wUGUN0^k@!?zbeyM&>*pl8Yv5F5_CUFWL3xDg3SKKCN0>4U+y~ nq{Ghk=@NnlBW;yh_EcnCJ>j9eI5D2xCXu*c$zFT>`SbXjnSHmi5)x?N4}S6=4MKkT#bOI!aRA*i z7z7bCAt~)sN<<)PUr0X?b#Vp0HF5O~X*GTWinM4E_72}nWb90y#x-xNnxEI9KZ0)G z!{Er2OzA~nw;Y|4qu{6}=muCe$OZjOUEN(N_oo41Ud%8-i4isU!kG$PVZo6)|3(RU zn157>;^vGEa~(UCY39b28}ys)F5|& z86s5kRH8M)nadbwCp^g!z?nOnNG7CFCsMGX$x>t)a4VxY;nsFSG`!*lc$_pAmv?3j zm)?*2l~ZW&UX=IUXBHgNBQ(!x0gm(~`)lcPqf6?jY=|F8=b3H;e|!FhR&|IgD;M3t zBRz0aJTWFSmZ?&Kxg=gIojEp;Qln^@Vaj@?Dj`sBRg!w(qA+akJ>GP_bs2_BS`5QX z|MRtK|CU{d%K2s~Ib8eC1+A+^1Gv1u#gcyrzN1)*%1}g6(Tq@4n1#wJZ5`LKEE<(g zty)n7srpMZ`TODA>9552;`wv0JI+$sJyALn-N#v+r&2rHeX88Ee9-M3K7RRv54z7} zGJ$A!qeyAxqNp=DE3RQCN)f?*>%Jtg7}r9&Mz7N?YL>wkLn64An+LIq0n`BlwNJyBRLc;q*KF!$3NDc|;YeF*!oIK8X z!Z4pl0M< zd6G!$JhdEE{)2s(nUw8rZ|gSG`#bHs?cH{#(`hrC$73w?8Ox=2d;5q-`){u+2Cxn5_RbE(guczamP5c>n+a literal 0 HcmV?d00001 diff --git a/Helpers/__pycache__/plot.cpython-38.pyc b/Helpers/__pycache__/plot.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0b91dd1d9ddddb965686c218accdbe7ed3985f3b GIT binary patch literal 1435 zcmZ`(PjAyO6t@#Q$+~raU`QJhqK6_83DL`r2!WW!grJuRkfupf8fRNrnskl}Wphv4 zXW)psBcFl;SM~*b<$(4TcH%v!>k1OC{Qfz9e*b=bTd&s$tnbf$Mn8N)exWkGTu`3D zF4uqvB4|dsblags%n4VpGrH{xF1$0c&4e!k;9S&2P0YfHC+HRl=P%(VX>Y^~`FL^Q zxL?37-vQCCoKs{(&&iMhcQib;Oq8qXDLsehz{Z4gPOZd+JC;0cZE(A-*~mX9lxVgE zfmSBo`OYuYA==^G04C-_u7ARj5&G?vzJTo$PcYbs)PZ?}x)?7#O#gDdX*> z`+b=h*2@ZI+^AC;Z;(ZuBs1RUigT5!48AB2iccXoR2h0Cv7W}ylTW+gz_>uZ5xEG) ztF_ia(M?(()4UL^^&;+flU$Xpm#Nz9cUtX@^*67hPHQvCdWkGs`0V4}XXBx;d$a-` z%4HygG8)ijTC+ctnImt3J;q*LFO(+*egp~@cU)9ws;KUysH`d_mM(PL(t$e?y@Xt1 z=cI=OMuf-!38ooB(@?Ho8*H8xSpu7xsbVks>H(-FUL+X0Q={@W$T5a^z3>6tb|zkd zpok`?RJ)ojlS4A(isD>ozKSOl`FJ+y$Q9I11f5I?9r3>sy5h~9LE1d7Y5CAfp$@$& zpPTe-W;5_~m7ZsuL29V9+V)HyM^dKH8?!K$cFSHAr#ZAa6@!11uNo(@_$8K!&_%j3 zZkt>M{gMLte+jfo}IC2oqRYQgSuO{mbN;qDI#o(hFvPmldjfDh|8ZS%slU&GI_%ig2 zuLip!QjzgxB}lwtxP4E~qt68-h`*`1tlPQ7cQ8o&Ybz076||bPX}h#Y=PlF#UQIX) z=|5HScC*mx`pUx$y3bV0%Xpu J)dN2W{s3<8FgpMM literal 0 HcmV?d00001 diff --git a/Links/__pycache__/BaseLink.cpython-38.pyc b/Links/__pycache__/BaseLink.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8f3bfabc3dc417b64f525b06211c4da27edca26f GIT binary patch literal 1950 zcmcgtF^}6e6ecCv*7PXCStL4jF==y-N;FhpSOENCz(hEz-7HiBw4H z8XvOd_Wp%tykF5j(7A)wPT4wl>U)%|x|gAyN`Ma(`QGFA-uoW){OD*%VEl6OEB`bm zEkE$dwgk~;i)U6+h{RQ@o;~H@NojuJ^~@hf(o(-1YLwO5`hS>$ZNXj!8#H>zwXO{ z=!=10$08O7S7dP@hH&v=9Y5w)o@eR@{u?C(KUkV`YuQR0w#t^$Omyk8l;xmfr|dM( z{j$-Lmf4N2a>16832CwmDcH*BV#r`*ZaVY}^#8X(R#Z86lDQ2`!<8*EYcs8wUNPR> z$ud<|4m6Ce)*INh;2SQ}EAP+aVzva^`>fPpz09{P)k?|K0fOb0@uJML71*>8PSqB0 zTh~U{qRv1|7E<9=lI`-oL*eTkIp^T{W73is0AygW4gGt zAJH|fBP;XOH8BHl^5=uuMi+8+ktr=^XF9Dgt9JG@b6-`<+5F41uh02%hD5Nl9p$Fw zwm#fLevFU;5G1_3+bQiS{Kr5(nO6l67Xv|KixFUb8`>a|F`Rf;4by`geH4v=-X`^+ z&ENz+c9=#TruH!PU_k>1uDitITOcT;HQ+zN=ChXbzMMOH{R`<4vB%mF3LEMhZaAK&Y&&HoBcR}P+&rWp|2+!y*fFv$P9 z=ds@;K-@k}?laJ77%;lL-7#Qy`VIxqrSGkeJp~;3nZgWS(Kl2CcgP!h4?8Zrhdme0 z*PsOBk1yULea2B8sIm?V{<03?HLCl`nimB(hj4fk;7Gwk051|Z?IUvrN)1qY`C$k2 zrq+Bstm7n6K%^w8he=XsQRTS4l_W1Jp0_81BoR7=?YMnvw&nm);6KoWD2`CvL4hy8 zp1=k&*a08Fv?CBPjYa_-M(w=qPse=>GBp^v_gMElE6n@2f%bbo{T045<3|nR&+meU KMYR!)gTDaF69S$9 literal 0 HcmV?d00001 diff --git a/Links/__pycache__/DDFSplitStep.cpython-38.pyc b/Links/__pycache__/DDFSplitStep.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..513c3bcaeb4907c4e0970c6a001fd7e459647dbd GIT binary patch literal 5165 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 KBZ1?oS^o#uQ*Iyt literal 0 HcmV?d00001 diff --git a/Links/__pycache__/DDF_profile.cpython-38.pyc b/Links/__pycache__/DDF_profile.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7e4dcbeba48679459db028d3e6f30d96a70803e7 GIT binary patch literal 1183 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 aZphgA#vB&(TWv<_-<#sis=a2fIsXE)QR0aJ literal 0 HcmV?d00001 diff --git a/Links/__pycache__/__init__.cpython-38.pyc b/Links/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cf342379258789ef915eef4e8a83618d08caa832 GIT binary patch literal 302 zcmWIL<>g`kf>RD>5}lbD7#@Q-$bbpRaRB0C4Iq)ikiwY5kjogw$OvLH4-dD%cVPq43Ba6wLHNpMMO0f_J7g5djU zvPJQM6c+2jv=o8tjuL_hBI_*zIutH}Y)BCcP+}!R5i5`a6Ti&#GxBp&^~*Bz@>BF( z@{>z*Q}arS_1!Z|JW7-F{oGu9eG-%O!B*(U$7kkcmc+;F6;$5hu*uC&Da}c>69F1k L3^JC7k%tignbu5O literal 0 HcmV?d00001 diff --git a/Links/__pycache__/_ssprop.cpython-38.pyc b/Links/__pycache__/_ssprop.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..92326670f9fa91d596d73703bfb7fbfbde9065f7 GIT binary patch literal 2872 zcmbVOO>f-B8Rl@g`dDdYSr(i)?qOiS>8`Qbm5incj5@Vj%T9sV79yzzRM-YZ&Mqe+ zXK2n)Yb|DhBJQDw9{LlkV}C#|z4Tt>&@-sh-ayWK)Fo9g4h!)n!0hk;Ouqc>AHV+FN716)oL!gjw!VLkTYXJDPkXP4@lMHf z(JaQ~GJG8Q>OJj$PGX|H&l>AiBEa2@eJgR*JN50%EG{9gtB^nShyE#9_Y5(M>)usw z+KT<@lCv9}lDKiyI2#*`?|6mLb8+yBd`|RyY;6(KJSDIEd*0K|blEJ$P17{XS3Fp3 zndM7(BaVgFi)Q&0{@(SbOD}$BylES&t=BCV`--(>8rH_|$x}MLU>fin6yKcl>=)md zz+AZE)p1W(Mau+dV`t08ylhs@(mS5<*WKw(iCI~<=v;Ij=3SJ3LX;P+Y&>V?96oK+ z#!1N~i&fi3WXJE=6MSoD-J7n>B3^?%jQ@+THAt=0v6z)w>a&&C7tESzzYD9_u`~F( z>Y0TjoVEDEtWDblqZj`WfgPJ=Gk@e`=cZnb=goqdANrTQSH#KOH0`PP;;*J{b0&N+ z=XrYxS9Dm4NOLKulIby1R40rIDN-(2SkT=lDP+vWh!vE*C_^VXltqi;%F9$Sninz; zNA(UDG!#_knnz(uhx`y~rGmOMtMZiV4W(J`)bGo(;1I}|PGsC~xy3!WAIdb9W2?o6 zLl$X8!-7#RqO^=zjDfS3$(W_L=%|ooPLEkCBd$-JjhL&P70Mo}^Wc~Fx;>ikQ36l0 zi1B>8-J_{gs)v|ks#rSQ$dgbpX9L#Dv_4d46lPi2odvkRd-uV19c#HoZ&Rf#0G)EP z7wcX;>4`}%Okt;Y$aI+ZYF%gYe-`g$;Y+Sr(f$9_dRnI4I>KK(+S%Wm1-nT%sM2Af zEwDq*(wK&sWdxwo&M|P7Gmo)`sOA}i{EVx3f~E6J+a1LxHCV##iZZiw%c0XkB1x*l zBi5rF_e4vLjJQqX$qg}a=W-}nt8xrAO9YK12QW%s8A_DcD_J6e1~(SutWFVn88%RcNj`Dmn^Z-;B-FMvi`ex67z1&>sJW@w<~P~$&<4eG`;K;N>x z+NO;Q(h_vY0N}Xb8Z;w3x(o79gHOUFt%*Dnsv*P&z|jNAhhf1>MSoVX1bJPXe&geR zqQLKj_r^XZAJ&x(cm%^aVA$rAMn0nA3d;}{(XnmAv6!VyjBs2rIf3@M>#LuhE&RG( z{p!z??){Lb$P_e}vnsRW>$U>ub!5=D)!DsR`690Z+oY=p>CZW~f0oNaw zhl5A=?>+n^JRE$&#gQ63ud}0{pH%a+@fFxmA6ldbEwV~(`2qO>S@74%`;CAsW92eg z^;`ZmvO<20`FpspkpL0_X_0j@=NCVOZr3mD4{TxoLc7hXiLXL_Qp{skE!f{vG#}+a ba?&pFbC36(+)v!cmwj{@Gi41ekY)eh?T%E1 literal 0 HcmV?d00001 diff --git a/Modulators/__pycache__/BaseModulator.cpython-38.pyc b/Modulators/__pycache__/BaseModulator.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..21b776bfbc5ebdc7e32d73b91ae1c8cef0c23cce GIT binary patch literal 3791 zcmcgvO^@3|7`F4Vn@xAO6|_)^%W!K@)}dTLh@$NW{gB##XnV=Uns_FORePMyjCY$A zxAxEUS8zpwUyv&&{sJeSckDP$x`-`8Sh9B<&%B?{`@HWyKRD=mxPCtVjsJ4!dB4+3 z{c7Rm7`OQf58(+v@lt=}r;Sm=r}swE9JTPbnY7cL(T?vu@I*_r-*}=e{nyRWu4p{< zdOLsMwAX7ao44=WT^{nWv6@FVm3EeiVb5P)ie@r;Aw@WqHln@ttBIFm+~ye`(i{20 z8#RPKYKn$vzVSva*)DXx_D4Hd?}*(u9@e{9cf_7scjTVvic4Hxb-D*2>UKC z5AJXypJXCWxXm``Q>iSoGs#vVVnvM1N*%r^;Uo!JT14t5v4WJbOtRBH zixoSa#nFtJMLNzB!?>1Arei4tHsR}l$yY7`brWrz$|I4b92-nLRXl;C&tOXZ!%RX{ zY?#V)%9Hp^iqfxpxsKJ8MVUfs^T@`T>ciB<%5DU(2xS>0BTGN6)$usD(iHJIVj;;6 zg>_ESYiKxy#?*c&{0iq%hvOuRUKD4a8>tP8xMDntB+`aJB89wC!ER{D#Zjh`MUS1t z+(mk>Gsv+q5?E^PJ57~dia5jDwo;ttmhpsSE~*?LdUl2gId20eDe{5a)kSN%@8UL8 zUBUwZ{oz~ht-ov;nN0K!eszyOj|a0Xm4lO5WnyqIi*mw;89a#X!+bm#-oN+cF&_^q zOqsz3ii7!L*$Kl~#WoCkqz|Zu_Op*Rx2?9kV<(yC?A*t~dOxB3Es7fUHqPeHfEOm> z$pny4k#w+I!-D0|YWjerJ(W^9V8|%9C<|8RlVuYZ9;%N?JeC^Joafd6o>^|)s+O-{ zbm)*#pbq%xH8k0`Y)_JmTfK|*I&ylCJ{_#>!GS)0Dk9K2`(!f$8~ffX47Y|k3QNP6 z$}OO&?ho84yepilV=x$X*YJK@`qPZn`QGeRi2S1Rq*Ssh>qs|wS zgG_2EsxnmNZzEAx$*JvX(Fc^E^Ro2eIlI5CJZznP`i_U&vLlCU9HEQWn+4_*VEM23 z@EwsL_>ei)a7ioOMcH!Hze+%)T(kQb_zZb8a~Xlp(u#EntW&9^=AbOcA5o^YH1kXe zBEVXdN@k=JKXA=KSrRLL* z(&k#d<4`5{WoTcq3%Eiprqu6_fIDGfX=`am$ru59WXUm$9_4~xDWjOw`_zhJNa79k zSs|wAE4@CtBRFg0th)7i|7Jf3g8rt)qniO6W)@A5xE^71TG)AQkW8RUO$aoF^TYd3 zO8{+X8~#1cisV!f6J;xA&Jo)y8VacyIskh2Phy(9i>Vr=jQra*pKn%ji#~6c zad$oJKdlP++S&EZ&bZz*?CsO!r_gl5aM=w*SL3wa4?`-r^2=@*iYy94P5%TgJLM?6 z&@}Jq%k;QH57fM;KcL4|dQ|giv7%8+xAC}++t8!qx2|-W4ZqvQ-75cHYxr(gud{6O vaipnFJITwoYj?|rnlE=B$^`S1aig8vex9~v=bOTzZ^<4*_FVBh{(j>x*%37< literal 0 HcmV?d00001 diff --git a/Modulators/__pycache__/CarrierWaveforms.cpython-38.pyc b/Modulators/__pycache__/CarrierWaveforms.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8481db6662007446e0aec56e317aa036442d9941 GIT binary patch literal 1610 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 literal 0 HcmV?d00001 diff --git a/QualityAssessment/__pycache__/BitErrorRatio.cpython-38.pyc b/QualityAssessment/__pycache__/BitErrorRatio.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..01eb3fbaee5e35a102fab429d4c0129962383ec2 GIT binary patch literal 1677 zcmcIk&5qMB5O)6BQg&H^7LefL142}SR^o^dT6Tfu04x3vxmaoJ?go;$*v>Ak!U-M( zPKc-A1$cs7Iq?cyV8&_Fh9eSFc^Z#rKF_aTZf^Do(6^oM(W4$AKX9{79&C1C>8rpv z;Z90I2mamE&AiZa$Ufm7_dgQue{e&eJI~1=_zAk?VBl1z<0BEj5u6w6C;)BmnBpzwF6e8&$+cs$suR7xW}jQ6`K~x)I%Is1e0zE7BBi z&FL*F$FD_fnq$PW@Qq5XK;?u+G)^O}DHkd^7MxC$%;;{UMay8=U|}}Tu-1hGxAL_} zC)H+4{FSIKMEPrfbR;t|I!M@q&iDB##X3(a#H^0zUTdKs^FH1r%s1XAyGpP0-*{FQfGjBC`+cVj%FbnieBwb3ooEkyS~P>w)EtSwJA#gdIT0eK z=0s9G%f>RL$51J$^gq;GDKKR`KTDx>yDKvftlnBGy&V2+_4cqx*V0zi_t%@2wUk->A&uYp=th*F!0L!lZt zgnS`Qlw!SB0Bfd$j`E>Nt6sw2-9(hCU)Sp<2r4(9R-P_0n7L#w23-|^Zn*VVdcw0% zG CiNu@$ literal 0 HcmV?d00001 diff --git a/QualityAssessment/__pycache__/ConstellationDiagram.cpython-38.pyc b/QualityAssessment/__pycache__/ConstellationDiagram.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d5a652f258f17addea2b374a370492739bb7f0ef GIT binary patch literal 2502 zcmb7GPmdEf6u0MJCLz1*(xntc(TGDu`X`a-ZB@FotQL?;M1l4YsTw(BCz)k36Fd&P ziLxi?5vdJ434E&56SwwO^+5ZcXOc}&sZ>X{pXd2KzxVv!&-rF;twx}| zy!i{u>xBGoW@~7797=8zZgKlL;r27D<8u0tG@Mtkm$V}s zm)k5-nx~gxe`gjRGg)|G3!e z5G`{9Ua*^ywREThv=99j^n3urjLt|1ekgiuLARkhGqO+i-4lwxEph}lEpfd!xOTyv zSu?wD;eOa#K@W-*X!p4T*1OX`jP-IHsZ2I&wV-VG88{)7kon@%CyREvZPmH$AnWdn zNG(KA*`tAYBL+R04TFP091Q{m%zQHJW=S55Se^?Ws4N&k=&m)J%|^haSW(6$J4lD>0ZKWe^ z580u%SvS{?6fDs`OGX3M6-qntkoC38q+}EAhU_rT8;*8zk@WQ1ilUAWNWHNLAjt9jiOzZmYewd+#gOZGAmvNvtMcK$!9zceGYK zEHke;nrJ@^<1|)bcnP%Um|CRf*;nWlI(`3NW#;?$+L4R9%Z6oFfo>A>LkfxM$hsoO z^n@I_itJm;hQx$~gxSTJQ*OPmDOvEyzPDc~`6bP5?%F95?)#%{LxfKTzp`)H{3=xoHjQnT_JQ<;9Dr_Ok%N>LZ{V~53+->8w1pB zgC|+CB6qhJJd$Jav2icTq!jrmOL?630}z3VSAZ}npriyC07WTObzgwXvIxzx^JvFP zK`ptCJZvgfi2y@#1;)ytou#M2L;fSf2RAU>y|_PKf|pbrgz)JtZYbjh3t(3%7{qxH zK{+dg95@VBB5*BT!~>zm;NBu6C4ip7=iA`2RC|vp)R@HG`I*|y$C=>NNuZZ)UdP# z!q!u!z5K}-ZfIJ40N@3eCe?KPE}$2rqMVp@dwPBaR_4!KAq7hypWzf19 z&YENKdOiXw--dx)aHvl&(+ygu)@#pp=sNr^!OElWQj1uxeY*y$I<1*s-Kqh{r;atf zxDvhvl7se!z1QArcnIk!yvSjwYhh^WAL)7+!rde#rxJ!di^5QDfHCqq4*0w*4QRE* zOTPd;_h7)|{Y~=?PH_zsnCsD-!$tbRn}VKdubAcKxtb-_<|Gpp|Fgor&$sXp^XG=v Gt$zTk0j=%; literal 0 HcmV?d00001 diff --git a/QualityAssessment/__pycache__/ErrorVectorMagnitude.cpython-38.pyc b/QualityAssessment/__pycache__/ErrorVectorMagnitude.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f14581691de4570869e99ae17349b04183f650bc GIT binary patch literal 1041 zcmbVL&2AGh5cdA0L{USF6roZs=9VClZLbKSKnvwSqX2?KE|#-))2+OAuy+Hg!UcGc za^%1>@B%!6ublb{oEUGi+lchUNHg;Mee<)kZ=1~q0{YqeMSs)~`t6ie3P9-rn_UnL zF;AeOcZ8VFg0F}LU;LrZyf>&5UVV<%V12c-vWc0h2*Wyoa=g9XAcWFchNZ0niU zO26ZArt~o#%OuMgKfiaN(n+3igSm6#Y2n9d8DP4xYp^63069JYHeC=II`c04xi|NB z&^PZ>Q0njwnU|r9U>?lFyWndfXv3$UJ%ox*)=J?-V#ecS#6`E!z)KoXO;et6Z7S1) zimt+9r8Trp%q$%#VemsN^K>%nQmyH%9m9}HujapO!ME##)|V5zAreW&*oIQ+)Ygi8xR=myabmarS**RawhLlx&KmzjxK2@r!>MEe{0H;zYQkSCDCidnG$!^Z} z!d$u&;f(ztER<#>sASkd{8+$d2uu8INbaneoqO&a?@%-*^9r z?{5yUz)CpE;q!>0Q$CPT)J)8{oLwYW^#*D}a|1 z(~q zQ@17AM5uvCO*|Cr8-@B8?BWaGl*IHW8#7r-S{O4Um^odx)vQwrmQc)5W07B+Fknb9x#Xnu=u~R>dG&i z#YD{L`10X41H7zIoq|wxfW?!Q52qzc9OM{4U;zN$lX%1)>?GUCL(nBQa4`U} zOy`;{(NuAp%m9Oy!xa8RD%9|Z>4_M~M1szsqfCb=V;)Bkuq&qh??|fR%|QHsMJ7kx zSgH8vvW=xqeMKa@FEB){N^&gNB!io1bf{j2$U$TdUz3EfG!lnvWi76a+M@}rD;ZWYXO^KLZ+?bUz zO0%r50ZRaZH~~=2Z8Qh7))obod*{f1i&Q}0G7?r0^ph~TN|zD0$iuaI>+bR4?p(zSku;Z5JqeZrl>eNv>>7?}H zaeUa>Pz@j}sR=#AHje7B^w3FV!&)_bujY$lgEXf%)M41FDZ-#iC}9AXiSS~!V9bXA z&+-@gd=3i@PXal`&wf6 z3J<`<5_PoNy)c>s7YjO%Df*d!XH!ZDqk=Q~3MdXps8&DJ)TjViO zuL{2i9((HW;1!e;E2;1+Nhr7QH%PVq2+sSOKq2xug@6CxSJd@UU{3*kPixDYzd5rO zcZ(KE+#*nb{Jj%&r}gOxR>vW9Y`creFS}5@DetrtTC{YN#FWjEgnT*#Z)R#-x^Z8Z z4M0?;psdTOP*^WZA1E<-ciI*S>MU;3gOc7U9d5!+o0_9}P7cowa;2b*FV-cMWdl$Y z$=@Y&QXYw?;01VstW3ND z6X&pi8qV_hyHB6bpYI_}4-mxL;+^#&LLa{P9RU;z*!BccjcP2B!W3hV0~x50h64^| zq+%KmIFgB)&IOX=$-7i?#k^8BEBU6Wi_t@m!pm2lVXhO961;)ZR=o^Mi?0;W=y W^XIOgo+>{Uel~-)*7rWdetiRbSdXv( literal 0 HcmV?d00001 diff --git a/data_with_change.mat b/data_with_change.mat new file mode 100644 index 0000000000000000000000000000000000000000..2346dfffeb392cc83e3ce5f50f4d40e293ec7a20 GIT binary patch literal 164104 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 literal 0 HcmV?d00001 From 3b294919f14f07ecf414c1c00990255b20677d08 Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Thu, 30 Dec 2021 11:39:26 +0100 Subject: [PATCH 31/37] polishing the files for better description commenting and variable/function name update --- Example_b_Modulation_SMF_DDF.py | 6 +-- Examples/BuelowArefIdler2016.py | 4 +- Examples/BuelowArefIdler2016_DDF.py | 5 ++- Examples/GuiEtAl2018.py | 5 +-- Examples/GuiEtAl2018_DDF.py | 6 +-- Examples/LeArefBuelow2017.py | 5 +-- Links/DDF_profile.py | 61 ++++++++++++++++++++++++++--- Links/SMFSplitStep.py | 12 +++--- Links/_DDFssprop.py | 24 ++++-------- 9 files changed, 85 insertions(+), 43 deletions(-) diff --git a/Example_b_Modulation_SMF_DDF.py b/Example_b_Modulation_SMF_DDF.py index abe9142..747c615 100644 --- a/Example_b_Modulation_SMF_DDF.py +++ b/Example_b_Modulation_SMF_DDF.py @@ -3,7 +3,7 @@ import numpy as np import scipy.io as scio -Fiber_type = 'DDF' # 'DDF' or 'CDF' +Fiber_type = 'DDF' # 'DDF' or 'SSMF' if Fiber_type == 'DDF': example = Examples.GuiEtAl2018_DDF() @@ -11,7 +11,7 @@ example.path_average = False example.beta2 = -25.491e-27 example.gamma = 1.3e-3 -elif Fiber_type == 'CDF': +elif Fiber_type == 'SSMF': example = Examples.GuiEtAl2018() example.n_steps_per_span = 200 Factor_gamma_eff_80km = 0.2646 @@ -55,4 +55,4 @@ print('Energy per carrier',example.Ed) -print('Fiber type : ', Fiber_type) \ No newline at end of file +print('Fiber type : ', Fiber_type) diff --git a/Examples/BuelowArefIdler2016.py b/Examples/BuelowArefIdler2016.py index b4c0d7f..6bf0c74 100644 --- a/Examples/BuelowArefIdler2016.py +++ b/Examples/BuelowArefIdler2016.py @@ -41,8 +41,8 @@ def __init__(self): self.gamma = 1.6e-3 """Nonlinearity coefficient in (W m)**(-1).""" - self.fiber_type = "SMF" - """Fiber type: standard fiber.""" + self.fiber_type = "SSMF" + """Fiber type: "DDF" dispersion decreasing fiber or "SSMF" standard single mode fiber.""" self.Tscale = 4.5473e-11 """Time scale used during normalization in s.""" diff --git a/Examples/BuelowArefIdler2016_DDF.py b/Examples/BuelowArefIdler2016_DDF.py index 0db2d7e..57cffbd 100644 --- a/Examples/BuelowArefIdler2016_DDF.py +++ b/Examples/BuelowArefIdler2016_DDF.py @@ -44,7 +44,7 @@ def __init__(self): """Nonlinearity coefficient in (W m)**(-1).""" self.fiber_type = "DDF" - """Fiber type: dispersion decreasing fiber.""" + """Fiber type: "DDF" dispersion decreasing fiber or "SSMF" standard single mode fiber.""" self.Tscale = 4.1022e-11 @@ -127,7 +127,8 @@ def reconfigure(self): from Links.DDF_profile import Get_Beta_Gamma_Profile dz = self.fiber_span_length/self.n_steps_per_span nz = self.n_spans*self.n_steps_per_span - profile = Get_Beta_Gamma_Profile(self.alpha*np.log(10)*0.1, self.beta2, self.gamma, dz, self.n_steps_per_span) + profile = Get_Beta_Gamma_Profile(self.alpha * np.log(10) * 0.1, self.beta2, self.gamma, dz, + self.n_steps_per_span) # Modulator diff --git a/Examples/GuiEtAl2018.py b/Examples/GuiEtAl2018.py index 75e2a6f..35cca5e 100644 --- a/Examples/GuiEtAl2018.py +++ b/Examples/GuiEtAl2018.py @@ -40,9 +40,8 @@ def __init__(self): self.gamma = 1.2e-3 """Nonlinearity parameter in (W m)**(-1).""" - self.fiber_type = "SMF" - """Fiber type: standard fiber.""" - + self.fiber_type = "SSMF" + """Fiber type: "DDF" dispersion decreasing fiber or "SSMF" standard single mode fiber.""" self.Tscale = 1.25e-9 # s """Time scale used during normalization in s.""" diff --git a/Examples/GuiEtAl2018_DDF.py b/Examples/GuiEtAl2018_DDF.py index 0fd2c34..1518fc4 100644 --- a/Examples/GuiEtAl2018_DDF.py +++ b/Examples/GuiEtAl2018_DDF.py @@ -48,8 +48,7 @@ def __init__(self): """Nonlinearity parameter in (W m)**(-1).""" self.fiber_type = "DDF" - """Fiber type: dispersion decreasing fiber.""" - + """Fiber type: "DDF" dispersion decreasing fiber or "SSMF" standard single mode fiber.""" self.Tscale = 1.25e-9 # s """Time scale used during normalization in s.""" @@ -144,7 +143,8 @@ def reconfigure(self): from Links.DDF_profile import Get_Beta_Gamma_Profile dz = self.fiber_span_length/self.n_steps_per_span - profile = Get_Beta_Gamma_Profile(self.alpha*np.log(10)*0.1, self.beta2, self.gamma, dz, self.n_steps_per_span) + profile = Get_Beta_Gamma_Profile(self.alpha * np.log(10) * 0.1, self.beta2, self.gamma, dz, + self.n_steps_per_span) diff --git a/Examples/LeArefBuelow2017.py b/Examples/LeArefBuelow2017.py index 2227466..bc59e47 100644 --- a/Examples/LeArefBuelow2017.py +++ b/Examples/LeArefBuelow2017.py @@ -56,9 +56,8 @@ def __init__(self): self.gamma = 1.6e-3 """Nonlinearity coefficient in (W m)**(-1).""" - self.fiber_type = "SMF" - """Fiber type: standard fiber.""" - + self.fiber_type = "SSMF" + """Fiber type: "DDF" dispersion decreasing fiber or "SSMF" standard single mode fiber.""" self.Tscale = 4e-10 """Time scale used during normalization in s.""" diff --git a/Links/DDF_profile.py b/Links/DDF_profile.py index cc8be04..e1ed2cc 100644 --- a/Links/DDF_profile.py +++ b/Links/DDF_profile.py @@ -1,14 +1,63 @@ +# This file is part of NFDMLab. +# +# NFDMLab is free software; you can redistribute it and/or +# modify it under the terms of the version 2 of the GNU General +# Public License as published by the Free Software Foundation. +# +# NFDMLab is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with NFDMLab; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA +# +# Contributors: +# Sander Wahls (TU Delft) 2018-2019 +# Shrinivas Chimmalgi (TU Delft) 2019 +# Vinod Bajaj (TU Delft) 2019 + import numpy as np -def Get_Beta_Gamma_Profile(alpha, beta2, gamma, dz, nz): - ''' Returns the Beta2 and Gamma profile (vector) ie z dependent values - The function reuqires attenuation parameter and intial value of Beta2(0) and GAMMA(0) - and span length as input.''' +def Get_Beta_Gamma_Profile(alpha, beta20, gamma0, dz, nz): + ''' Returns the group velocity dispersion parameter and nonlinear parameter axial profile (vector) ie z dependent values such that + for given attenuation coefficient the fiber model is exactly solvable. + The function solves a cubic equation to find suitable values of GVM paramter and nonlinear parameter. + For details: see + Bajaj, Vinod, et al. "Exact NFDM transmission in the presence of fiber-loss." Journal of Lightwave Technology 38.11 (2020): 3051-3058. + + USAGE + + profile = Get_Beta_Gamma_Profile(alpha, beta20, gamma0, dz, nz) + + + INPUT + + alpha - power loss coefficient, ie, P=P0*exp(-alpha*z) + betap - group velocity dispersion at the starting end of the fiber + gamma - nonlinearity coefficient at the starting end of the fiber + dz - propagation stepsize + nz - number of steps to take, ie, ztotal = dz*nz + + OUTPUT + + profile - a dictionary with fiber profile parameters + with keys: + 'Rad_z' : fiber radius along the length + 'BETA2' : group velocity dispersion parameter along the length + 'GAMMA' : nonlinear parameter along the length + 'D_z' : normalized dispersion parameter profile along the length (normalized w.r.t start-end dispersion value) + 'R_z' : normalized nonlinear parameter profile along the length (normalized w.r.t start-end nonlinear parameter value) + 'avg_D_z' : average normalized dispersion parameter (used for modified NFT) + 'avg_R_z' : average normalized nonlinear parameter + ''' alpha = alpha/2 # convert to field attenuation. c = 3e8 # light speed m/s lambda0 = 1.55e-6 # center wavelength kappa = lambda0**2*1e-6/(2*np.pi*c) - BETA20 = abs(beta2) - GAMMA0 = abs(gamma) + BETA20 = abs(beta20) + GAMMA0 = abs(gamma0) R0 = (BETA20/kappa + 20)/8 # core radius in micro meter n2 = GAMMA0*(lambda0*np.pi*(R0*1e-6)**2)/(2*np.pi) #dz = dz diff --git a/Links/SMFSplitStep.py b/Links/SMFSplitStep.py index c5b045a..2df3388 100644 --- a/Links/SMFSplitStep.py +++ b/Links/SMFSplitStep.py @@ -35,7 +35,7 @@ class SMFSplitStep(BaseLink): polarization to the ASE noise are not included. """ - def __init__(self, dt, dz, nz, fiber_type='SMF', + def __init__(self, dt, dz, nz, fiber_type='SSMF', alpha=0.0, beta2=1.0, gamma=-1.0, verbose=False, n_spans=1, post_boost=False, noise=False, noise_figure=3, @@ -51,6 +51,7 @@ def __init__(self, dt, dz, nz, fiber_type='SMF', Spatial step in m. nz : int Number of spatial steps for one fiber span. + fiber_type : 'SSMF' standard single mode fiber (default) or 'DDF' dispersion decreasing fiber. alpha : float or numpy.array(float) Fiber loss coefficient in 1/m. It is possible to pass a vector of length nz in order to specify an individual loss coefficient for @@ -148,18 +149,19 @@ def _ASE_noise_sanity_check(self): def transmit(self, input): # Docstring is inherited from base class. + # Depending on the fiber type choose the fiber propagation solver either the standard ssprop or DDF ssprop. if self._fiber_type == 'DDF': profile = Get_Beta_Gamma_Profile(self._alpha, self._beta2, self._gamma, self._dz, self._nz) self._BETA2 = profile['BETA2'] self._GAMMA = profile['GAMMA'] - simulate_fiber_prop = _DDFssprop + solve_propagation = _DDFssprop disp_nl_profile = (self._BETA2, self._GAMMA) else: - simulate_fiber_prop = _ssprop + solve_propagation = _ssprop disp_nl_profile = ([0., 0., -self._beta2], -self._gamma) if self._n_spans == 1: - uu = simulate_fiber_prop(input, self._dt, self._dz, self._nz, self._alpha, disp_nl_profile[0], disp_nl_profile[1]) + uu = solve_propagation(input, self._dt, self._dz, self._nz, self._alpha, disp_nl_profile[0], disp_nl_profile[1]) if self._post_boost == True: if self._alpha.size != 1: @@ -171,7 +173,7 @@ def transmit(self, input): else: uu = input for span_i in range(0,self._n_spans): - uu = simulate_fiber_prop(uu, self._dt, self._dz, self._nz, self._alpha, disp_nl_profile[0], disp_nl_profile[1] ) + uu = solve_propagation(uu, self._dt, self._dz, self._nz, self._alpha, disp_nl_profile[0], disp_nl_profile[1] ) if self._verbose: print("Finished span",span_i+1) diff --git a/Links/_DDFssprop.py b/Links/_DDFssprop.py index 5bbd14a..93d627c 100644 --- a/Links/_DDFssprop.py +++ b/Links/_DDFssprop.py @@ -1,14 +1,3 @@ -# -*- coding: utf-8 -*- -""" -Created on Thu Mar 28 18:29:07 2019 - -@author: vinodbajaj -""" - -# Copyright 2018, Sander Wahls (TU Delft) -# Copyright 2018, Marius Brehler (TU Dortmund) -# Copyright 2006, Thomas E. Murphy -# # This file is part of NFDMLab. # # NFDMLab is free software; you can redistribute it and/or @@ -24,7 +13,11 @@ # License along with NFDMLab; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA # 02111-1307 USA - +# +# Contributors: +# Sander Wahls (TU Delft) 2018-2019 +# Shrinivas Chimmalgi (TU Delft) 2019 +# Vinod Bajaj (TU Delft) 2019 import numpy as np from warnings import warn import matplotlib.pyplot as plt @@ -34,9 +27,8 @@ def _DDFssprop(u0,dt,dz,nz,alpha,D,R): pulse propagation in an optical fiber using the split-step Fourier method. It has feature to include length dependent variation in the - dispersion and nonlinear parameter varies over length. + group velocity dispersion and nonlinear parameter varies over length. - The following effects are included in the model: group velocity dispersion (GVD), loss, and self-phase modulation (gamma). @@ -53,8 +45,8 @@ def _DDFssprop(u0,dt,dz,nz,alpha,D,R): dz - propagation stepsize nz - number of steps to take, ie, ztotal = dz*nz alpha - power loss coefficient, ie, P=P0*exp(-alpha*z) - D - dispersion parameter over length of span (vector : size 1 X Nsteps ) - R - nonlinear parameter over length of span (vector : size 1 X Nsteps ) + D - dispersion parameter over length of span (vector : size 1 X nz ) + R - nonlinear parameter over length of span (vector : size 1 X nz ) OUTPUT From 143f707228edd8ea0d9b5136c94dfbbeaab4728d Mon Sep 17 00:00:00 2001 From: Vinod Bajaj Date: Wed, 18 May 2022 17:35:59 +0200 Subject: [PATCH 32/37] Update index.rst Added acknowledgment for project FONTE. --- Documentation/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/index.rst b/Documentation/index.rst index e64ace9..9cb4341 100644 --- a/Documentation/index.rst +++ b/Documentation/index.rst @@ -37,6 +37,7 @@ Acknowledgements ---------------- - This project has received funding from the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No 716669). +- This project has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No 766115. - Fiber-topic transmissions are simulated using a slightly modified port of `SSPROP `_. - Alexander Geisler has contributed a Raman gain profile. From 5728b1e9b82b6653590486d193cba7efe25ee588 Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Thu, 29 Feb 2024 17:50:00 +0100 Subject: [PATCH 33/37] removed cache files --- .idea/.gitignore | 3 --- .idea/NFDMLab.iml | 12 ------------ .idea/inspectionProfiles/profiles_settings.xml | 6 ------ .idea/misc.xml | 4 ---- .idea/modules.xml | 8 -------- .idea/vcs.xml | 6 ------ .../BaseConstellation.cpython-38.pyc | Bin 5476 -> 0 bytes .../MPSKConstellation.cpython-38.pyc | Bin 1625 -> 0 bytes .../__pycache__/QAMConstellation.cpython-38.pyc | Bin 1196 -> 0 bytes .../ReshapedPSKConstellation.cpython-38.pyc | Bin 2781 -> 0 bytes .../ReshapedQAMConstellation.cpython-38.pyc | Bin 2805 -> 0 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 550 -> 0 bytes Examples/__pycache__/BaseExample.cpython-38.pyc | Bin 11427 -> 0 bytes .../BuelowArefIdler2016.cpython-38.pyc | Bin 2865 -> 0 bytes .../BuelowArefIdler2016_DDF.cpython-38.pyc | Bin 3078 -> 0 bytes Examples/__pycache__/GuiEtAl2018.cpython-38.pyc | Bin 3174 -> 0 bytes .../__pycache__/GuiEtAl2018_DDF.cpython-38.pyc | Bin 3406 -> 0 bytes .../__pycache__/LeArefBuelow2017.cpython-38.pyc | Bin 4120 -> 0 bytes Examples/__pycache__/__init__.cpython-38.pyc | Bin 542 -> 0 bytes Filters/__pycache__/BaseFilter.cpython-38.pyc | Bin 905 -> 0 bytes Filters/__pycache__/FFTLowPass.cpython-38.pyc | Bin 1764 -> 0 bytes Filters/__pycache__/PassThrough.cpython-38.pyc | Bin 806 -> 0 bytes Filters/__pycache__/__init__.cpython-38.pyc | Bin 308 -> 0 bytes Helpers/__pycache__/NFSpectrum.cpython-38.pyc | Bin 6586 -> 0 bytes Helpers/__pycache__/__init__.cpython-38.pyc | Bin 1431 -> 0 bytes Helpers/__pycache__/plot.cpython-38.pyc | Bin 1435 -> 0 bytes Links/__pycache__/BaseLink.cpython-38.pyc | Bin 1950 -> 0 bytes Links/__pycache__/DDFSplitStep.cpython-38.pyc | Bin 5165 -> 0 bytes Links/__pycache__/DDF_profile.cpython-38.pyc | Bin 1183 -> 0 bytes Links/__pycache__/SMFSplitStep.cpython-38.pyc | Bin 5525 -> 0 bytes Links/__pycache__/_DDFssprop.cpython-38.pyc | Bin 2470 -> 0 bytes Links/__pycache__/__init__.cpython-38.pyc | Bin 302 -> 0 bytes Links/__pycache__/_ssprop.cpython-38.pyc | Bin 2872 -> 0 bytes .../__pycache__/BaseModulator.cpython-38.pyc | Bin 3791 -> 0 bytes .../__pycache__/CarrierWaveforms.cpython-38.pyc | Bin 1610 -> 0 bytes .../ContSpecModulator.cpython-38.pyc | Bin 8056 -> 0 bytes .../DiscSpecModulator.cpython-38.pyc | Bin 4029 -> 0 bytes Modulators/__pycache__/__init__.cpython-38.pyc | Bin 352 -> 0 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 7303 -> 0 bytes .../__pycache__/BitErrorRatio.cpython-38.pyc | Bin 1677 -> 0 bytes .../ConstellationDiagram.cpython-38.pyc | Bin 2502 -> 0 bytes .../ErrorVectorMagnitude.cpython-38.pyc | Bin 1041 -> 0 bytes .../ModulationEfficiency.cpython-38.pyc | Bin 2817 -> 0 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 475 -> 0 bytes 44 files changed, 39 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/NFDMLab.iml delete mode 100644 .idea/inspectionProfiles/profiles_settings.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml delete mode 100644 Constellations/__pycache__/BaseConstellation.cpython-38.pyc delete mode 100644 Constellations/__pycache__/MPSKConstellation.cpython-38.pyc delete mode 100644 Constellations/__pycache__/QAMConstellation.cpython-38.pyc delete mode 100644 Constellations/__pycache__/ReshapedPSKConstellation.cpython-38.pyc delete mode 100644 Constellations/__pycache__/ReshapedQAMConstellation.cpython-38.pyc delete mode 100644 Constellations/__pycache__/__init__.cpython-38.pyc delete mode 100644 Examples/__pycache__/BaseExample.cpython-38.pyc delete mode 100644 Examples/__pycache__/BuelowArefIdler2016.cpython-38.pyc delete mode 100644 Examples/__pycache__/BuelowArefIdler2016_DDF.cpython-38.pyc delete mode 100644 Examples/__pycache__/GuiEtAl2018.cpython-38.pyc delete mode 100644 Examples/__pycache__/GuiEtAl2018_DDF.cpython-38.pyc delete mode 100644 Examples/__pycache__/LeArefBuelow2017.cpython-38.pyc delete mode 100644 Examples/__pycache__/__init__.cpython-38.pyc delete mode 100644 Filters/__pycache__/BaseFilter.cpython-38.pyc delete mode 100644 Filters/__pycache__/FFTLowPass.cpython-38.pyc delete mode 100644 Filters/__pycache__/PassThrough.cpython-38.pyc delete mode 100644 Filters/__pycache__/__init__.cpython-38.pyc delete mode 100644 Helpers/__pycache__/NFSpectrum.cpython-38.pyc delete mode 100644 Helpers/__pycache__/__init__.cpython-38.pyc delete mode 100644 Helpers/__pycache__/plot.cpython-38.pyc delete mode 100644 Links/__pycache__/BaseLink.cpython-38.pyc delete mode 100644 Links/__pycache__/DDFSplitStep.cpython-38.pyc delete mode 100644 Links/__pycache__/DDF_profile.cpython-38.pyc delete mode 100644 Links/__pycache__/SMFSplitStep.cpython-38.pyc delete mode 100644 Links/__pycache__/_DDFssprop.cpython-38.pyc delete mode 100644 Links/__pycache__/__init__.cpython-38.pyc delete mode 100644 Links/__pycache__/_ssprop.cpython-38.pyc delete mode 100644 Modulators/__pycache__/BaseModulator.cpython-38.pyc delete mode 100644 Modulators/__pycache__/CarrierWaveforms.cpython-38.pyc delete mode 100644 Modulators/__pycache__/ContSpecModulator.cpython-38.pyc delete mode 100644 Modulators/__pycache__/DiscSpecModulator.cpython-38.pyc delete mode 100644 Modulators/__pycache__/__init__.cpython-38.pyc delete mode 100644 Normalization/__pycache__/__init__.cpython-38.pyc delete mode 100644 QualityAssessment/__pycache__/BitErrorRatio.cpython-38.pyc delete mode 100644 QualityAssessment/__pycache__/ConstellationDiagram.cpython-38.pyc delete mode 100644 QualityAssessment/__pycache__/ErrorVectorMagnitude.cpython-38.pyc delete mode 100644 QualityAssessment/__pycache__/ModulationEfficiency.cpython-38.pyc delete mode 100644 QualityAssessment/__pycache__/__init__.cpython-38.pyc diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/NFDMLab.iml b/.idea/NFDMLab.iml deleted file mode 100644 index 8b8c395..0000000 --- a/.idea/NFDMLab.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 105ce2d..0000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index d1e22ec..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index e01d658..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Constellations/__pycache__/BaseConstellation.cpython-38.pyc b/Constellations/__pycache__/BaseConstellation.cpython-38.pyc deleted file mode 100644 index 76b7f163809507d2849cd931b40807e3c6f70d86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5476 zcmbtYOK;rB5oVK|hei)SR(|a|K*v}Z8pj@G4I~H_-i2i=vh$F#UORi3wK3qZduC{J z$Z?Znc?2pzAn(!FoUKa$|BC#9Tyo_#r@iJFBtX7uK4wOey-q?woNjh?vAgT5ud4X_ z<>iKf>o2$e>ag>M@ptOXUN$&}i1ahbE(Grq;%tyXlJ4jbi1v@leKtQ0z2Wx_UPZ zqFDOA6MJE>={bGn4Do!?9Z2_?6rH||UD7doS?Juxf7HWG8f_+wwkcTKlD05~^~yM4 z?F!nqsOWYT?W(Bhc1_g9!YiX)7Y(t9-vzNGmhsyVE8-M>7sYvTMx1@c+Dqaiv5F_l z;v9BzAw6@)iR9dJo!87T=qY!7CyID4RNS52PsF3KJK#>lA8c%MjDGd-H?2m4wwkYGZ~}hto(GY@jG4|aYsokbfjb?gLt~uU_9(f74bc(LQZc91KHAN z>B1o8MQwugUHnHYxWz^SP{-`4d0@e$=3W3zqe;tA%9-#rHyn<9`LfAB=if*-hPlGt zygm6S^ny6j$IY`xFecrK2!$Gb(!@9~Uje{<~vzevOl!ImtDg5gp>TMh$Hq@ZcjSj-?8s+`@ET z042bY`kBCWsF=lDKgAovT%AIqqa&EG;8 zp96Axv4fZ8KBsE1l_J{Kn83S8}OkfV!yzNDlt(TNQ#k{z;rGsaRAGqwbK zZSGq!B3WV{n489v^ZPcoQAt>0UotKkiIv#5jOSMpqA<&O0N;D0oFMWY1QamNi;}v$ zKzOdk8`x-eAj9meCw^5LsRXSKOId6pU!}_vFL8oLJYDvsYL>G|Y)YQ_3T9mXYaMp7 zz(=zATgv&f$_qX&2Wi3vf&#Jit_SDSYyco|Uj}{jLAJ^9m9FHqMJbPH;{^mn2pl~&QG6+^y!p2 zq!Vuv+BMSufJT9I!Je6l6V)dS`M>#{*)uO04>A7KDrEF8Bm_IeDA?5k%bIaTkSAyc z)?9ma-^%nP)+N+Cg|5U*tfB|*{W_uArn2|14J-K_nADG`MPO>$8FUCSsZFXhZjJ(`PCQ4WL&#-t zSzcjh*%i>@r|hJpwV1FqhZYOdOSD`;hq9Xk#M#7r%3|}4)d%MZN)T*9&1+jn)BD)e z!$G*4<$QD5&9p*_LlmV{rj_I{W8n{vswG1Na<|j-`ml314E^#k8E?bibtWkCl+2?$ zWI1HVNE*E!f279pIx3`bgfK5(!U1)1rpFNqdwdJ27)qm3=exjA3T)}QWtY}~Jay!U zvF~+@HxE#A`I4`Nfj^cmNQKS9yRe502$#frL$35iM`mDD0Z^lB3P0`r#9)% z@~w)F?CLBYBL&kubCpES&Do&?&ZCb6M}cG0tNsZ23^b?eY>Ao7X6C<7%*-I{5=M%P zGQI`;Yj*hu8ek9LqYrHKS>KHDT|wt%$j@TrYHx}NYOVrDhwK1y7Y)rJk9Bmdf-%4~ zSyY9tdQuU@JX%j;^^lhCSD~kdv4z<&JZmJ@A=45VeY2QUlbY^X&wqjZP_x_xL)Zrv zvcoO?Hq1!u1Zzoy~OKOvvEXAx25YOFbSunQoZ6ivnJ>MIRMOuBKhnn>) z(`3Vx1sT~=3{IJ9+wpMpnZDmV>LCkon@NW(`zHuTct18tdi1^fnKfm zsxDLO$8@7l6Y3h>envM+6lQKz@+#tU3Lg=rA9ZFoOxCF4pMER#O8s2@LVdMyPRlhL zspWKCMJKPw(bI|sR7N#t9$=+jJlTlAoDr3Q85`B^OCMQ(qzhE7XJ!q0NxJr~-^zCV QC1p_&QO9XUe6wW!2irH9T>t<8 diff --git a/Constellations/__pycache__/MPSKConstellation.cpython-38.pyc b/Constellations/__pycache__/MPSKConstellation.cpython-38.pyc deleted file mode 100644 index 785d8c8b955b274367e3f9c1960585b7fe983f9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1625 zcmZ`(&2HO95Z+yqA|=aCT&QW21_loaP#q!#Mo)#|x{lzaXk)lFauEuc~a*sLm4eUb?z4itA0)2u#73e9q9*dqjOUJfUCnL;ox%AqWw13>$`#EPqI`h9>;--vJ^I3OB=l?7>OVWjmx4~@UjCc?}6b}3Vp(G-(odp zG5ZwvAut4U_4@OJ!*7>3r@IGZ2<*#oG*teNyol0~|2d%Aev+}tMJ65pnDKVTSE=m@t^i9bU#t0eNVLT3cjVx+|9gjsL~dX7s(?exL& zsW~Yv2ELy_F)vZd0aOjt1qS%d@yv!O6{B*P{l=OZgjX6{FCF85j?Ws(0W_I`=g~@u zOM6HvG=a!XwQBO2lOB4xIdcKAR@O@QE-ImVZ^+DpYPzSW^m=FxnI1JumwC+li44gW zI{uB-OLTVY9Nj^{b(?um@5b~`sI?N4P-Vg&f(AZR)(;oE+-WrYcXALwce&z1UTr

+lS~^1T+@>nYN`#=dpJA#XM?!Bs}o0%)igN<1FFbS5ca= zZZ8Wb)yQ_AM(WvQ(B0qbJ^wBkbeBE=*}d^ibn-$sw&F;tFiZ07O_QOCQA4ECY3HU3 zrBNCwN;_L|76!50hQ%ep{}MT-Tue>4@t(4dQ$p47d{J zTheyOqgdNtDYJH_Tx3$OP{7b6P$D|f&IKj7rGY4@ z;JMJYjHZC5DGXb?4zD~OYMk_2@0*T(9VUgUF;{_hQec+aeg*$e*WoHEXqYjsanyHJ zl2fU~buYxK$=$oG%Y9SCPr;y-HEiPz@&LE+ZG0c>8vY1x;OV^&7ZvWuy|!b>OwN?* z2Bp>QWY$eek0(L=?!={(Wg(^FA%t4UrkW9xk}#L{T~KKj9=1uf1DB(dPLjM3w_sbZ uEphUyvG!Hn$#71%XyA2O3dTTp}UMS-Z_v`$%msB+>TN zUilBrkzc_d;1~FW#HlyVoEUGKkhBuaYGyt5%r}o6?}w$O3Ih7p_|Den5c+AAY4Sj6 z0IN+99B~|>7KXPIIkDSvF*-!t<=!>oo^Y?+mdEi4s`G&IBvPz;qEm8NY6r=N5`*^W{?Ia#~I_2=}Zd3;%*e`j0+N{ zJR5}~o8VF-!E|`C8G@yVMWPjXkX&s$a3PB^`LHMf?*XeD5E`B19Oq6IX-M&llOyVC zk2^WOa`w^3gUgZT6xzNCD&E1#L1W^K_pN!R!TAyZ{a zL275BXXYu3x*gUQ+W3+sXTp>x8*a>c#$|0~=FcSS(;(%-EYNnSY0R_?d&X1YKp3AU z&`OwBPl@Q%;Mm~A;LzanuSl*yX1@>XoirBpPhpbs`hFT@#W2 zK9jJj-yi<%Zr_wC4HJk@*8x^7+o~6;cp07@ybf}(_P}fG(S!uS-KI*ZsZd(n8oOSk z^de)?-ARd3o(7c4H2^QtpAz=MN_$^yS<3z@%Gh&?9f0?fEbjIt{8f-yo~=gOJ73sM Vp;-`VAx(LAl+DX3Xm_}a&L0*BIQ0Mk diff --git a/Constellations/__pycache__/ReshapedPSKConstellation.cpython-38.pyc b/Constellations/__pycache__/ReshapedPSKConstellation.cpython-38.pyc deleted file mode 100644 index 80142d7a0ea737daafabe95535dc67bc2b7fd752..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2781 zcmai0&2JpH6(?tASG%j#hi%2R6SQF36wm_l%2AObCy18_L!q|^dHcFqUc}1Q-Pj*$)&fP`s1ut(%J~h0XdJ4|rlYg9> zYZ0`6e)=!|k2WFyag*yUz~obOy^cW;K@-xW)!!TWJ)e$oK`#K#OKPKfuTIG$B770N zAR>_UW4|{e=rhu(y#@vHq(kkE$6r1B;3Z`oCYk||70aF{XwN?( z11db>zi9M=6B3YK4Wt8m=c&|NJeT54%KTkQ$Yhb_TU<+~x8i|e+wvezhin-qIxM;_ z4O@;!c_K$LHM+&neuGm}@^-qdYT*xCk_|JSux!8#U{y)s$mS}Gq$reRv1TS?gVdGEyF4i*+Z0{)FjK%9 z9w&N*X(=mGkBXQ{!+6qNVPEE^%Qp9ONT%7^FPGOo?5wc0`yYPXt+qzBYg%6fJd5s> zuLbmG$T2yiB|WEBZ}@ReI+i5UNz=2^>~a&u5_mVxl@lA{*>0sgZUg?dFn z9koTRY?ZS=!pWD!%$~K+$=}wfgXTot$!q4%7EZ_sJ@HQbK_F&C<3$5J7H1u&#dH5? z?oZ?+@_X`>{F#(6qDw2tXt zY1snzi<^&cv+W%%0CVeg#rmRRHB+oVD=>a(8g<-q0y2&^! zrpTFtT(YznOOrU2Tusp$D7jO}G>Q=* z`|*m4GtRQYyd?p9i))m*5Z~{tOc8ub1{c&-wCPD?MsKKt@hY&9R`%m@OgW`(3a3tY zvnl!;7XduU0{qFgN%h0rs=PF^H#q$EmL$YY>H3 zxtu79Dkt`lPz3{OtZ=t&Is?a7p6t{)&Z`m$?{hQpINb97I$!T!UGeqLkhm1`7J2Qt z!9hcGw10nM>+ujOlaa$tnu8nYx6pMLgF(I%^mLM$yec!1Gw;+Z$uaVns4#aB+p`3* z>pxL-oKh}}c6{rlx%HE5Xno$-D0JR_{3@{CueWUjh!BpXZG9YVmTtcy-+#Hfm5t=; zZk%Rfbt8+4s^+Xdip_6}{_2y58;^g-`>Ru>N3TBpfl}Aa4{T#S;iJCb4<16I|Duz_ zU;N`qH=`8A5WOFpNo4gbxqyjN$0k$=>pqrV4~aI#LTxFmF@Xz{QnqPPX2+ zHK-Jv=wnO2u+7cw&~P=B#(GKLdPUy`J;{woSrVU%#K!%*Q3M$}C=+{W+$ zx?aOTmfG|V4d^0m;hU!)&<4JF+OFm+fLgTf)$wm&*G>8^J$!#+f;XQ;-HFOOb*FxJ zwJ@};aBO4;x5E(HNiJ4q!cb%pWOEYPxeHk%yxoAi0o-`_*g=)#KA`u|wR=25o`!Om zP6N7ed4Fu*1s%nx0hb0*?_-bp2?jeqZ2x8760DSEJSH!?BXuO^dRqi)sORrKm_z6oQj9mfaw=(>QG!Oc4yYL+)y< z*_jo|(HBOS+JNL!d(KHZ`d9Q1w10r70y+88OK&;#;jC8D+6c-4IWJ#w-uL1A#rf0x ze2bv{E1kFf9>$f-bBcG0WK@@=JWsPAoYEtr$2ww!x zi3nu#nIFvv`UUAUUO@tR+@W^q^N${VT;$rwEaN6E^2DuNZ~nzZGZ3=Y7{$B*r?33tVM7pq)ruhdps*8+Y(*& zpitl%o@RQLX(?+_56hHE!+6$RWuJ{qmu(%4fK0QEU#)Ds*I8v7>+k)#TW?L8*IaM| z^c=eLgzm$LhCCx@w4#-F?om>ar=Ic80`!KX&*?dRmmD_*J)QxtS@WBY`+|a=sX!lx zjyeVJc-Dl%t7e~h_sQ4az3{7`3YW<#J@s!Ra&D4kV*IDGXD#=Yn?rJ|Y6$N(IiABi zz`I>bn5iYG<9X4j=BoA&@Z}3)=FZyZYK+K5nInX>^ znsb_#&i&(sKa=;#=i~|bic||u6Zkivcd=TmT07+LRE4L|zWWWv_U<>;qL{5(%cNep zW8M<2XY{YMnuB&{5$GJBX2&~T0_Wx_Ij2>#TDlE{u-9_6v`Kcq5_1(fn>i=%fET|l z+KAYH<$DLwRvwn?w5{y(Hxzm09F;^;;itQtY0dUx5F8n83ncgnS3|RR{GoBwp z(Wo?RPu2$-=f{*db2ySLFNdSUE(G(#m3~%mgXrAfPLpjM-o>m-L0IBSN?znynoF*x zWc8KYEoGjh$drS0)g>HfMQPqZz~0cB6fV~fI;&Fx-@xFqyG}bjNzvprb1+_KxRyXL zPA+G(E#b`RPBta~{zWEF%EAB1{+0dIIFslR%!$)Y$-1f}tjtrRJ6-n0*cUy?MukpI zx+kv?^>U$s=}pT|3H@^Hw_2~+FBlvF=WF&CzS{eG;v6!sr0S4mX^L&vvXKC*sR46M(48n>T!kiHBe@1vb41S3WuY1c(B(FkRt4uqp0Pn5Esi@UCZO`YL!=N;S7CAQme0>Xwo8*THRG|G9z`a^!8 z+z*RwBD|62Hqf{>ZA0;VAZ-)nfM)|6xHPcgK36&JUu_o>Zj$Zza^BYUrQT07R7pFF zGAIY`hP8qFL$H3D_pLWdZR<;Sxo#;{C@9)h#?HnQK(-O*D6^d#Sdm%Z(xIifng_PX z+Y(XWQY)IB>|T!=uqu?%N0xpX&2H_)hO2=zk(c$XSN3c$Uj77M?*M@~cuAoxPBN}_ z94q{r5w+xoWej)F^#%sAyg+Z!fG*J%o&|b`hIkfeyPmItYSE_G#5=^Ux9AV)(N8B{ zc>Q0gJF$AF={(?07ss|0kNxcEb{xY%*~Q9C9E&0WHiyX0Utmq}QwQE6c;jK+Q8jWO z)Vt`~{Zs-^s2ryg+D2V~Y8OX~I!SR2T>3=)1bftvFxZ8uc+tw`b1mYUwpy>#hN!RO SQ{Hg`kf>RD>5@lH!7#@Q-$bbpRaRB0C5Rt-=!kEL5%NWJT2x2qkFy%5wF@xF6 zIV`!XQLJD#OAcEudlWmE&6>lJ%NfN9WU~b`XtKWqn!=#TcuUYJu{hN^Kd-nXH76&r zBr`t`C@2u<=!-5U=o=91jV>q=lv P69Jl8%mE~L7$FbfCI*~rR%?Ar4pz!$r410maf8#vnW4lc zTSc};(_o*p34$Pd%zbp+V~}h9g22A`kOQwd#L6w#Ai(DLUXg6}d{`1-U=d1PQ>>3y zuU@@+^?Q%?MZ4Y5@ci5LU)$y%YubO%OYte=R;?=M%U*3*x9Xg)cniaZ)!=;9YYtmhi}N+FJ?vN=&ey%gVb|(%e!*KBE?di- zZy>*7t#H1H{HnFe`4;kP)*9z^@7(abb%FD3&{?&>v~N z?rY3Id)PCQ(v6$9l8(I-M$#TcLnqn~L{CqaZrY)9EAYd}@jN?n10RKLDtr)#F-ii7 zf;ts^>iSQ!9uEUKv^{r{^=MFoyRH{G)V%TV?xT@2h~#*Px79mR2J)})9>@pwp6^Cu z;h?;I(~Y?5bD}~G=lHno+I!Mw0x2tC?#}M6J8&I;aESKJ!M-zi>WKcH6Afsd#ixXq z>-dF#kHq2ivkakIC8sP5QTkGQsaqA~%c8>hD)LoP<9rSIx>(?R9r=c6a()5%mS}Un z;WU-JL8m3w#gbV5Qn%V-MXY|QSsigvtci0dSrq5R1(b9}7wd5;X_BPwys(EO&#|vp zG>zWPfoF%Ixf@8+QB~oVdBgLvH&yS1X1E`WJz?%Rrf{VD+!5xk42EX3?}iN%57XId zaQ=or-#zObI+1CE_Q-~K9jsW0{&r-JL(1CHF(KbzEbTpzj{-$^-}d($(+u7Q&^*_8cqed>m#6 zLf8d^CRmPWj0jX`BX82XVy`e#u*=O-Ii`|LhX+Ty?%o(vbfeJmcFmnba{yU@Hq((# z-eRLilW;>*Z57jZ905TEBzu<@Z|L|D1Oy7i)!cAQOO24O1&O0TJR_R2MJqx?b_34~ z4rrnyEUq0DCu{CNPlOrxOq^PuT#3`C4&tXQ(ML*2u9|&brfl~!brcS>-JcaeMo+W6 zU)=p!Vf3QE%LX7Tka+=@e37fyNCwYcfyqe67FPq`J2dUVz`+K9cri2Vhg0Ss?aN@i zw@(e29;l2Q8M)BFxfyJlIq#b$alL8I@e8fV7&C2OFs+=`P4EB8Rf4mZt%eRr_W zd&2gJ+rzoFcYSaJ6``e>+j@^_c}^~&y%RilvaJ9;3U;1gsL;f^*{Px)+t!(SOJXbV z1?k3YG$-6N-7RNp(uXFt{7mUyc&hG^N!Xg-4_irRzMyBw4(Li6 z)1#D{0J(KsIR{SDIX+gyyS~RpgR| zyx*VWHRF4&$ami2op|1O3!Z6{ZzYvJ{mnS75`U+0TBcTiQDCxLWRfc1iNCi|s5$dP z3N=@daa=o#k4fi4oYa1J&VZDzF@)r6e5nbC)%`xRG*fS8q-Q#dQzHJ zk(Q@5SDV)3%26e%9@T^%>v3&Wdu5=mj=y?b7skh0RDH6bYNCcHePy7u{IRyD;cq3c zt*&Z$ZIw%#N3Ga+rB4^4Hc@_Q+}8dknl|EvqYmE7M~kntxcaIzZ6e=|n`qgJOGis_ z>y`dXW7?i};x>)6uEh=FDsG6{d5v;^3!Z4~b?s<5?!3}y@KbMT_SI?lI@JV=Vb|ROw08Z`7!ZU#fPw83 zydA+8;lr2DS5gA_jD9$90E#3)9=i3p8y&%U8^S!hW1sQAxt9;-_jkNt@RS?}FLdD6 z+$AT+2CCu$02shiX&)&6g$83y&bP&u-wzLmJAoJW0rwO!Go3+Nk@-LhUJ!}7GjhxP z1;cBfTnd`0Ged|3VKQF1W)KvhRz9~mQSAiLeu`(z$Q=Tt13vkHv99mf67z#U1i?bY zwwroF)GQ~aDwN<&phw|k+gl+X;7sr8K_KDhjo~bZU_14FauQhwcE1a2@LBHC8fq0W$UG$PbMp&uora+;TV}80a5w@w4_h-6o0V` z*+g7T{u<`X9q<>TcQHSg;t0T!SeA5IeZ@pNRv-%#{M?Dg(x2%{I=Osmu!*p^Huw=P zYoaX=^Gf3Oc3x~AxL8LTcGq=05zaK3+FgmRfCxAl9d6lD+J_svUSLPPIbzgM#WfiG zk}iw_2q2tEhiN?{T1@3c_Zvi;dV7w)2Y&LkfeJ^^pLFGOB^BvDGN0iT-iT5ROrvDa z9ok!t@=r5N&SR6V*>h7G1mwuR=$X$sIHSCs6D+2jsGalN_Qu#mU^ry}{`kp_!~5a{ zA#$u-2wPy?xep1Mg?~(5{w_5Q-z2qTB09MR*^`rYCWTyiPjHsmrZ>oL7S>8#w_|*# z_UIk?j$W8)$1PJa;72ldr)Eocg6pDo9$!kf=cL?otCx;*f>LU2d1aIjj(!D0sFcop zc0%E>djxXeU z#AQ`QPY_Jx^8n{8tWs}LF4H`E)B?VyBaTf@{)lSy+es}oeMw3Bdx`E_OKLcr)G&ok z2y(7!WNhM^&^btt(tu0#eeR)Q;+?FO)GV1ip$E zo;2cWTmdRr(Te>GhI?jwYU-tht>yaiFu5FU*JtY{o{;s)cvCeR_H z!J|b&h`@YJyc6bIpiyGg7dgg!f0v@T=WxFtL$AUip#nl3!pU?A+ouTUa#M%+WWL)^ zk?z?D4t8SzefAkKk|7~ILf8($7=?OL7^6%lTXc2y=ED(#3>=wVKHr^i>=gkG$LD7F zEF5_>Gu4#grV7uIAqm|*iWJ*>I26g!AP~#Aaz8tpc!T_VAU%}Cj!(X3V zDIWW$6P=3$QRF!f>=Ry!wIdC29OIQi@t`9;F5!$V$ECQuYar&K+hYI+{(zU^N)zz| zd|@4u7o;E@KCp%EkiK&BH%o*Gc3l}p{7G=;W1eEA!wq(bGh@ytR%-t@Rrn-CTqECp zr_T>GU>*XAPd?-e2Rr2Nndyq*%LtB7soY(YLJseIAZ38~6lDI$Q4Y6AzfrIN$W1zB zt~imDdCXn?<2e5vspaI}biTduM9l|w!hv*0w2EghGfn-L(iam#zM{$ zM?n7*D5$)Sq*s~YcloDO%DeXGlsgtFEy=O}JCuj?=|Wp+0Xk0>i@OB%b6bKOoCW+i zIQkFJ_6T871$>bL?1~cIZukm!Rk#MX9{?~7uBm1Y&jfh$|LXkRm8)&^y3#u??5a+FYVBI)L3Jgk!mm zIl|ac;E0!;zbXA)!fwS%tl`i9b z8Pp(cvBGpI2MJ%GF;>^LOWJfrbki2y`4*^KjaI~3yevRRoO@Y1<0bK(H2+?_D87q2GkyPF+@5>C60gp^e?M;V`}=A8AH+@Z zL7M+zTzg4twjws-is(_P_z}$SkL?#Y6z>p-%Fs7`S!eVQGh-L*F5RHOcV)iz5ITr3 z(|r&xP##WhEATbl=PMu~zOb54@u7I=*dcCma2zoWbcBKDytSFkNx#v|+?{z=CPx=D zyU({juq|Q95&1mDcH*4Khk2vTQNt+M`}@W@-3ZMMl_Ql&v%vgg+?lHR&H+yDy-BM$ zoB}iiVS;o`hWO>F&8XLVfX+Ij_6Gi^o zy-6-0-EL6_*tI>7*PP${<_5wz;iUWch51=dCsW-WUL-xQG zh`U}h_x|bMKloj9Yv~iKbnpITa_;j}TTRYC$`J#;vCX{Zot|HxFpj)o_s}OWQpByggJs(<&kWgPWV6j*we4en%_>v{9icjLR*3u9N zq}!iK7u|Pv6JrO>b`Ai06TQzlC};;8ene^kPN5do+Wb2LW)Q~EYSM?;bTU?lwY{Hd znpFi+K*!@}c-KiSUOzQ<-(cb)p#iORQNO64(=Qkeei7X6`q-$*`L`Tt)!K$zsQ3V$66MB5^qhlbYHAR!OT(IVs<^Lca9a@;WYWk??d=FqsF11{hBRz`4AU zV+zZ?CvB)qWg2>o<>9oD4Bzf@H+XbQ@U3q#my7Gy-nd~+%aXLd?Sux;q8M%vgxuXR z1aAp$MLaa3Z4PaR3&-PrWOM`%(Q{@veyZzO(CNB?c5z);e&{)2=mfqIY#H~ghkPp# zUT7@xhzrm0v2Jt6_`0#=*xY|;xm`qf#BRk6L#=A2HoyV|zX55=G(sN~7IoYNarQ7`4b=WL*MbP1vZ!84<78l%a zaRWPjs}ngb1X>6@uj^wNVgKnKrk57pS}^FUnlmlj)p4V78MFWje+9kUQT(1>5x=e8N8PA0an4do_eaX8XI7B zHpqt9uw6*K4ni}OY8z~Xonzvwrq)qk1v9#CNmt>?OGGSuXzIWrl?>~DS|IWU; zF!{wlZfwjYxwX5?w)*jY{QKvBx_KzRGIxOFmJX)DY>*`V^q=$V2f4%P^j|-mx_v;Y zzVp?zJ$>?*PpJKUZs+GeqxRX8O!2oP!Jkho$Q`vWTg-jg$K0_+Hh6k$VW)!MT%NaY z>Yx6yb8~Xu{^P%^^#mScAX->5{7 z%}pfpBZpyeMVy`uw*nslT@(ni69FD_H!1UzI!baV(_{$s=`fU)NwATYO;ScRBjM8+ zfE5)LzV&NKOyU0jvpBmQczpJu;|FYZF=%zE%EQ?^PV{DXb9Qxk@$QPXIeQ2~;p_`Q zWTvx|6iw6doyas_hR^U7`m(wF;jeZ)%BzrR8I9)*tvC51cSo+y)LR`MtDv;rK1TJ$ zQkzI_NPRg{_E2$cb^mCj?aTL-a5~C=pCkna-Yzy!omp=y`*I(Z+Agu&eMS6;kkZw? zaz7_aF?mA0wX2{SRu7=Br=AB{ejo8zp^-*r#UE>^%OT&u`V!U;_W|iKs{UmCE+N4X z^t#*dM*5m8MdzaPd!w)!+n0CcKJcJD7U$!9L&A;|+HtJWe3y`994pK2gg4nQz_ZkT zX>Tei~DzS7qZJzRvv%k5X- z1qjmyDzz_RHJz9uT*7@;V?8d%B)J576;ubMcf#m4$nG*|8r0l{+`NJ)b@w&z^?nT~ zqq0Gaul5HJv9=3qb0(&BvutQWip%NAuBBKsyz2b>`Sa%o1$^0cL70m4%&&C44rd4S z#@ZQ@{C2LXhylzKwTHBZQE?>*Lzjmk#`Sk@-36eZ6bEF3i%!_07v%6w3B&=pcO*QU zP*;F=Yg8UBEf|l#_(&7~tX<3OF9a2=tMD_46WrxhUft}P$ z|IC_8WK=tI&QQEc!kptrSPpc-t{#X;jHagM8Nf*N4vYBC2%rJG*% z5(gsDRviC+D4MjQ%y?=P;jchaI2$Hl*a zP+TF+YoyUlAm3Ih7Uweoz%LUt>*6I66=`o4p6obSB!#k@-2n zA9Ni7(P?dzok?L)qOcy2zIU>p6dE&jfnrR8ZGysg!6dmNPs-z}j$W5lc~n-P=~_i@ zs1>;`56Knun8|tQ6j_m!XZZqYNLrIs2|q}QgHl~ZF3P(rOM62e77h=Rl$6;f^SLSJ}*mjVw#AR!^O5)uy;BVN)xS$zbAgw%#_X8l{} zT+Nx8bIzPO=iE8p>}!>Zsi6H}=R@a%Aw_vA7AKpI#SD6U4TLB}^_4YMj@p`rQS)+e@h`c)pv4h22od(31c6-l;sJPmu@>Toqy8_T0U(E=EkVg%ZbU4ItvQ-d7I-1{t#4ajvF1IOhFgx`#tDzSWYfC8^3AJvBhvP9D3R7yTC|Zc z$G2`F2VT-9G`=7<-SC_nz7_CnW^3X=^a`lyL{34Inl{sjn8Q^m&J098p2R3kcQF41=lVz}y_kmpGr zv_J}=MN$OqAw8fbF+od`mPrZo3MqqDCG8~@%xlt8mGqJt=_CDQfYjZBwAu$rzmyJ= zA##QclM!;3j0&lg52VU&eNRzwmvNQGmffG+`1ofJe)R5d-S52n@X5@b*Qa?7H_3hP z;;-(#_V%A{x>sk%KKb~@i_`l>1m^t{vAUQj%J=^`17#_w#oK+jp@(Zm_E|TCQpwvT*>(L-Y2iVKluBJL2j(m z#JSE5*9iiLoAQ6QlkFDe`PCTLiE=G$al>KE*~Z|vHXU9F?YM>8!)ur%v=!U9F_Ojm zG6OVZLII-7Jk_j)joMh8RJu%0n+z2Btro1c%d&6_v46Ec#dmW|l$RpTX zW+ztzjVQ!{KFSMs8wYGrpO@%y74jU4ocE);J%XaN1@OqC<0W7L%0-?5VA6pP8}BLX zJpO_I+?m>p0y?$jg%O#WiyCc#5%JWbm)vQuPc1LZ-Cc6lrw(8&p85h9nrvS@#^U6fu^-#eTcd+Gx%9#8V$6`TSAZ5Hb&(`2*hKL)tJvL(u_i6|k^COcBZay=nH1kPP@w&xh5bF)KhVYFkfQvL_wNWu=!e|& z>%m~xP?cmTIkP(qosm6tN9_U_nj>jG&DRxp%!S9PA=WzrQqE#$$sY~Ix&>H9wCLwX zl`bGeMt=^`_oRT8W(}U6_AiS;Xr9|Kx+W}@{qwaw3_y&@=Wl? z(QD|^6Viv7h+zW#Mf8_;1k_!DwSNC-nxqi<+!}S8(O4^eH#E_FA8|D@3Uyb^C={Kb6(sKZ`;9Z7qNYDu&3Zr=LKiW zwdd>(^vWxD7gj_Kt^g+%z$o2!;&^qFMQwKzOLJjibt!rznET>;VB!_li-GkCQU*b# zdL7C}#ClY$tGD8qGEx8Yj75xzO5j?{V*_GRS;j-{_+CdM1iK)%2?%E*IZQlPTo3Se zW_if@k;|)gcxsO*U0ywvikMvz%$ye{*bWGTR}WdjhNY@~3YB=@k{3RRC-I!vtt?;c zGW1wYD4R$5irKheR8Aevd&JVl8=P>{4ze$ah;c*OWG{&wB|@cAf=?OVbF6b@i4vP6 zO#JaoKn1G{GAOnhwh!NUVZrn9ArrGJLUL6|OdGI^{}ya^CSw43GsZ+eJ11C0;g*B1 z4X&RlTP;!vqhf7$GWpTNVZTDp7&-6`olxe?(FgB~i9)$@bdLkLB2utTt{D7`7Efa)HXKYbgkzLl;ZVh+Jy9 zOV2EANmv3!7$6SN7QMD7>F7)EZ4U*C+|onOdvs4iF9C9DQ55~&u4GF<+g;3?nfEtu zX5P~AzV{h63NMAHiZf(h=iEuQqomVw^zGF@}a8DW0G zgelEoW-BZB2Aj(sL5i)<@woJ{qvgu3)9rb(NyyWmfyqNOZ2`z+0VwBN8DWUb7i`NE zrpThtiX4>YyT{%{@!F&t2^XzSZq}p^F{tx_--g z;f8Iial0FczUPD>e`M*lyB!h@D<rvg>Y6tyW z)^goiL$_3aQU`6#!PxPIwNbY|bK0Ix4eRwAo~zrb(Ld>hZc|$;yR;Q;E#AGccxUdG zMdwj(;ym7bG|r$cqv@Xm2p%yT*9OQ%2G9^DU?wyVvLf5!heXeb9AG|yg#?a>JTOI3 z04#|Sz_KU;j*1dsMU(-@#3*1@Q~<}t7~n(#CnI)HJ7gU0gWIdFw`$+~?(2tt-u*+% zS^RY2=Btedac1N3YU`t4EWG~J-qiip?d93OzrK6(!R8T}epCQxp)vOIyN5?N(8rmd zEPFbY8Cwu3n%+y8+(`<8sdl+qUyuDyJpmtRJ{q#^t25x7}7>$vE%Zy65;h9#6H? z#P+1$3fplNv{3f64X;YL;)!P91LdWDlA1Dk7U#+5(u*e{y4P(4UMk%1g62+atcbWA z?%EA_#S2$pg|a$5E5XwPKQ#=YX2ScoUomwJC-TpG^X;H3=byWNAm%>_nth4@J^#oJ zf7EZxudjacc+F|d9|tDzZv(5|+lvdf?fPzL+oVgs2f#A9=%-UdX6f97w()2zsz&29L;C;?86!PqF@q7=bqnn_T75{FWgePm zy@l?b!2~o<48dV90(S|x?+qq_LyqZuUtFGHQFTbU?ZYJ3Tv=C?01*>~ZG@g32E8*r zc#<6_$p@(pzJ!f0+0a0q;_FEOLDtxHUm3BnxuD(!OM+F`F^UWKJg3_b&iyuK-=VSn zxzm1sDlF^w5Xp|G?_-e4q#2FXA07`TP6prp=@|3vgH5cSTkCgwQXG+at>6BJzTZEX zGt>m;vAK_eO50ltwDwR66eUX_rk_gPMpY9?l*^}ck1CNKwB(C3Pd0vhnjO49dvpcPka|BOtXI4=@s<;-bl zHBZQl>xa;Rl7ZCwOoeJDVO`Q%DtZ>IC>5wU<21Colu+#EnH#x7$dQ%ZrbJZ_{J8jb z(`u1uqi4*CM`&sbSBGkr$VL1334&F!Yp%be)rW*H37K$)c=g01Z+YIRlfo9Ex&U5P zAwXfErU;w^h_f~xLOXGO)%8NDw7N^kqK!hdonX`ti1kW}ML|ljb2W99Pz5s3@tZQP zp4`xj8>YFc1>oU=sJV!tK?4ObM#Pi75Gkzpp3u4 zi(NN86GMctA@-BKr1n!~Q|}X?m{t~mMAIPv<7NC6p5rF3m_>|fWb$cl{;QZP^IC@J zRX)LI`MHD_y-_ezY=svSZj&1)|37ji;wPOZqu*fAN27n|psxVR{`vorLe}SURF8e9 zD{UM1kls3t%eMWj?|8?Qylso1Y1`@@Y#`ZBnzE9OCLq};)m`#wO`%%gX1=hj2!~a& mK2pwJ8c0h(#f6jifuaaa*#4VNB*eta#4E}tSrS{liYqE)2jLy9C5hD?dC0HGMgq+x)E3}&~RyR)2^ zdS)e(m<0^40Ly@51VIi?5Fq5yKOxB_=KukM9OtNj9XvLy|@9Ku{Ikv|wVeAP0w8Oo|zQOEgc4)%^ZpVpi z>|)RMn#OZGY8mxguFpD-6@k29ge`j~A{thd>bS>6bKj_2LfBjwSB?6*k=+qrMY^6s3D2VJvXsqnfRzhR` z?)CY(>PrMEYTtWt-{|(Q_;Zm}hyw zf*kj;0>(ww2iVVwfF;%sIKWDPWi|jf$jX2fHV8PxDuBZhj>O90=#io#1aX2x8_l2J zef8_zFMjj8<}dz{GrwH_@ckr%gKRE*KKts6{jmqlTT9b_dv*85`&+BWWczUepoyj^ zFTY;2|BgK+nJ1e+Jgxw9+(&>Soj9)l`S+I|RmYNSok!Mul5JY9YbC`UyUv9f?FT%` zZG{cX;fdx2NfxJK?W1#o7PtaGjLbTMCrV0z6}3$385dTQCt1(8L!OjmXYSa|j^Ih& zGsD30!el7bP7~ANUNdSX70@CcgeJmDawWqJ-vi1?10^+O&Mf=+tL6R+k^ITlJZf>;(RNcGZIYq+pu1XGf-4g}(3_fRf3b{N+qemw!6X z02{v=?P}sBWQ$J0?d$5Q5+lgl2-`M-wq1e*0=8W~ zQZX82{YO}fl}6>NY~ZJ)x#Ag+FGGH)i|QBy_eQ=)iGu)d53|8t?PsbO1#iU}aYws3 zRf)!;@xu$CP8_K{wTmQbPsI5+KdS6%;j3u!6IwL~i6QhCV~q{>kakmww7(GNh&M)p zwx{Akk8GLtK9FmT$hCd~$x*EJR<{ppeVZmED^@<$L}@|4@5IfPqoH^}+C`^wEiT6;HZ`fh|CzWF53%VU6`Sv3jklcZZnZls z*Qgxc0QdLWH?hu0JRFb2(i-4yp`rAo=ff^xL_4aX&7jTps6@>{+hu3oz1SZ2 zA7GHmrFBuMEuIX9PY2o`PB7Zy7A(lEcie!pV=}S%t6$Rh+xM%Q7{WZ!4{$fr7T5hS zba102nIAuV48+6-JZ#}|WSB0UtzbgxA$#c)d4RL*sLtou52nsd4bP8^uoDEnz%2~H z@iiWqk5IGCHLBR=6XEaJ4hLljg3)Hc8;{d#))&X*^5c(b*&INUx1Kf4W%D3W>)qWxaQhH^7 zgiBz@7j7s|E~%J}6i;Qnfty|ok~G~!f5WYweSkm`~=e0V{Ocn{c2gEReQ37KmnlyarDyrziLPH@O)RQow(N66Dp#_0uV3-Fy4!SmuZp6%JGgEZ`(c9!mj zZf-$0t*jE_GDa?1xCfx9CH!SIr|N21FJeq1U7b+%e;0Elbu>ftiaM-LtK*Uvy;hLe zYoHUYtQMt=j$TXuf9CpAimuSFDbPuy|KuQ3fYia%w-lz0YL4Csp5=1W#Ob7AK;x2W zKJ8e}2_ccpDp$`$~(U+^_^x76rWpXckh27gRl8SeCeIUT|RWB11LXPjhdH i5QWnRjG&~Jy#G%z>aC1D{(#s*dRXcg3u-|tY5xUbSC>`* diff --git a/Examples/__pycache__/LeArefBuelow2017.cpython-38.pyc b/Examples/__pycache__/LeArefBuelow2017.cpython-38.pyc deleted file mode 100644 index f5b6d9b0319c33e0d375e2b6059fa9a443031011..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4120 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 JiGha^1_4^}kR$*A diff --git a/Filters/__pycache__/BaseFilter.cpython-38.pyc b/Filters/__pycache__/BaseFilter.cpython-38.pyc deleted file mode 100644 index 3708f94bf043e48dc78c4af5fc5d048e14d5eab6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 905 zcmbtS&2H2%5VoCU2`gHGgoK1R_y#LMa<35D{?KxO6#~H_7t0%a*+_OAY^P#-ZC{3` z;01Vsh#MzfffM8GHVxv)NHg;M^&aPWzWiueqPNW@o2#1dadMIy+1G)sQL7idPh=8cOAj23A&V2NL!stL08sjTKTLbzz2yR&&<;`=}z8q%VAP!-4J><$PlXPruFoI)~#+f8Ml^io|Hy6N`9FQMFH`nEIrI- zR)4edQ0hjs@1$>S{SW7W^?yXvueqnCsXff>z>~WL!y@}pvVmyvHC#S+QmwkA&)EbP z*_+=7`PyiipI5aJ`H3l8Eo<-cv&z3}m-*uK|!?QQpRdH0b|{iF>OSv!ut+mpIfeWnOlqrQ!-}5&u4F6H+a*kO+zgF0uMml w1Wbx!LU11gmWVG)8~W%Wx};xlN9v|87yI4OP;-!GM)lbr6kQ7E7I61gNkp3JL1O&aLEV{eon&ir{ zAotQ-`wq#mPth0X6YRC8zCuqO?n<)Ms)rEZ>?}F+k(_U4ez<+Ri(veI_y;@cAoQpI z*&Gr49Ky5*AUNVULt_lzAPe$v9Afkw@sLOF5RXLoOE``={thMaUto9`NuT0<4I~@Qry3Fxyr4`1t!1efg4EJ5NCA7od@e z1Z*PnA``h#PH<9Msm_R-3IYy;Gz9e3@VY(oF<~L;8@VdVr4W~L6!Plu!9 zXWyQ%(_zDp9p1!uP+V0VN~MyH($9Ucd?KJu3(xmAtX3AOkLhZ(K=Iafj88yu=p4Vt z3;Y3J2M)at76E9XUp)^O;R2mQ()=1+N3a(!q7T5xdF!X>I_6-xh#xopZSMtX5V8sm zdnIx`6P8Tn*_5mUO;Vi~TKOl!qRt5;R-P%AeKd_y6{Q1eRGAl717-}nI`H6`c$;i- z_@nS?LiB_H*|N{2bxb+pWG)ETIg^T5=KUObs}%c(GeG+82TozOLw&u$5sZe}clRp!VgyGcr)frZgC$)OaSCM%8(05{nP z#4F)Sqi+0`xxBv8M?Bq^8r)3ya|>adgx9j>!c8FSOBzuaVSyZ=Wm0zp!PlqxThE}j zq*gwd9j-QQ6wyw2 zE||$A^rL?Vew*qkn+b9%gd(O+WIk9Q2R#$>vsEo6ohnd86;37&ieAn|)dtlkyotf4 z3fZYOzSycr!bZ|EzWS=Tj@>u_FFXPlu!km8g_6Im`$8k2-=nJ4Q1J!mb`J#F-@{$} zDZYa{cz$=I)*HJ~((;W#0o#;TT}pG!%gpP0lwOo9Tkfz8AhBZ3ut5 z2|;`Y)B0<7a1?ZI)oV#y#dQLjTd+~JmmSLZK2sZP0M)qlTRM-M+kA7+L;A3E@Luo_ Db;8z9 diff --git a/Filters/__pycache__/PassThrough.cpython-38.pyc b/Filters/__pycache__/PassThrough.cpython-38.pyc deleted file mode 100644 index 019c3d7450add1e97ad397af37452536e7867d19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 806 zcmah`F^|(Q6t~Otx2cb9VSvFB zq|km*iK-wCAUFpsVBsxbArEeXG-U8Sn2mngX|R~VHael2pB1IyDs#PIAiJ5{)DLap z9ydh{rU64NxCIs~bXe`(3##=pSF%~>+owxaTots$D-Ze@Gs!g;(%>woV$HG1IW9!q z7_5u6pkti3STt3=iK$X_bDYVlF8SwKKjaWU^2|tuPB^ZpnbmlaR03L#l?Dzm2I!sz6@Ft3}-WN~)-_6@yEcAh1J z_lfIGd#8JvN6upJ{d9Y8IMN+2?8{CF5!OyZ+K7-!vZi$FBSJnkwA`JH31KoLL{0YU z4m#D?^#WTSI5MYy0z>3G7JlSyX_2Vg@lLC9g8caa#oyaOwUZZ}ikJ5fct_|D4SB@X diff --git a/Filters/__pycache__/__init__.cpython-38.pyc b/Filters/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 596810a0fc74e4de9221bf3856226b2226623e8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmWIL<>g`kg8dF>5-&uMgTn$Po)3= diff --git a/Helpers/__pycache__/NFSpectrum.cpython-38.pyc b/Helpers/__pycache__/NFSpectrum.cpython-38.pyc deleted file mode 100644 index 495adcdb46bbeb0cf258be6010ffe470a22b8775..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6586 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 diff --git a/Helpers/__pycache__/plot.cpython-38.pyc b/Helpers/__pycache__/plot.cpython-38.pyc deleted file mode 100644 index 0b91dd1d9ddddb965686c218accdbe7ed3985f3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1435 zcmZ`(PjAyO6t@#Q$+~raU`QJhqK6_83DL`r2!WW!grJuRkfupf8fRNrnskl}Wphv4 zXW)psBcFl;SM~*b<$(4TcH%v!>k1OC{Qfz9e*b=bTd&s$tnbf$Mn8N)exWkGTu`3D zF4uqvB4|dsblags%n4VpGrH{xF1$0c&4e!k;9S&2P0YfHC+HRl=P%(VX>Y^~`FL^Q zxL?37-vQCCoKs{(&&iMhcQib;Oq8qXDLsehz{Z4gPOZd+JC;0cZE(A-*~mX9lxVgE zfmSBo`OYuYA==^G04C-_u7ARj5&G?vzJTo$PcYbs)PZ?}x)?7#O#gDdX*> z`+b=h*2@ZI+^AC;Z;(ZuBs1RUigT5!48AB2iccXoR2h0Cv7W}ylTW+gz_>uZ5xEG) ztF_ia(M?(()4UL^^&;+flU$Xpm#Nz9cUtX@^*67hPHQvCdWkGs`0V4}XXBx;d$a-` z%4HygG8)ijTC+ctnImt3J;q*LFO(+*egp~@cU)9ws;KUysH`d_mM(PL(t$e?y@Xt1 z=cI=OMuf-!38ooB(@?Ho8*H8xSpu7xsbVks>H(-FUL+X0Q={@W$T5a^z3>6tb|zkd zpok`?RJ)ojlS4A(isD>ozKSOl`FJ+y$Q9I11f5I?9r3>sy5h~9LE1d7Y5CAfp$@$& zpPTe-W;5_~m7ZsuL29V9+V)HyM^dKH8?!K$cFSHAr#ZAa6@!11uNo(@_$8K!&_%j3 zZkt>M{gMLte+jfo}IC2oqRYQgSuO{mbN;qDI#o(hFvPmldjfDh|8ZS%slU&GI_%ig2 zuLip!QjzgxB}lwtxP4E~qt68-h`*`1tlPQ7cQ8o&Ybz076||bPX}h#Y=PlF#UQIX) z=|5HScC*mx`pUx$y3bV0%Xpu J)dN2W{s3<8FgpMM diff --git a/Links/__pycache__/BaseLink.cpython-38.pyc b/Links/__pycache__/BaseLink.cpython-38.pyc deleted file mode 100644 index 8f3bfabc3dc417b64f525b06211c4da27edca26f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1950 zcmcgtF^}6e6ecCv*7PXCStL4jF==y-N;FhpSOENCz(hEz-7HiBw4H z8XvOd_Wp%tykF5j(7A)wPT4wl>U)%|x|gAyN`Ma(`QGFA-uoW){OD*%VEl6OEB`bm zEkE$dwgk~;i)U6+h{RQ@o;~H@NojuJ^~@hf(o(-1YLwO5`hS>$ZNXj!8#H>zwXO{ z=!=10$08O7S7dP@hH&v=9Y5w)o@eR@{u?C(KUkV`YuQR0w#t^$Omyk8l;xmfr|dM( z{j$-Lmf4N2a>16832CwmDcH*BV#r`*ZaVY}^#8X(R#Z86lDQ2`!<8*EYcs8wUNPR> z$ud<|4m6Ce)*INh;2SQ}EAP+aVzva^`>fPpz09{P)k?|K0fOb0@uJML71*>8PSqB0 zTh~U{qRv1|7E<9=lI`-oL*eTkIp^T{W73is0AygW4gGt zAJH|fBP;XOH8BHl^5=uuMi+8+ktr=^XF9Dgt9JG@b6-`<+5F41uh02%hD5Nl9p$Fw zwm#fLevFU;5G1_3+bQiS{Kr5(nO6l67Xv|KixFUb8`>a|F`Rf;4by`geH4v=-X`^+ z&ENz+c9=#TruH!PU_k>1uDitITOcT;HQ+zN=ChXbzMMOH{R`<4vB%mF3LEMhZaAK&Y&&HoBcR}P+&rWp|2+!y*fFv$P9 z=ds@;K-@k}?laJ77%;lL-7#Qy`VIxqrSGkeJp~;3nZgWS(Kl2CcgP!h4?8Zrhdme0 z*PsOBk1yULea2B8sIm?V{<03?HLCl`nimB(hj4fk;7Gwk051|Z?IUvrN)1qY`C$k2 zrq+Bstm7n6K%^w8he=XsQRTS4l_W1Jp0_81BoR7=?YMnvw&nm);6KoWD2`CvL4hy8 zp1=k&*a08Fv?CBPjYa_-M(w=qPse=>GBp^v_gMElE6n@2f%bbo{T045<3|nR&+meU KMYR!)gTDaF69S$9 diff --git a/Links/__pycache__/DDFSplitStep.cpython-38.pyc b/Links/__pycache__/DDFSplitStep.cpython-38.pyc deleted file mode 100644 index 513c3bcaeb4907c4e0970c6a001fd7e459647dbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5165 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 KBZ1?oS^o#uQ*Iyt diff --git a/Links/__pycache__/DDF_profile.cpython-38.pyc b/Links/__pycache__/DDF_profile.cpython-38.pyc deleted file mode 100644 index 7e4dcbeba48679459db028d3e6f30d96a70803e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1183 zcmYjR&2Jk;6rb5|uRmg^77*IQfH>3=imh;}6h)+%riZ3NpgJ zZ=pWy>pT$C1dOlq_fgdn=#?q0OI)>u#awA!7-RJGVbx)dbO8m~fxEKRL=b7Sh6I!} zfjWJ334P72Y70D$+=3ik*=6nydgjWu?Chf#UxldZf!<^OK9X(|dW2X{wl$L3Z|Ph; z*4)>*8`mAmCRne}(Ek4nmj=YP*0CD3Q)73ayB$>f+Bd#d?E`+}gKnUP54bi&V~|@n zmd?h~g&uqGV!h>$W9b2hwxEn*6kD-O-RI(xi}-VAYqb~Vt1uSat?&P{_VTN`L93!VSj*sIGBI= z*Y~gf{^{F;m7dg<2P}udL*buSS68clfhqfhvdL1}_dkAexTowRT`n-klVxC@0CVYL zKG9#b0+vBj8A+y$EL0|)7Rp}oJOz={WX_ezUuK}EsVJ0{a~dg|<~coA4ht6{fm1g)3XGExgzhO! za|aHjaHwz=H1uKC)!og5eS>lW0sq_^o~1D#F2W>b!*Mz*V|cYWhZ5vo#*}9vd!kaHK!6;2>7l2ddh1`Xmll1X@GU@cDhjl}Zp4q$A=Eie+bKr#`8z@AA~S$y3+ab;Hng_C?(C1HOljh5f*dyayh!d-kDC z-oQV(2Er9vWs0pa)z;ZrR%Y|>tG2-^Y~g*yHrXOu!n?qh*$Uo8c80CuU1Dok=z3OZ z+^sh{fuA-~-f_>Wiqi1IZs4Xov0N*_(yb#uJ+R`4Td}Yb{)h`Vuo6FN2iyu{#;um$ zZ&pEh&`=e7EpVehZQ+L$$A*0D67A9j&i{>U|y5=$olIEHL#% zT>~uF6torl$|1fT8mO7FrPME=eXfr$PPtzKo$t?qR{CYoh5kI~V!r~q)L#Hy2Jf8L z%BY`#)-!#B=?^sVA*0%=q-&C%Wd;ypx_>dTY8+)Mx?UQKkvK@U`>t>yGe}dO5j9<& zJh{}UjiuH#s};m)DBqXS_R@(3vy5l%-$G{TQ&+3$5j zf@RzyWKKo`5C9{Ad5YR8BRA+AxZ~LgwNW?h9M@bS+~bRK2i2J^)FtwRI3eKkR?GK% z9uah`tD9lX`T>fG)xl@K31tD)Ixf1p)+4A0Eu%HVE#OfbnugtgK`anh#hn8Hrw1snE_<6trmp{~JGI_>+S3ur(# z%y-*SoTR>I#obOfeFmVBliRv4!`u{I2}zR-5ZTh{QhOYX8}-Qy3tz92gx+=+yVnQVZGgm$KAx@p%2XgOfJGYSI6f0 ztL`)3z?k({S@g_iKL=~M0jK4+0rux&Qfd^WB|AVO>}C!mGLWGkk+&lWO+5_+A(_7Q z7NKqm4Ucq8IMB_9T^@PI&z;(5V?t~fN?tRS}pHe*0{`Ifu`NQ>0M|84RT^AZ! zvy$Ur@u}lvy2DZ;J&>rEX;CNBgSed)90{PzbO?#4N(+Fu)L$?dsU1oq)yd|aDgMz> z9z(W}zei`BtvII-BCANvb8;=~WjqBjG_S z)39=l^=vKb+2vVm^U7oJiHsxaNihPaMYA>H&>PL!r9jEv2 zYnumg$TuJPQOq`XVrVrP;>}$@eY@M-+^g^0z2i1FDMCy(pN+(7onx^A2Cw0tTmn%p zmDPg$t*K{5rMylw|5lRiy|Xin#^UoRKp8(2i4^dc(MS^oL>35!5eFcRH}>6E?TvFziPD$T&2P5nF`Gs|a1K-I}#uv$os9J%YEr_%7n{V{7Zm z)hpFnUCiOY#1cpwe>@j%2&q7MO}QcHs6_>&S`@EP`5cjN5IGBy>7n~r(D@4sq-uz7 zQLDOZYxT%B2z3%YIk`;VmL1rQk$%WSX`wZtDHOA;8tNi`=hWWIv!XvW#v_FuKZxq4 z5U8U<0V#!?sdA_d^*%~Wo0iv<4Ty4pAa!V*5L`?tbP8hi6Lnzp4T1&4toI)8@(4*n zoJ%t-w~Bl+V;aN)>v;7xLDVBHfL<^6IXqzD=F9;0}lyh9VR zKk`|6P#cNkuh);qo6O&zT(1`LgEx|gBFzc{L*g(q=^cqH=q1j8RLxuvbC3YRlP9)* z)Q)Uze=AeH(;_KPMItabDbZxcYjcZ6S?z6nfgonIkVX)eq!xaR0>hD0LOM_>D;R1g zIB=#9bY=_;(l2?`$PJj&80&)d?SV;B5;t-j@uta_6$IMj{(;W0rKd-#0 z49tgD`X-|N!a3z-)Z~bAUuVc74(HA*C)%KhIp>j2m?xT?zru<`WDdi{6XYo}Q_+S? zCkhf_*obPWx49q0h$<+r-SNpwi3E&2eSo!6Q+?$Sz-LnU2ZO5v&Ti8NXfQ& zrn}7~(_5`ne1~Qt8D~XQ$!lh%1OW#8*Kua1ej31qAnwC75)bej2k}w0lmkNV1n_*A zCsX$_^+%cZ9suzmQ(LDou`$I2AOyF0?05&A2oRASvw2E4Sz8Wyui|XrYMO~Bs z-i0p!%nX|u1ulXcnH`CqU%=!*j=2s0VTz3M5UQGIjCh;)7oM0D++qJ!P1smNqb=7t=CfjCT^_FB%Ne{^*__OF%WJ^ecY#k}RT-|~ z%Oday^bvxi5Bn;Rdsbq0UTVMx&;XtK{@<0Xf1rx3bc4-%iFKJ>cx z^;h`tvp!t_RrbU(L}QyWD6vf$ljMGbY_?Q{`@PF~;4RZjdFPOHJDpfiXrIPyT!z5+ z$;%g+C*&R{57Ium-dm_6EK3g1m$H%SIq@nnCaW$sh`d1LMIx(2)`)zQ$OR%400^DP zOGHRB#LFPSz2D>6-0jC6hpUXEk;CGTJGm2Er=C)q-l7uj*p$rd2xQ;zb<&NQeuR9< zF5<3>uCeUZ@!iZQT%$WMdx^3@CkmWVuT1N9?E>w@@lPvNDTSR*LO=Z_CQIG`QM9u9 zA~Z;PKFv_qQNMscbW3|hUDpkD8TFF7h_*%O8``u}VbPf9UbQU94(GxleG>B^b!nFB zb+JG#ba_*qqfj`)g$F|6vg6?Ds~b?c;y8##g3*_vhv+RNf0~h5MT{xk+PUbq$*PO zY$%s?pJQl_`!M?gy6)85&O7Z-%5B~5H~|zT@&EY!A3stj>+3ZOuF9)F@ega3^_PBG zz8rYD2Saw?Myykd*u)9!QwQckPzZ~sMLYji3d^SzcrKFCZ`Ns*I0LIup7&}GVu}?d zNN_at6Z8znXzw=a-tO()>2j!nT$u!YC0(OWd-q z9Q~G7RssDjkiT*~=gQu;Qai0|TeqysYFgAQmn*4tSyN@uE4*_0*3Z9RuBN4Q^;7F| zEiIdQ9V}HyAzcIQDzQJYwvEly$!9>d0T`;USJHg0rZw#ezF$kPEp*on!kS*u7PPLG z*tRY=KhoV?=x(O4^170)tQu(}TYGt))*$aiyivBSq0c1p67DJn$(JISP>GaJ5f?mQ zoI)iAt{)4+_?X6szD%%@^h8`ka79TVDT-nd;c>pgIKmu>NHG@&$YUc=OC+cpvoZ>p z+Lek%M*X2kVg>>sh0>Ci`SwI19|I_8i6o{-3B%BDdiY2fWf5F|CCU?d6hFzRC*hPctn zahwe9Kibb9lPVNI`y49x{hd%f;0zlFf76T(9yZ)D;$<(SqI)NZ||G zL=47U2?b4X7m@i6pBsb*u(m3uI`@zhqBC!}1rDm0^K1Q`c8(x2<^AVEy%8C^wT7Lv1eHJq5tPt=|%_AK;<g*oGg^U+i{wLb&DB8nBQBI1XkS1%hUSjc3dzUN)mY^gRyk|{as@Gvmz_yQvrCK z6+BO6MW*isJd%yA%t<<#LllfT*qvu3!}QGVXZA6CP?3KXyQ^n>lQr z6?OfylIg#!>f^xE+|Ejgegvt>A6EQ1;Q!}#8)`+{=9i(}7j6P{Q?mVtsmIBveekgV z>?t0#pE7x)a*^WXIJf_y#e>C{iSom{>r{#U$^5g zV7;-DRnE?caL>-N5^RmpEH1+5tg3%cfUPpt8P2vstfD}ufQ`VFe#**=xex`)m@@d6 aZphgA#vB&(TWv<_-<#sis=a2fIsXE)QR0aJ diff --git a/Links/__pycache__/__init__.cpython-38.pyc b/Links/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index cf342379258789ef915eef4e8a83618d08caa832..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmWIL<>g`kf>RD>5}lbD7#@Q-$bbpRaRB0C4Iq)ikiwY5kjogw$OvLH4-dD%cVPq43Ba6wLHNpMMO0f_J7g5djU zvPJQM6c+2jv=o8tjuL_hBI_*zIutH}Y)BCcP+}!R5i5`a6Ti&#GxBp&^~*Bz@>BF( z@{>z*Q}arS_1!Z|JW7-F{oGu9eG-%O!B*(U$7kkcmc+;F6;$5hu*uC&Da}c>69F1k L3^JC7k%tignbu5O diff --git a/Links/__pycache__/_ssprop.cpython-38.pyc b/Links/__pycache__/_ssprop.cpython-38.pyc deleted file mode 100644 index 92326670f9fa91d596d73703bfb7fbfbde9065f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2872 zcmbVOO>f-B8Rl@g`dDdYSr(i)?qOiS>8`Qbm5incj5@Vj%T9sV79yzzRM-YZ&Mqe+ zXK2n)Yb|DhBJQDw9{LlkV}C#|z4Tt>&@-sh-ayWK)Fo9g4h!)n!0hk;Ouqc>AHV+FN716)oL!gjw!VLkTYXJDPkXP4@lMHf z(JaQ~GJG8Q>OJj$PGX|H&l>AiBEa2@eJgR*JN50%EG{9gtB^nShyE#9_Y5(M>)usw z+KT<@lCv9}lDKiyI2#*`?|6mLb8+yBd`|RyY;6(KJSDIEd*0K|blEJ$P17{XS3Fp3 zndM7(BaVgFi)Q&0{@(SbOD}$BylES&t=BCV`--(>8rH_|$x}MLU>fin6yKcl>=)md zz+AZE)p1W(Mau+dV`t08ylhs@(mS5<*WKw(iCI~<=v;Ij=3SJ3LX;P+Y&>V?96oK+ z#!1N~i&fi3WXJE=6MSoD-J7n>B3^?%jQ@+THAt=0v6z)w>a&&C7tESzzYD9_u`~F( z>Y0TjoVEDEtWDblqZj`WfgPJ=Gk@e`=cZnb=goqdANrTQSH#KOH0`PP;;*J{b0&N+ z=XrYxS9Dm4NOLKulIby1R40rIDN-(2SkT=lDP+vWh!vE*C_^VXltqi;%F9$Sninz; zNA(UDG!#_knnz(uhx`y~rGmOMtMZiV4W(J`)bGo(;1I}|PGsC~xy3!WAIdb9W2?o6 zLl$X8!-7#RqO^=zjDfS3$(W_L=%|ooPLEkCBd$-JjhL&P70Mo}^Wc~Fx;>ikQ36l0 zi1B>8-J_{gs)v|ks#rSQ$dgbpX9L#Dv_4d46lPi2odvkRd-uV19c#HoZ&Rf#0G)EP z7wcX;>4`}%Okt;Y$aI+ZYF%gYe-`g$;Y+Sr(f$9_dRnI4I>KK(+S%Wm1-nT%sM2Af zEwDq*(wK&sWdxwo&M|P7Gmo)`sOA}i{EVx3f~E6J+a1LxHCV##iZZiw%c0XkB1x*l zBi5rF_e4vLjJQqX$qg}a=W-}nt8xrAO9YK12QW%s8A_DcD_J6e1~(SutWFVn88%RcNj`Dmn^Z-;B-FMvi`ex67z1&>sJW@w<~P~$&<4eG`;K;N>x z+NO;Q(h_vY0N}Xb8Z;w3x(o79gHOUFt%*Dnsv*P&z|jNAhhf1>MSoVX1bJPXe&geR zqQLKj_r^XZAJ&x(cm%^aVA$rAMn0nA3d;}{(XnmAv6!VyjBs2rIf3@M>#LuhE&RG( z{p!z??){Lb$P_e}vnsRW>$U>ub!5=D)!DsR`690Z+oY=p>CZW~f0oNaw zhl5A=?>+n^JRE$&#gQ63ud}0{pH%a+@fFxmA6ldbEwV~(`2qO>S@74%`;CAsW92eg z^;`ZmvO<20`FpspkpL0_X_0j@=NCVOZr3mD4{TxoLc7hXiLXL_Qp{skE!f{vG#}+a ba?&pFbC36(+)v!cmwj{@Gi41ekY)eh?T%E1 diff --git a/Modulators/__pycache__/BaseModulator.cpython-38.pyc b/Modulators/__pycache__/BaseModulator.cpython-38.pyc deleted file mode 100644 index 21b776bfbc5ebdc7e32d73b91ae1c8cef0c23cce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3791 zcmcgvO^@3|7`F4Vn@xAO6|_)^%W!K@)}dTLh@$NW{gB##XnV=Uns_FORePMyjCY$A zxAxEUS8zpwUyv&&{sJeSckDP$x`-`8Sh9B<&%B?{`@HWyKRD=mxPCtVjsJ4!dB4+3 z{c7Rm7`OQf58(+v@lt=}r;Sm=r}swE9JTPbnY7cL(T?vu@I*_r-*}=e{nyRWu4p{< zdOLsMwAX7ao44=WT^{nWv6@FVm3EeiVb5P)ie@r;Aw@WqHln@ttBIFm+~ye`(i{20 z8#RPKYKn$vzVSva*)DXx_D4Hd?}*(u9@e{9cf_7scjTVvic4Hxb-D*2>UKC z5AJXypJXCWxXm``Q>iSoGs#vVVnvM1N*%r^;Uo!JT14t5v4WJbOtRBH zixoSa#nFtJMLNzB!?>1Arei4tHsR}l$yY7`brWrz$|I4b92-nLRXl;C&tOXZ!%RX{ zY?#V)%9Hp^iqfxpxsKJ8MVUfs^T@`T>ciB<%5DU(2xS>0BTGN6)$usD(iHJIVj;;6 zg>_ESYiKxy#?*c&{0iq%hvOuRUKD4a8>tP8xMDntB+`aJB89wC!ER{D#Zjh`MUS1t z+(mk>Gsv+q5?E^PJ57~dia5jDwo;ttmhpsSE~*?LdUl2gId20eDe{5a)kSN%@8UL8 zUBUwZ{oz~ht-ov;nN0K!eszyOj|a0Xm4lO5WnyqIi*mw;89a#X!+bm#-oN+cF&_^q zOqsz3ii7!L*$Kl~#WoCkqz|Zu_Op*Rx2?9kV<(yC?A*t~dOxB3Es7fUHqPeHfEOm> z$pny4k#w+I!-D0|YWjerJ(W^9V8|%9C<|8RlVuYZ9;%N?JeC^Joafd6o>^|)s+O-{ zbm)*#pbq%xH8k0`Y)_JmTfK|*I&ylCJ{_#>!GS)0Dk9K2`(!f$8~ffX47Y|k3QNP6 z$}OO&?ho84yepilV=x$X*YJK@`qPZn`QGeRi2S1Rq*Ssh>qs|wS zgG_2EsxnmNZzEAx$*JvX(Fc^E^Ro2eIlI5CJZznP`i_U&vLlCU9HEQWn+4_*VEM23 z@EwsL_>ei)a7ioOMcH!Hze+%)T(kQb_zZb8a~Xlp(u#EntW&9^=AbOcA5o^YH1kXe zBEVXdN@k=JKXA=KSrRLL* z(&k#d<4`5{WoTcq3%Eiprqu6_fIDGfX=`am$ru59WXUm$9_4~xDWjOw`_zhJNa79k zSs|wAE4@CtBRFg0th)7i|7Jf3g8rt)qniO6W)@A5xE^71TG)AQkW8RUO$aoF^TYd3 zO8{+X8~#1cisV!f6J;xA&Jo)y8VacyIskh2Phy(9i>Vr=jQra*pKn%ji#~6c zad$oJKdlP++S&EZ&bZz*?CsO!r_gl5aM=w*SL3wa4?`-r^2=@*iYy94P5%TgJLM?6 z&@}Jq%k;QH57fM;KcL4|dQ|giv7%8+xAC}++t8!qx2|-W4ZqvQ-75cHYxr(gud{6O vaipnFJITwoYj?|rnlE=B$^`S1aig8vex9~v=bOTzZ^<4*_FVBh{(j>x*%37< diff --git a/Modulators/__pycache__/CarrierWaveforms.cpython-38.pyc b/Modulators/__pycache__/CarrierWaveforms.cpython-38.pyc deleted file mode 100644 index 8481db6662007446e0aec56e317aa036442d9941..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1610 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 diff --git a/QualityAssessment/__pycache__/BitErrorRatio.cpython-38.pyc b/QualityAssessment/__pycache__/BitErrorRatio.cpython-38.pyc deleted file mode 100644 index 01eb3fbaee5e35a102fab429d4c0129962383ec2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1677 zcmcIk&5qMB5O)6BQg&H^7LefL142}SR^o^dT6Tfu04x3vxmaoJ?go;$*v>Ak!U-M( zPKc-A1$cs7Iq?cyV8&_Fh9eSFc^Z#rKF_aTZf^Do(6^oM(W4$AKX9{79&C1C>8rpv z;Z90I2mamE&AiZa$Ufm7_dgQue{e&eJI~1=_zAk?VBl1z<0BEj5u6w6C;)BmnBpzwF6e8&$+cs$suR7xW}jQ6`K~x)I%Is1e0zE7BBi z&FL*F$FD_fnq$PW@Qq5XK;?u+G)^O}DHkd^7MxC$%;;{UMay8=U|}}Tu-1hGxAL_} zC)H+4{FSIKMEPrfbR;t|I!M@q&iDB##X3(a#H^0zUTdKs^FH1r%s1XAyGpP0-*{FQfGjBC`+cVj%FbnieBwb3ooEkyS~P>w)EtSwJA#gdIT0eK z=0s9G%f>RL$51J$^gq;GDKKR`KTDx>yDKvftlnBGy&V2+_4cqx*V0zi_t%@2wUk->A&uYp=th*F!0L!lZt zgnS`Qlw!SB0Bfd$j`E>Nt6sw2-9(hCU)Sp<2r4(9R-P_0n7L#w23-|^Zn*VVdcw0% zG CiNu@$ diff --git a/QualityAssessment/__pycache__/ConstellationDiagram.cpython-38.pyc b/QualityAssessment/__pycache__/ConstellationDiagram.cpython-38.pyc deleted file mode 100644 index d5a652f258f17addea2b374a370492739bb7f0ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2502 zcmb7GPmdEf6u0MJCLz1*(xntc(TGDu`X`a-ZB@FotQL?;M1l4YsTw(BCz)k36Fd&P ziLxi?5vdJ434E&56SwwO^+5ZcXOc}&sZ>X{pXd2KzxVv!&-rF;twx}| zy!i{u>xBGoW@~7797=8zZgKlL;r27D<8u0tG@Mtkm$V}s zm)k5-nx~gxe`gjRGg)|G3!e z5G`{9Ua*^ywREThv=99j^n3urjLt|1ekgiuLARkhGqO+i-4lwxEph}lEpfd!xOTyv zSu?wD;eOa#K@W-*X!p4T*1OX`jP-IHsZ2I&wV-VG88{)7kon@%CyREvZPmH$AnWdn zNG(KA*`tAYBL+R04TFP091Q{m%zQHJW=S55Se^?Ws4N&k=&m)J%|^haSW(6$J4lD>0ZKWe^ z580u%SvS{?6fDs`OGX3M6-qntkoC38q+}EAhU_rT8;*8zk@WQ1ilUAWNWHNLAjt9jiOzZmYewd+#gOZGAmvNvtMcK$!9zceGYK zEHke;nrJ@^<1|)bcnP%Um|CRf*;nWlI(`3NW#;?$+L4R9%Z6oFfo>A>LkfxM$hsoO z^n@I_itJm;hQx$~gxSTJQ*OPmDOvEyzPDc~`6bP5?%F95?)#%{LxfKTzp`)H{3=xoHjQnT_JQ<;9Dr_Ok%N>LZ{V~53+->8w1pB zgC|+CB6qhJJd$Jav2icTq!jrmOL?630}z3VSAZ}npriyC07WTObzgwXvIxzx^JvFP zK`ptCJZvgfi2y@#1;)ytou#M2L;fSf2RAU>y|_PKf|pbrgz)JtZYbjh3t(3%7{qxH zK{+dg95@VBB5*BT!~>zm;NBu6C4ip7=iA`2RC|vp)R@HG`I*|y$C=>NNuZZ)UdP# z!q!u!z5K}-ZfIJ40N@3eCe?KPE}$2rqMVp@dwPBaR_4!KAq7hypWzf19 z&YENKdOiXw--dx)aHvl&(+ygu)@#pp=sNr^!OElWQj1uxeY*y$I<1*s-Kqh{r;atf zxDvhvl7se!z1QArcnIk!yvSjwYhh^WAL)7+!rde#rxJ!di^5QDfHCqq4*0w*4QRE* zOTPd;_h7)|{Y~=?PH_zsnCsD-!$tbRn}VKdubAcKxtb-_<|Gpp|Fgor&$sXp^XG=v Gt$zTk0j=%; diff --git a/QualityAssessment/__pycache__/ErrorVectorMagnitude.cpython-38.pyc b/QualityAssessment/__pycache__/ErrorVectorMagnitude.cpython-38.pyc deleted file mode 100644 index f14581691de4570869e99ae17349b04183f650bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1041 zcmbVL&2AGh5cdA0L{USF6roZs=9VClZLbKSKnvwSqX2?KE|#-))2+OAuy+Hg!UcGc za^%1>@B%!6ublb{oEUGi+lchUNHg;Mee<)kZ=1~q0{YqeMSs)~`t6ie3P9-rn_UnL zF;AeOcZ8VFg0F}LU;LrZyf>&5UVV<%V12c-vWc0h2*Wyoa=g9XAcWFchNZ0niU zO26ZArt~o#%OuMgKfiaN(n+3igSm6#Y2n9d8DP4xYp^63069JYHeC=II`c04xi|NB z&^PZ>Q0njwnU|r9U>?lFyWndfXv3$UJ%ox*)=J?-V#ecS#6`E!z)KoXO;et6Z7S1) zimt+9r8Trp%q$%#VemsN^K>%nQmyH%9m9}HujapO!ME##)|V5zAreW&*oIQ+)Ygi8xR=myabmarS**RawhLlx&KmzjxK2@r!>MEe{0H;zYQkSCDCidnG$!^Z} z!d$u&;f(ztER<#>sASkd{8+$d2uu8INbaneoqO&a?@%-*^9r z?{5yUz)CpE;q!>0Q$CPT)J)8{oLwYW^#*D}a|1 z(~q zQ@17AM5uvCO*|Cr8-@B8?BWaGl*IHW8#7r-S{O4Um^odx)vQwrmQc)5W07B+Fknb9x#Xnu=u~R>dG&i z#YD{L`10X41H7zIoq|wxfW?!Q52qzc9OM{4U;zN$lX%1)>?GUCL(nBQa4`U} zOy`;{(NuAp%m9Oy!xa8RD%9|Z>4_M~M1szsqfCb=V;)Bkuq&qh??|fR%|QHsMJ7kx zSgH8vvW=xqeMKa@FEB){N^&gNB!io1bf{j2$U$TdUz3EfG!lnvWi76a+M@}rD;ZWYXO^KLZ+?bUz zO0%r50ZRaZH~~=2Z8Qh7))obod*{f1i&Q}0G7?r0^ph~TN|zD0$iuaI>+bR4?p(zSku;Z5JqeZrl>eNv>>7?}H zaeUa>Pz@j}sR=#AHje7B^w3FV!&)_bujY$lgEXf%)M41FDZ-#iC}9AXiSS~!V9bXA z&+-@gd=3i@PXal`&wf6 z3J<`<5_PoNy)c>s7YjO%Df*d!XH!ZDqk=Q~3MdXps8&DJ)TjViO zuL{2i9((HW;1!e;E2;1+Nhr7QH%PVq2+sSOKq2xug@6CxSJd@UU{3*kPixDYzd5rO zcZ(KE+#*nb{Jj%&r}gOxR>vW9Y`creFS}5@DetrtTC{YN#FWjEgnT*#Z)R#-x^Z8Z z4M0?;psdTOP*^WZA1E<-ciI*S>MU;3gOc7U9d5!+o0_9}P7cowa;2b*FV-cMWdl$Y z$=@Y&QXYw?;01VstW3ND z6X&pi8qV_hyHB6bpYI_}4-mxL;+^#&LLa{P9RU;z*!BccjcP2B!W3hV0~x50h64^| zq+%KmIFgB)&IOX=$-7i?#k^8BEBU6Wi_t@m!pm2lVXhO961;)ZR=o^Mi?0;W=y W^XIOgo+>{Uel~-)*7rWdetiRbSdXv( From 4397ceb8aaecd73d53c48712a0db693fa9a9021b Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Thu, 29 Feb 2024 18:24:13 +0100 Subject: [PATCH 34/37] Fixed: example.alpha being a 1d array caused problems with newer Python versions. Renamed the AAA_DDF examples to Bajaj2020EtAl_BBB. --- Example_b_Modulation_SMF_DDF.py | 2 +- ...8_DDF.py => BajajEtAl2020_b_modulation.py} | 25 ++++++++----------- ..._DDF.py => BajajEtAl2020_multi_soliton.py} | 23 +++++++++-------- Examples/BuelowArefIdler2016.py | 4 ++- Examples/GuiEtAl2018.py | 7 ++++-- Examples/LeArefBuelow2017.py | 6 +++-- Examples/__init__.py | 6 +++-- disc_spec_ex_BuelowAreIdler_DDF.py | 2 +- 8 files changed, 41 insertions(+), 34 deletions(-) rename Examples/{GuiEtAl2018_DDF.py => BajajEtAl2020_b_modulation.py} (91%) rename Examples/{BuelowArefIdler2016_DDF.py => BajajEtAl2020_multi_soliton.py} (90%) diff --git a/Example_b_Modulation_SMF_DDF.py b/Example_b_Modulation_SMF_DDF.py index 747c615..f5840f6 100644 --- a/Example_b_Modulation_SMF_DDF.py +++ b/Example_b_Modulation_SMF_DDF.py @@ -6,7 +6,7 @@ Fiber_type = 'DDF' # 'DDF' or 'SSMF' if Fiber_type == 'DDF': - example = Examples.GuiEtAl2018_DDF() + example = Examples.BajajEtAl2020_b_modulation() example.n_steps_per_span = 500 example.path_average = False example.beta2 = -25.491e-27 diff --git a/Examples/GuiEtAl2018_DDF.py b/Examples/BajajEtAl2020_b_modulation.py similarity index 91% rename from Examples/GuiEtAl2018_DDF.py rename to Examples/BajajEtAl2020_b_modulation.py index 1518fc4..3e1eef4 100644 --- a/Examples/GuiEtAl2018_DDF.py +++ b/Examples/BajajEtAl2020_b_modulation.py @@ -1,10 +1,3 @@ -# -*- coding: utf-8 -*- -""" -Created on Tue Apr 30 17:13:41 2019 - -@author: vinodbajaj -""" - # This file is part of NFDMLab. # # NFDMLab is free software; you can redistribute it and/or @@ -22,21 +15,24 @@ # 02111-1307 USA # # Contributors: +# Vinod Bajaj (TU Delft) 2019, 2021 # Sander Wahls (TU Delft) 2018-2019 # Shrinivas Chimmalgi (TU Delft) 2018 +# Sander Wahls (KIT), 2024 import numpy as np import math from Examples import BaseExample -class GuiEtAl2018_DDF(BaseExample): - '''This example loosely recreates the experiment presented in the paper +class BajajEtAl2020_b_modulation(BaseExample): + '''This example recreates the b-modulation transmission in dispersion-decreasing + fiber from the paper - "Nonlinear frequency division multiplexing with b-modulation: shifting the - energy barrier " by T. Gui, G. Zhou, C. Lu, A.P.T. Lau, and S. Wahls + "Exact NFDM Transmission in the Presence of Fiber-Loss" by V. Bajaj, + S. Chimmalgi, V. Aref, and S. Wahls, - published in Optics Express 26(21), 2018.''' + published in the Journal of Lightwave Technology 38(11), 2020.''' def __init__(self): # Fiber parameters @@ -48,11 +44,12 @@ def __init__(self): """Nonlinearity parameter in (W m)**(-1).""" self.fiber_type = "DDF" - """Fiber type: "DDF" dispersion decreasing fiber or "SSMF" standard single mode fiber.""" + """Fiber type: "DDF" for dispersion decreasing fiber or "SSMF" for standard single mode fiber.""" + self.Tscale = 1.25e-9 # s """Time scale used during normalization in s.""" - self.alpha = np.array([0.2e-3]) + self.alpha = 0.2e-3 """Loss coefficient in 1/m.""" self.post_boost = True diff --git a/Examples/BuelowArefIdler2016_DDF.py b/Examples/BajajEtAl2020_multi_soliton.py similarity index 90% rename from Examples/BuelowArefIdler2016_DDF.py rename to Examples/BajajEtAl2020_multi_soliton.py index 57cffbd..ab2b992 100644 --- a/Examples/BuelowArefIdler2016_DDF.py +++ b/Examples/BajajEtAl2020_multi_soliton.py @@ -1,5 +1,3 @@ - - # This file is part of NFDMLab. # # NFDMLab is free software; you can redistribute it and/or @@ -17,22 +15,25 @@ # 02111-1307 USA # # Contributors: +# Vinod Bajaj (TU Delft) 2019, 2021 # Sander Wahls (TU Delft) 2018-2019 # Shrinivas Chimmalgi (TU Delft) 2018 +# Sander Wahls (KIT), 2024 + import numpy as np import math from Examples import BaseExample -class BuelowArefIdler2016_DDF(BaseExample): - '''This example loosely recreates the experiment presented in the paper +class BajajEtAl2020_multi_soliton(BaseExample): + '''This example recreates the multi-soliton transmission in dispersion-decreasing + fiber from the paper + + "Exact NFDM Transmission in the Presence of Fiber-Loss" by V. Bajaj, + S. Chimmalgi, V. Aref, and S. Wahls, - "Transmission of Waveforms Determined by 7 Eigenvalues with PSK-Modulated - Spectral Amplitudes" by H. Buelow, V. Aref and W. Idler + published in the Journal of Lightwave Technology 38(11), 2020.''' - presented at the 42nd European Conference on Optical Communication - (ECOC 2016). - The transmission fiber is a dispersion decreasing fiber.''' def __init__(self): # Fiber parameters @@ -44,13 +45,13 @@ def __init__(self): """Nonlinearity coefficient in (W m)**(-1).""" self.fiber_type = "DDF" - """Fiber type: "DDF" dispersion decreasing fiber or "SSMF" standard single mode fiber.""" + """Fiber type: "DDF" dispersion for decreasing fiber or "SSMF" for standard single mode fiber.""" self.Tscale = 4.1022e-11 """Time scale used during normalization in s.""" - self.alpha = np.array([0.2e-3]) + self.alpha = 0.2e-3 """Loss coefficient in 1/m.""" self.n_spans = 8 diff --git a/Examples/BuelowArefIdler2016.py b/Examples/BuelowArefIdler2016.py index 6bf0c74..0917c9e 100644 --- a/Examples/BuelowArefIdler2016.py +++ b/Examples/BuelowArefIdler2016.py @@ -17,6 +17,8 @@ # Contributors: # Sander Wahls (TU Delft) 2018-2019 # Shrinivas Chimmalgi (TU Delft) 2018 +# Vinod Bajaj (TU Delft) 2021 +# Sander Wahls (KIT) 2024 import numpy as np import math @@ -47,7 +49,7 @@ def __init__(self): self.Tscale = 4.5473e-11 """Time scale used during normalization in s.""" - self.alpha = np.array([0.2e-3]) + self.alpha = 0.2e-3 """Loss coefficient in 1/m.""" self.n_spans = 20 diff --git a/Examples/GuiEtAl2018.py b/Examples/GuiEtAl2018.py index 35cca5e..f31465a 100644 --- a/Examples/GuiEtAl2018.py +++ b/Examples/GuiEtAl2018.py @@ -17,6 +17,8 @@ # Contributors: # Sander Wahls (TU Delft) 2018-2019 # Shrinivas Chimmalgi (TU Delft) 2018 +# Vinod Bajaj (TU Delft) 2019, 2021 +# Sander Wahls (KIT) 2024 import numpy as np import math @@ -41,11 +43,12 @@ def __init__(self): """Nonlinearity parameter in (W m)**(-1).""" self.fiber_type = "SSMF" - """Fiber type: "DDF" dispersion decreasing fiber or "SSMF" standard single mode fiber.""" + """Fiber type: "DDF" for dispersion decreasing fiber or for "SSMF" standard single mode fiber.""" + self.Tscale = 1.25e-9 # s """Time scale used during normalization in s.""" - self.alpha = np.array([0.2e-3]) + self.alpha = 0.2e-3 """Loss coefficient in 1/m.""" self.post_boost = True diff --git a/Examples/LeArefBuelow2017.py b/Examples/LeArefBuelow2017.py index bc59e47..a676937 100644 --- a/Examples/LeArefBuelow2017.py +++ b/Examples/LeArefBuelow2017.py @@ -18,6 +18,7 @@ # Sander Wahls (TU Delft) 2018-2019 # Christoph Mahnke 2018 # Marius Brehler (TU Dortmund) 2019 +# Sander Wahls (KIT) 2024 import numpy as np import matplotlib.pyplot as plt @@ -47,7 +48,7 @@ def __init__(self): # Link parameters - self.alpha = np.array([0.2e-3]) + self.alpha = 0.2e-3 """Loss coefficient in 1/m.""" self.beta2 = -5.75e-27 @@ -57,7 +58,8 @@ def __init__(self): """Nonlinearity coefficient in (W m)**(-1).""" self.fiber_type = "SSMF" - """Fiber type: "DDF" dispersion decreasing fiber or "SSMF" standard single mode fiber.""" + """Fiber type: "DDF" for dispersion decreasing fiber or "SSMF" for standard single mode fiber.""" + self.Tscale = 4e-10 """Time scale used during normalization in s.""" diff --git a/Examples/__init__.py b/Examples/__init__.py index a3e5245..b09e4da 100644 --- a/Examples/__init__.py +++ b/Examples/__init__.py @@ -16,10 +16,12 @@ # # Contributors: # Sander Wahls (TU Delft) 2019 +# Vinod Bajaj (TU Delft) 2019 +# Sander Wahls (KIT) 2024 from Examples.BaseExample import BaseExample from Examples.BuelowArefIdler2016 import BuelowArefIdler2016 from Examples.LeArefBuelow2017 import LeArefBuelow2017 from Examples.GuiEtAl2018 import GuiEtAl2018 -from Examples.BuelowArefIdler2016_DDF import BuelowArefIdler2016_DDF -from Examples.GuiEtAl2018_DDF import GuiEtAl2018_DDF \ No newline at end of file +from Examples.BajajEtAl2020_multi_soliton import BajajEtAl2020_multi_soliton +from Examples.BajajEtAl2020_b_modulation import BajajEtAl2020_b_modulation diff --git a/disc_spec_ex_BuelowAreIdler_DDF.py b/disc_spec_ex_BuelowAreIdler_DDF.py index 78913da..4fe9448 100644 --- a/disc_spec_ex_BuelowAreIdler_DDF.py +++ b/disc_spec_ex_BuelowAreIdler_DDF.py @@ -1,5 +1,5 @@ import Examples -ex = Examples.BuelowArefIdler2016_DDF() +ex = Examples.BajajEtAl2020_multi_soliton() tx_data, rx_data = ex.run(5) # 5 is the number of bursts ex.evaluate_results(tx_data, rx_data) from QualityAssessment import BitErrorRatio From 898601a2f239e4d4d008529a78c076d323d8b639 Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Fri, 1 Mar 2024 15:16:38 +0100 Subject: [PATCH 35/37] added the BajajEtAl2020_... examples to the documentation --- Documentation/examples.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/examples.rst b/Documentation/examples.rst index 2d8ba3f..66dbcbe 100644 --- a/Documentation/examples.rst +++ b/Documentation/examples.rst @@ -12,3 +12,9 @@ Examples .. autoclass:: Examples.GuiEtAl2018 :members: + +.. autoclass:: Examples.BajajEtAl2020_b_modulation + :members: + +.. autoclass:: Examples.BajajEtAl2020_multi_soliton + :members: From 24da5eaeecd39987e121a659cfaf54b921d99662 Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Fri, 1 Mar 2024 15:17:37 +0100 Subject: [PATCH 36/37] removed some files that appear to be left-overs from testing --- Cont_spec_ex_GuiEtAl.py | 8 -------- data_with_change.mat | Bin 164104 -> 0 bytes data_without_change.mat | Bin 164104 -> 0 bytes disc_spec_ex_BuelowAreIdler_DDF.py | 8 -------- disc_spec_ex_BuelowArefIdler.py | 8 -------- 5 files changed, 24 deletions(-) delete mode 100644 Cont_spec_ex_GuiEtAl.py delete mode 100644 data_with_change.mat delete mode 100644 data_without_change.mat delete mode 100644 disc_spec_ex_BuelowAreIdler_DDF.py delete mode 100644 disc_spec_ex_BuelowArefIdler.py diff --git a/Cont_spec_ex_GuiEtAl.py b/Cont_spec_ex_GuiEtAl.py deleted file mode 100644 index 64ad57f..0000000 --- a/Cont_spec_ex_GuiEtAl.py +++ /dev/null @@ -1,8 +0,0 @@ -import Examples -ex = Examples.GuiEtAl2018() -tx_data, rx_data = ex.run(5) # 5 is the number of bursts -ex.evaluate_results(tx_data, rx_data) -from QualityAssessment import BitErrorRatio -ber = BitErrorRatio(ex.constellation) -ber_value, n_err, n_bits = ber.compute(tx_data["symbols"], rx_data["symbols"]) -print("The bit error ratio is", ber_value) diff --git a/data_with_change.mat b/data_with_change.mat deleted file mode 100644 index 2346dfffeb392cc83e3ce5f50f4d40e293ec7a20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164104 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 diff --git a/disc_spec_ex_BuelowAreIdler_DDF.py b/disc_spec_ex_BuelowAreIdler_DDF.py deleted file mode 100644 index 4fe9448..0000000 --- a/disc_spec_ex_BuelowAreIdler_DDF.py +++ /dev/null @@ -1,8 +0,0 @@ -import Examples -ex = Examples.BajajEtAl2020_multi_soliton() -tx_data, rx_data = ex.run(5) # 5 is the number of bursts -ex.evaluate_results(tx_data, rx_data) -from QualityAssessment import BitErrorRatio -ber = BitErrorRatio(ex.constellation) -ber_value, n_err, n_bits = ber.compute(tx_data["symbols"], rx_data["symbols"]) -print("The bit error ratio is", ber_value) diff --git a/disc_spec_ex_BuelowArefIdler.py b/disc_spec_ex_BuelowArefIdler.py deleted file mode 100644 index 25d1e4e..0000000 --- a/disc_spec_ex_BuelowArefIdler.py +++ /dev/null @@ -1,8 +0,0 @@ -import Examples -ex = Examples.BuelowArefIdler2016() -tx_data, rx_data = ex.run(5) # 5 is the number of bursts -ex.evaluate_results(tx_data, rx_data) -from QualityAssessment import BitErrorRatio -ber = BitErrorRatio(ex.constellation) -ber_value, n_err, n_bits = ber.compute(tx_data["symbols"], rx_data["symbols"]) -print("The bit error ratio is", ber_value) From 91d7211783d66029b637ab599af922295fb29cf3 Mon Sep 17 00:00:00 2001 From: Sander Wahls Date: Fri, 1 Mar 2024 16:11:49 +0100 Subject: [PATCH 37/37] corrected two merge issues --- Examples/TimeDomainPulseShaping.py | 1 + Modulators/ContSpecModulator.py | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Examples/TimeDomainPulseShaping.py b/Examples/TimeDomainPulseShaping.py index 2aeb265..088d893 100644 --- a/Examples/TimeDomainPulseShaping.py +++ b/Examples/TimeDomainPulseShaping.py @@ -137,6 +137,7 @@ def reconfigure(self): self._link = SMFSplitStep(self.dt, dz, self.n_steps_per_span, + "SSMF", self.alpha, self.beta2, self.gamma, diff --git a/Modulators/ContSpecModulator.py b/Modulators/ContSpecModulator.py index b784088..ec9bc72 100644 --- a/Modulators/ContSpecModulator.py +++ b/Modulators/ContSpecModulator.py @@ -281,11 +281,10 @@ def demodulate(self, q): symbols[n] /= scl else: - for n in range(0, self.n_symbols_per_block): - symbols[n] = nfspec.cont[self._carrier_center_idx[n]] - print('carrier centers',self._carrier_center_idx[n]) + symbols = self._sum_shifted_carriers.extract_symbols(nfspec.cont) + for n in range(0, np.size(symbols)): if self._use_power_normalization_map: symbols[n] = np.sqrt(np.log(np.abs(symbols[n])**2 + 1.0)) * np.exp(1j*np.angle(symbols[n])) - symbols[n] /= scl + symbols[n] /= self._power_control_factor return symbols, nfspec