Expand description
Optical blocks: wavelength-division multiplexing and dual-polarisation nonlinear propagation.
| Block | Does |
|---|---|
wdm_tx | the channel under test and n_channels - 1 independently modulated neighbours on a frequency grid, shaped, at a power per channel, with laser phase noise |
manakov | dual-polarisation propagation over the multi-span link by the Manakov equation (OptiCommPy’s manakovSSF), EDFAs with ASE |
pmd | a random rotation of the polarisations and polarisation-mode dispersion (coarse-step model of Marcuse, Menyuk & Wai), a new realisation every trial |
manakov_dbp | dual-polarisation digital back-propagation of the link (the Manakov equation with the coefficients negated) |
wdm_rx | the channel under test brought to baseband and low-pass filtered (an ideal coherent receiver with its local oscillator on the channel) |
§Dual polarisation
source with pols: 2 draws the symbols of both polarisations: symbols holds those
of polarisation x then those of y, samples carries x and the first entry of
antennas carries y. The blocks written for one polarisation (pulse shaping,
dispersion compensation, matched filter, clock recovery, frequency and phase
estimation, frame synchronisation) then process each polarisation with its own
symbols; adaptive_equalizer is the 2 × 2 butterfly that undoes the rotations of
the polarisation; the metrics pool both polarisations.
§Example
fiber: {n_spans: 10, span_km: 80, d_ps_nm_km: 16, gamma_w_km: 1.3}
link:
- {type: source, constellation: 16-QAM, n_symbols: 8192, symbol_rate: 32e9, pols: 2}
- {type: wdm_tx, n_channels: 5, spacing_hz: 50e9, sps: 8, power_dbm: $power_dbm, rolloff: 0.1}
- manakov
- {type: wdm_rx, sps: 2}
- cdc
- {type: matched_filter, rolloff: 0.1}
- decimate
- {type: frame_sync, length: 512}
metrics: {report: [ber, snr_eff_db, gmi], skip_start: 64, skip_end: 64}§Raman amplification
A raman mapping in the fibre parameters (of the specification or of a block) pumps
every span of ssfm, manakov and of the theory gn_snr_db (see
comnum_channel::optical::raman):
fiber:
n_spans: 3
span_km: 100
raman:
pumps: # any number, co- or counter-propagating
- {wavelength_nm: 1425, power_mw: 300, direction: counter}
- {frequency_thz: 205.0, power_mw: 100, direction: co, alpha_db_km: 0.25}
isrs: true # the channels also exchange power (default)
aeff_um2: 80 # effective area (default)
temperature_k: 300 # for the spontaneous noise (default)
step_km: 0.1 # grid of the power equations (default)
slice_hz: 25e9 # slices of the spectrum of the field (default)
# gain: {offsets_thz: [...], gain_m_w: [...], reference_thz: 206.18}The amplifier after every span (amplification) then restores every frequency to
its launch power. dbp and manakov_dbp back-propagate the profile of lumped
amplifiers.
§References
- E. P. da Silva and D. A. A. Mello, OptiCommPy,
simpleWDMTxandmanakovSSF. - P. Poggiolini, “The GN model of non-linear propagation in uncoherent optical
systems,” J. Lightw. Technol., 30(24), 3857–3879, 2012 (the reference of the
WDM campaigns, see
comnum_channel::optical::gn).
Structs§
- WdmFrame
- The WDM frame between
wdm_txandwdm_rx.