class SimpleAudioDemodulator(Demodulator, SquelchMixin): implements(ITunableDemodulator) def __init__(self, demod_rate=0, band_filter=None, band_filter_transition=None, **kwargs): Demodulator.__init__(self, **kwargs) SquelchMixin.__init__(self, demod_rate) self.band_filter = band_filter self.band_filter_transition = band_filter_transition self.demod_rate = demod_rate input_rate = self.input_rate audio_rate = self.audio_rate self.band_filter_block = MultistageChannelFilter( input_rate=input_rate, output_rate=demod_rate, cutoff_freq=band_filter, transition_width=band_filter_transition) def get_half_bandwidth(self): return self.band_filter def set_rec_freq(self, freq): '''for ITunableDemodulator''' self.band_filter_block.set_center_freq(freq) @exported_value() def get_band_filter_shape(self): return { 'low': -self.band_filter, 'high': self.band_filter, 'width': self.band_filter_transition }
def test_setters(self): # TODO: Test filter functionality; this only tests that the operations work filt = MultistageChannelFilter(input_rate=32000000, output_rate=16000, cutoff_freq=3000, transition_width=1200) filt.set_cutoff_freq(2900) filt.set_transition_width(1000) filt.set_center_freq(10000) self.assertEqual(2900, filt.get_cutoff_freq()) self.assertEqual(1000, filt.get_transition_width()) self.assertEqual(10000, filt.get_center_freq())
def test_setters(self): # TODO: Test filter functionality; this only tests that the operations work filt = MultistageChannelFilter(input_rate=32000000, output_rate=16000, cutoff_freq=3000, transition_width=1200) filt.set_cutoff_freq(2900) filt.set_transition_width(1000) filt.set_center_freq(10000) self.assertEqual(2900, filt.get_cutoff_freq()) self.assertEqual(1000, filt.get_transition_width()) self.assertEqual(10000, filt.get_center_freq())
class SimpleAudioDemodulator(Demodulator, SquelchMixin): implements(ITunableDemodulator) def __init__(self, demod_rate=0, audio_rate=0, band_filter=None, band_filter_transition=None, stereo=False, **kwargs): assert audio_rate > 0 self.__signal_type = SignalType(kind='STEREO' if stereo else 'MONO', sample_rate=audio_rate) Demodulator.__init__(self, **kwargs) SquelchMixin.__init__(self, demod_rate) self.band_filter = band_filter self.band_filter_transition = band_filter_transition self.demod_rate = demod_rate self.audio_rate = audio_rate input_rate = self.input_rate self.band_filter_block = MultistageChannelFilter( input_rate=input_rate, output_rate=demod_rate, cutoff_freq=band_filter, transition_width=band_filter_transition) def get_half_bandwidth(self): return self.band_filter def get_output_type(self): return self.__signal_type def set_rec_freq(self, freq): '''for ITunableDemodulator''' self.band_filter_block.set_center_freq(freq) @exported_value() def get_band_filter_shape(self): return { 'low': -self.band_filter, 'high': self.band_filter, 'width': self.band_filter_transition }
class SimpleAudioDemodulator(Demodulator, SquelchMixin): implements(ITunableDemodulator) def __init__(self, demod_rate=0, audio_rate=0, band_filter=None, band_filter_transition=None, stereo=False, **kwargs): assert audio_rate > 0 self.__signal_type = SignalType( kind='STEREO' if stereo else 'MONO', sample_rate=audio_rate) Demodulator.__init__(self, **kwargs) SquelchMixin.__init__(self, demod_rate) self.band_filter = band_filter self.band_filter_transition = band_filter_transition self.demod_rate = demod_rate self.audio_rate = audio_rate input_rate = self.input_rate self.band_filter_block = MultistageChannelFilter( input_rate=input_rate, output_rate=demod_rate, cutoff_freq=band_filter, transition_width=band_filter_transition) def get_half_bandwidth(self): return self.band_filter def get_output_type(self): return self.__signal_type def set_rec_freq(self, freq): '''for ITunableDemodulator''' self.band_filter_block.set_center_freq(freq) @exported_value() def get_band_filter_shape(self): return { 'low': -self.band_filter, 'high': self.band_filter, 'width': self.band_filter_transition }