Example #1
0
def defaultParameters(D=16.4640, Fc=1.9341e+14):
    # D = 16.4640 # makes beta2 = 21

    lambda_ = c / Fc
    beta2 = D * 1e-6 * lambda_**2 / (2 * np.pi * c) * 1e27

    param = cu.AttrDict()
    param.lambda_ = lambda_  # Wavelength
    param.Fc = Fc  # Carrier frequncy
    param.PolMux = 1  # 0 when single polarization, 1 with polarization multiplexing
    param.gamma = 1.3  # Nonlinearity coefficient in [1/W/km]
    param.D = D
    param.beta2 = beta2  # Dispersion coefficient [ps^2/km]
    param.alpha = 0.2  # Fiber loss coefficient [dB/km]
    param.Nspan = 20  # Number of spans
    param.L = 100  # Span length [km]
    param.PD = 0  # Pre-dispersion [ps^2]
    param.PdBm = 2  # Average input power [dBm]
    param.BaudRate = 32  # Baud-rate [GHz]
    param.ChSpacing = 50  # Channel spacing [GHz]
    param.kur = 1.32  # Second order modulation factor <|a|^4>/<|a|^2>^2
    param.kur3 = 1.96  # Third order modulation factor <|a|^6>/<|a|^2>^3
    param.N_mc = int(1e6)  # Number of integration points in algorithm
    param.NF = 5  # EDFA Noise figure

    return param
Example #2
0
def defaultParameters(D=16.4640, Fc=1.9341e+14):
    lambda_ = c / Fc
    beta2 = D * 1e-6 * lambda_**2 / (2 * np.pi * c)

    param = cu.AttrDict()

    param.nPol = 2

    param.lambda_ = lambda_
    param.Fc = Fc

    param.D = D
    param.alpha = 0.2
    param.beta2 = beta2
    param.gamma = 1.3
    param.nSpans = 10
    param.spanLength = 100
    param.noiseFigure = 5

    param.PdBm = 1
    param.Rs = 32  # e9
    param.channels = np.array([-100., -50., 0., 50., 100.])
    param.nChannels = len(param.channels)
    param.chSpacing = 50  # usually overwritten

    param.kur = 1.32
    param.kur3 = 1.96
    param.N_mc = int(1e6)
    param.PD = 0

    return param
Example #3
0
def defaultParameters(D=16.4640, Fc=1.9341e+14, precision='double'):

    lambda_ = c / Fc
    beta2 = D * 1e-6 * lambda_**2 / (2 * np.pi * c)

    param = cu.AttrDict()
    param.M = 4
    param.nPol = 2

    param.sps = 16
    param.nSamples = 1024
    param.rollOff = 0.05
    param.filterSpan = 128
    param.optimizeP = False

    param.PdBm = 1
    param.Rs = 32e9
    param.channels = np.array([-100., -50., 0., 50., 100.])
    param.nChannels = len(param.channels)
    param.frequencyShift = True

    param.dispersionCompensation = False
    param.beta2 = beta2  # with D = 16.464
    param.dz = 1000000.0  # 10 * 100 * 1e3
    param.Fs = 5.1200e+11
    param.N = param.sps * param.nSamples

    if precision == 'single':
        param.realType = tf.float32
        param.complexType = tf.complex64
    else:
        param.realType = tf.float64
        param.complexType = tf.complex128

    return param
Example #4
0
def tfConstants(dtype=tf.float64):
    c = cu.AttrDict()
    c.two = tf.constant(2, dtype)
    c.three = tf.constant(3, dtype)
    c.four = tf.constant(4, dtype)
    c.nine = tf.constant(9, dtype)
    c.twelve = tf.constant(12, dtype)
    c.sixteen = tf.constant(16, dtype)
    c.eightyone = tf.constant(81, dtype)
    return c
Example #5
0
def defaultParameters(D=16.4640, Fc=1.9341e+14, precision='double'):

    lambda_ = c / Fc
    beta2 = D * 1e-6 * lambda_**2 / (2 * np.pi * c)

    param = cu.AttrDict()
    param.Fs = 5.1200e+11
    param.N = 16 * 1024
    param.nSteps = 1
    param.stepSize = 100
    param.ampScheme = 'EDFA'
    param.noiseEnabled = True
    param.manakovEnabled = True
    param.dispersionCompensationEnabled = False  # inline dispersion compensation
    param.checkpointInverval = 2

    param.nPol = 2

    param.lambda_ = lambda_  # Wavelength
    param.Fc = Fc

    param.D = D
    param.alpha = 0.2
    param.beta2 = beta2
    param.gamma = 1.3
    param.nSpans = 10
    param.spanLength = 100
    param.noiseFigure = 5

    param.intType = tf.int32
    if precision == 'single':
        param.realType = tf.float32
        param.complexType = tf.complex64
    else:
        param.realType = tf.float64
        param.complexType = tf.complex128

    param.stepSizeTemplate = logStepSizes(param.spanLength, param.alpha,
                                          param.nSteps)

    return param
Example #6
0
def defaultParameters(D=16.4640, Fc=1.9341e+14, precision='double'):

    param = cu.AttrDict()
    param.nChannels = 5
    param.nSpans = 10
    param.nPol = 2
    param.sps = 16
    param.nSamples = 2**10
    param.Rs = 32e9
    param.noiseEnabled = True
    param.noiseFigure = 5

    param.chSpacing = 50e9  # GHz
    param.spanLength = 100  # km
    param.alpha = 0.2  # db/km
    param.gamma = 1.3  # W^-1/km
    param.D = D  # ps/(km nm)
    param.simplified = 1
    param.Fc = Fc
    param.precision = precision

    return param