From c7fbc8202bd3a66f80e8928064d5092e23ded008 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Thu, 24 Aug 2023 19:34:20 +0200 Subject: [PATCH] move to better location --- csdr/chain/selector.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/csdr/chain/selector.py b/csdr/chain/selector.py index 09507994..8b009fb0 100644 --- a/csdr/chain/selector.py +++ b/csdr/chain/selector.py @@ -28,6 +28,13 @@ class Decimator(Chain): super().__init__(workers) def _getDecimation(self, outputRate: int) -> (int, float): + if outputRate > self.inputRate: + raise SelectorError( + "cannot provide selected output rate {} since it is bigger than input rate {}".format( + outputRate, + self.inputRate + ) + ) d = self.inputRate / outputRate dInt = int(d) dFloat = float(self.inputRate / dInt) / outputRate @@ -125,13 +132,6 @@ class Selector(Chain): def setOutputRate(self, outputRate: int) -> None: if outputRate == self.outputRate: return - if outputRate > self.inputRate: - raise ValueError( - "cannot provide selected output rate {} since it is bigger than input rate {}".format( - outputRate, - self.inputRate - ) - ) self.outputRate = outputRate self.decimation.setOutputRate(outputRate) @@ -165,3 +165,7 @@ class SecondarySelector(Chain): if self.frequencyOffset is None: return self.shift.setRate(-offset / self.sampleRate) + + +class SelectorError(Exception): + pass