Use the term GSNR in result outputs

The term "GSNR" is well established by now. I think it's time we start
using it in our own result outputs instead of alternatives like "total
SNR" or just "SNR".

Signed-off-by: Jonas Mårtensson <jonas.martensson@ri.se>
Change-Id: I1fc65f6db1e3b2d7cfe974875174132fe5b28d3b
This commit is contained in:
Jonas Mårtensson
2021-06-04 12:36:33 +02:00
parent eb17b74ea4
commit 581b4a726f
6 changed files with 27 additions and 27 deletions

View File

@@ -165,10 +165,10 @@ class Transceiver(_Node):
return '\n'.join([f'{type(self).__name__} {self.uid}',
f' GSNR (0.1nm, dB): {snr_01nm:.2f}',
f' GSNR (signal bw, dB): {snr:.2f}',
f' OSNR ASE (0.1nm, dB): {osnr_ase_01nm:.2f}',
f' OSNR ASE (signal bw, dB): {osnr_ase:.2f}',
f' SNR total (signal bw, dB): {snr:.2f}',
f' SNR total (0.1nm, dB): {snr_01nm:.2f}',
f' CD (ps/nm): {cd:.2f}',
f' PMD (ps): {pmd:.2f}'])

View File

@@ -112,7 +112,7 @@ def transmission_main_example(args=None):
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
)
_add_common_options(parser, network_default=_examples_dir / 'edfa_example_network.json')
parser.add_argument('--show-channels', action='store_true', help='Show final per-channel OSNR summary')
parser.add_argument('--show-channels', action='store_true', help='Show final per-channel OSNR and GSNR summary')
parser.add_argument('-pl', '--plot', action='store_true')
parser.add_argument('-l', '--list-nodes', action='store_true', help='list all transceiver nodes')
parser.add_argument('-po', '--power', default=0, help='channel ref power in dBm')
@@ -239,7 +239,7 @@ def transmission_main_example(args=None):
print(f'\nTransmission result for input power = {lin2db(req.power*1e3):.2f} dBm:')
else:
print(f'\nTransmission results:')
print(f' Final SNR total (0.1 nm): {ansi_escapes.cyan}{mean(destination.snr_01nm):.02f} dB{ansi_escapes.reset}')
print(f' Final GSNR (0.1 nm): {ansi_escapes.cyan}{mean(destination.snr_01nm):.02f} dB{ansi_escapes.reset}')
else:
print(path[-1])
@@ -248,7 +248,7 @@ def transmission_main_example(args=None):
print(f'{ansi_escapes.blue}Network (after autodesign) saved to {args.save_network}{ansi_escapes.reset}')
if args.show_channels:
print('\nThe total SNR per channel at the end of the line is:')
print('\nThe GSNR per channel at the end of the line is:')
print(
'{:>5}{:>26}{:>26}{:>28}{:>28}{:>28}' .format(
'Ch. #',
@@ -256,7 +256,7 @@ def transmission_main_example(args=None):
'Channel power (dBm)',
'OSNR ASE (signal bw, dB)',
'SNR NLI (signal bw, dB)',
'SNR total (signal bw, dB)'))
'GSNR (signal bw, dB)'))
for final_carrier, ch_osnr, ch_snr_nl, ch_snr in zip(
infos.carriers, path[-1].osnr_ase, path[-1].osnr_nli, path[-1].snr):
ch_freq = final_carrier.frequency * 1e-12
@@ -383,7 +383,7 @@ def path_requests_run(args=None):
pth_assign_spectrum(pths, rqs, oms_list, reversed_pths)
print(f'{ansi_escapes.blue}Result summary{ansi_escapes.reset}')
header = ['req id', ' demand', ' snr@bandwidth A-Z (Z-A)', ' snr@0.1nm A-Z (Z-A)',
header = ['req id', ' demand', ' GSNR@bandwidth A-Z (Z-A)', ' GSNR@0.1nm A-Z (Z-A)',
' Receiver minOSNR', ' mode', ' Gbit/s', ' nb of tsp pairs',
'N,M or blocking reason']
data = []
@@ -422,7 +422,7 @@ def path_requests_run(args=None):
secondcol = ''.join(row[1].ljust(secondcol_width))
remainingcols = ''.join(word.center(col_width, ' ') for word in row[2:])
print(f'{firstcol} {secondcol} {remainingcols}')
print(f'{ansi_escapes.yellow}Result summary shows mean SNR and OSNR (average over all channels){ansi_escapes.reset}')
print(f'{ansi_escapes.yellow}Result summary shows mean GSNR and OSNR (average over all channels){ansi_escapes.reset}')
if args.output:
result = []

View File

@@ -8,10 +8,10 @@ Now propagating between trx_Stockholm and trx_Gothenburg:
Propagating with input power = 2.00 dBm:
Transceiver trx_Stockholm
GSNR (0.1nm, dB): 35.00
GSNR (signal bw, dB): 30.98
OSNR ASE (0.1nm, dB): 35.00
OSNR ASE (signal bw, dB): 30.98
SNR total (signal bw, dB): 30.98
SNR total (0.1nm, dB): 35.00
CD (ps/nm): 0.00
PMD (ps): 0.00
Roadm roadm_Stockholm
@@ -224,15 +224,15 @@ Roadm roadm_Gothenburg
effective loss (dB): 22.00
pch out (dBm): -20
Transceiver trx_Gothenburg
GSNR (0.1nm, dB): 18.90
GSNR (signal bw, dB): 14.88
OSNR ASE (0.1nm, dB): 21.20
OSNR ASE (signal bw, dB): 17.18
SNR total (signal bw, dB): 14.88
SNR total (0.1nm, dB): 18.90
CD (ps/nm): 8350.42
PMD (ps): 0.89
Transmission result for input power = 2.00 dBm:
Final SNR total (0.1 nm): 18.90 dB
Final GSNR (0.1 nm): 18.90 dB
(No source node specified: picked trx_Stockholm)

View File

@@ -143,7 +143,7 @@ with path constraint: ['trx Lannion_CAS', 'trx Lorient_KMA']
Computed path (roadms):['roadm Lannion_CAS', 'roadm Lorient_KMA']
Result summary
req id demand snr@bandwidth A-Z (Z-A) snr@0.1nm A-Z (Z-A) Receiver minOSNR mode Gbit/s nb of tsp pairs N,M or blocking reason
req id demand GSNR@bandwidth A-Z (Z-A) GSNR@0.1nm A-Z (Z-A) Receiver minOSNR mode Gbit/s nb of tsp pairs N,M or blocking reason
0 trx Lorient_KMA to trx Vannes_KBE : 24.83 28.92 14 mode 1 100.0 1 (-284,4)
1 trx Brest_KLA to trx Vannes_KBE : 17.75 21.83 14 mode 1 200.0 2 (-272,8)
3 trx Lannion_CAS to trx Rennes_STA : 22.21 26.29 13 mode 1 60.0 1 (-284,4)
@@ -151,4 +151,4 @@ req id demand snr@bandwidth A-Z (Z-A) snr@0
5 trx Rennes_STA to trx Lannion_CAS : 20.31 27.54 17 mode 2 20.0 1 (-274,6)
7 | 6 trx Lannion_CAS to trx Lorient_KMA : 19.52 23.61 14 mode 1 700.0 7 (-224,28)
7b trx Lannion_CAS to trx Lorient_KMA : 19.61 23.69 14 mode 1 400.0 4 (-172,24)
Result summary shows mean SNR and OSNR (average over all channels)
Result summary shows mean GSNR and OSNR (average over all channels)

View File

@@ -8,10 +8,10 @@ Now propagating between Site_A and Site_B:
Propagating with input power = 0.00 dBm:
Transceiver Site_A
GSNR (0.1nm, dB): 40.00
GSNR (signal bw, dB): 35.92
OSNR ASE (0.1nm, dB): 40.00
OSNR ASE (signal bw, dB): 35.92
SNR total (signal bw, dB): 35.92
SNR total (0.1nm, dB): 40.00
CD (ps/nm): 0.00
PMD (ps): 0.00
Fiber Span1
@@ -36,15 +36,15 @@ Edfa Edfa1
effective pch (dBm): -2.0
output VOA (dB): 0.00
Transceiver Site_B
GSNR (0.1nm, dB): 31.17
GSNR (signal bw, dB): 27.09
OSNR ASE (0.1nm, dB): 33.30
OSNR ASE (signal bw, dB): 29.21
SNR total (signal bw, dB): 27.09
SNR total (0.1nm, dB): 31.17
CD (ps/nm): 1336.00
PMD (ps): 0.36
Transmission result for input power = 0.00 dBm:
Final SNR total (0.1 nm): 31.17 dB
Final GSNR (0.1 nm): 31.17 dB
(No source node specified: picked Site_A)

View File

@@ -8,10 +8,10 @@ Now propagating between Site_A and Site_B:
Propagating with input power = 0.00 dBm:
Transceiver Site_A
GSNR (0.1nm, dB): 40.00
GSNR (signal bw, dB): 35.92
OSNR ASE (0.1nm, dB): 40.00
OSNR ASE (signal bw, dB): 35.92
SNR total (signal bw, dB): 35.92
SNR total (0.1nm, dB): 40.00
CD (ps/nm): 0.00
PMD (ps): 0.00
RamanFiber Span1
@@ -36,18 +36,18 @@ Edfa Edfa1
effective pch (dBm): -2.0
output VOA (dB): 0.00
Transceiver Site_B
GSNR (0.1nm, dB): 31.43
GSNR (signal bw, dB): 27.35
OSNR ASE (0.1nm, dB): 34.18
OSNR ASE (signal bw, dB): 30.10
SNR total (signal bw, dB): 27.35
SNR total (0.1nm, dB): 31.43
CD (ps/nm): 1336.00
PMD (ps): 0.36
Transmission result for input power = 0.00 dBm:
Final SNR total (0.1 nm): 31.43 dB
Final GSNR (0.1 nm): 31.43 dB
The total SNR per channel at the end of the line is:
Ch. # Channel frequency (THz) Channel power (dBm) OSNR ASE (signal bw, dB) SNR NLI (signal bw, dB) SNR total (signal bw, dB)
The GSNR per channel at the end of the line is:
Ch. # Channel frequency (THz) Channel power (dBm) OSNR ASE (signal bw, dB) SNR NLI (signal bw, dB) GSNR (signal bw, dB)
1 191.35 0.21 31.56 31.47 28.50
2 191.40 0.17 31.54 31.38 28.45
3 191.45 0.14 31.52 31.30 28.40