Exemplo n.º 1
0
 def test_can_take_fft_of_2d_stacked_signal(self):
     samples = SilenceSynthesizer(SR22050()).synthesize(Milliseconds(2500))
     windowsize = TimeSlice(duration=Milliseconds(200))
     stepsize = TimeSlice(duration=Milliseconds(100))
     _, windowed = samples.sliding_window_with_leftovers(
         windowsize=windowsize, stepsize=stepsize, dopad=True)
     coeffs = fft(windowed)
     self.assertIsInstance(coeffs, ArrayWithUnits)
     self.assertEqual(2, len(coeffs.dimensions))
     self.assertEqual(windowed.dimensions[0], coeffs.dimensions[0])
     self.assertIsInstance(coeffs.dimensions[1], FrequencyDimension)
Exemplo n.º 2
0
 def test_can_take_fft_of_2d_stacked_signal(self):
     samples = SilenceSynthesizer(SR22050()).synthesize(Milliseconds(2500))
     windowsize = TimeSlice(duration=Milliseconds(200))
     stepsize = TimeSlice(duration=Milliseconds(100))
     _, windowed = samples.sliding_window_with_leftovers(
         windowsize=windowsize, stepsize=stepsize, dopad=True)
     coeffs = fft(windowed)
     self.assertIsInstance(coeffs, ArrayWithUnits)
     self.assertEqual(2, len(coeffs.dimensions))
     self.assertEqual(windowed.dimensions[0], coeffs.dimensions[0])
     self.assertIsInstance(coeffs.dimensions[1], FrequencyDimension)
Exemplo n.º 3
0
 def test_can_pad_for_better_frequency_resolution(self):
     samples = SilenceSynthesizer(SR22050()).synthesize(Milliseconds(2500))
     windowsize = TimeSlice(duration=Milliseconds(200))
     stepsize = TimeSlice(duration=Milliseconds(100))
     _, windowed = samples.sliding_window_with_leftovers(
         windowsize=windowsize, stepsize=stepsize, dopad=True)
     coeffs = fft(windowed, padding_samples=1024)
     self.assertIsInstance(coeffs, ArrayWithUnits)
     self.assertEqual(2, len(coeffs.dimensions))
     self.assertEqual(windowed.dimensions[0], coeffs.dimensions[0])
     self.assertIsInstance(coeffs.dimensions[1], FrequencyDimension)
     expected_size = ((windowed.shape[-1] + 1024) // 2) + 1
     self.assertEqual(expected_size, coeffs.shape[-1])
Exemplo n.º 4
0
 def test_can_decompose(self):
     sr = SR22050()
     samples = SilenceSynthesizer(sr).synthesize(Milliseconds(9999))
     wscheme = sr.windowing_scheme(8192, 4096)
     duration = TimeSlice(wscheme.duration)
     frequency = TimeSlice(wscheme.frequency)
     _, windowed = samples.sliding_window_with_leftovers(duration,
                                                         frequency,
                                                         dopad=True)
     fa = frequency_decomposition(windowed,
                                  [32, 64, 128, 256, 512, 1024, 2048, 4096])
     self.assertEqual(windowed.dimensions[0], fa.dimensions[0])
     self.assertIsInstance(fa.dimensions[1], ExplicitFrequencyDimension)
Exemplo n.º 5
0
 def test_can_pad_for_better_frequency_resolution(self):
     samples = SilenceSynthesizer(SR22050()).synthesize(Milliseconds(2500))
     windowsize = TimeSlice(duration=Milliseconds(200))
     stepsize = TimeSlice(duration=Milliseconds(100))
     _, windowed = samples.sliding_window_with_leftovers(
         windowsize=windowsize, stepsize=stepsize, dopad=True)
     coeffs = fft(windowed, padding_samples=1024)
     self.assertIsInstance(coeffs, ArrayWithUnits)
     self.assertEqual(2, len(coeffs.dimensions))
     self.assertEqual(windowed.dimensions[0], coeffs.dimensions[0])
     self.assertIsInstance(coeffs.dimensions[1], FrequencyDimension)
     expected_size = ((windowed.shape[-1] + 1024) // 2) + 1
     self.assertEqual(expected_size, coeffs.shape[-1])
Exemplo n.º 6
0
 def test_can_decompose(self):
     sr = SR22050()
     samples = SilenceSynthesizer(sr).synthesize(Milliseconds(9999))
     wscheme = sr.windowing_scheme(8192, 4096)
     duration = TimeSlice(wscheme.duration)
     frequency = TimeSlice(wscheme.frequency)
     _, windowed = samples.sliding_window_with_leftovers(
         duration, frequency, dopad=True)
     fa = frequency_decomposition(
         windowed, [32, 64, 128, 256, 512, 1024, 2048, 4096])
     self.assertEqual(windowed.dimensions[0], fa.dimensions[0])
     self.assertIsInstance(
         fa.dimensions[1], ExplicitFrequencyDimension)