def __calculate(self, spectrum, start, end): sweep = slice_spectrum(spectrum, start, end) if sweep is None or len(sweep) == 0: return self.minF = min(sweep)[0] self.maxF = max(sweep)[0] self.minP = min(sweep, key=lambda v: v[1]) self.maxP = max(sweep, key=lambda v: v[1]) powers = [Decimal(db_to_level(p[1])) for p in sweep] length = len(powers) avg = sum(powers, Decimal(0)) / length self.avgP = level_to_db(avg) product = reduce(mul, iter(powers)) gMean = product**(Decimal(1.0) / length) self.gMeanP = level_to_db(gMean) self.flatness = gMean / avg self.__calc_hbw(sweep) self.__calc_obw(sweep) self.isValid = True
def __calculate(self, spectrum, start, end): sweep = slice_spectrum(spectrum, start, end) if sweep is None or len(sweep) == 0: return self.minF = min(sweep)[0] self.maxF = max(sweep)[0] self.minP = min(sweep, key=lambda v: v[1]) self.maxP = max(sweep, key=lambda v: v[1]) powers = [Decimal(db_to_level(p[1])) for p in sweep] length = len(powers) avg = sum(powers, Decimal(0)) / length self.avgP = level_to_db(avg) product = reduce(mul, iter(powers)) gMean = product ** (Decimal(1.0) / length) self.gMeanP = level_to_db(gMean) self.flatness = gMean / avg self.__calc_hbw(sweep) self.__calc_obw(sweep) self.isValid = True