function [GMI,NGMI] = calc_ngmi(test_signal,reference_signal,options) % Silas implementation of (N)GMI calculation according to: J. Cho, L. Schmalen, und P. J. Winzer, % „Normalized Generalized Mutual Information as a Forward Error Correction Threshold for Probabilistically Shaped QAM“, % in 2017 European Conference on Optical Communication (ECOC), Sep. 2017, doi: 10.1109/ECOC.2017.8345872. % This implementation assumes the same normal distributed noise for each % channel (sigma2 is calculated once for the whole signal) arguments(Input) test_signal; reference_signal; options.skip_front = 0; options.skip_end = 0; options.returnErrorLocation = 0; end options.skip_end = abs(options.skip_end); options.skip_front = abs(options.skip_front); assert((options.skip_end+options.skip_front)