Exemple #1
0
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
		}
Exemple #2
0
	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())
Exemple #3
0
 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())
Exemple #4
0
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
        }
Exemple #5
0
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
		}