예제 #1
0
 def test_center_freq_interpolating(self):
     f = MultistageChannelFilter(input_rate=1000,
                                 output_rate=10000,
                                 cutoff_freq=400,
                                 transition_width=200,
                                 center_freq=1)
     self.assertEqual(f.get_center_freq(), 1)
     f.set_center_freq(2)
     self.assertEqual(f.get_center_freq(), 2)
예제 #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())
     self.assertEqual(filt.explain(), textwrap.dedent("""\
         7 stages from 32000000 to 16000
           freq xlate and decimate by 5 using  25 taps (160000000) in freq_xlating_fir_filter_ccc_sptr
           decimate by 5 using  25 taps (32000000) in fft_filter_ccc_sptr
           decimate by 5 using  25 taps (6400000) in fft_filter_ccc_sptr
           decimate by 2 using  11 taps (1408000) in fft_filter_ccc_sptr
           decimate by 2 using  11 taps (704000) in fft_filter_ccc_sptr
           decimate by 2 using  11 taps (352000) in fft_filter_ccc_sptr
           final filter and decimate by 2 using  77 taps (1232000) in fft_filter_ccc_sptr
           No final resampler stage."""))
예제 #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())
     self.assertEqual(filt.explain(), textwrap.dedent("""\
         7 stages from 32000000 to 16000
           freq xlate and decimate by 5 using  25 taps (160000000) in freq_xlating_fir_filter_ccc_sptr
           decimate by 5 using  25 taps (32000000) in fft_filter_ccc_sptr
           decimate by 5 using  25 taps (6400000) in fft_filter_ccc_sptr
           decimate by 2 using  11 taps (1408000) in fft_filter_ccc_sptr
           decimate by 2 using  11 taps (704000) in fft_filter_ccc_sptr
           decimate by 2 using  11 taps (352000) in fft_filter_ccc_sptr
           final filter and decimate by 2 using  77 taps (1232000) in fft_filter_ccc_sptr
           No final resampler stage."""))
예제 #4
0
 def test_center_freq_interpolating(self):
     f = MultistageChannelFilter(input_rate=1000, output_rate=10000, cutoff_freq=400, transition_width=200, center_freq=1)
     self.assertEqual(f.get_center_freq(), 1)
     f.set_center_freq(2)
     self.assertEqual(f.get_center_freq(), 2)