def convert(self, input_signal: Signal) -> Signal: output_signal = input_signal.copy() self.gain.multiply_signal(output_signal) output_signal.samples = self._quantize(output_signal.samples) self.gain.divide_signal(output_signal) return output_signal
def equalize_channel( self, signal: Signal, csi: ChannelStateInformation, snr: float = float('inf')) -> Signal: signal = signal.copy() signal.samples /= (csi.state[0, 0, :signal.num_samples, 0] + 1 / snr) return signal