Ejemplo n.º 1
0
 def test_ipdft(self):
     """correctly compute integer discrete fourier transform"""
     s = [0, 1, 0, -1, 0, 1, 0, -1]
     X, periods = ipdft(s, llim=1, ulim=len(s))
     exp_X = abs(array([0, 0, -1.5+0.866j, -4j, 2.927-0.951j, 1.5+0.866j,
                       0.302+0.627j, 0]))
     X = abs(X)
     self.assertFloatEqual(X, exp_X, eps=1e-3)
     
     ipdft_x, ipdft_periods = ipdft(self.sig, llim=2, ulim=50)
     ipdft_x = abs(ipdft_x)
     max_idx = list(ipdft_x).index(max(ipdft_x))
     ipdft_p = ipdft_periods[max_idx]
     self.assertEqual(ipdft_p, self.p)
Ejemplo n.º 2
0
 def test_ipdft(self):
     """correctly compute integer discrete fourier transform"""
     s = [0, 1, 0, -1, 0, 1, 0, -1]
     X, periods = ipdft(s, llim=1, ulim=len(s))
     exp_X = abs(array([0, 0, -1.5+0.866j, -4j, 2.927-0.951j, 1.5+0.866j,
                       0.302+0.627j, 0]))
     X = abs(X)
     self.assertFloatEqual(X, exp_X, eps=1e-3)
     
     ipdft_x, ipdft_periods = ipdft(self.sig, llim=2, ulim=50)
     ipdft_x = abs(ipdft_x)
     max_idx = list(ipdft_x).index(max(ipdft_x))
     ipdft_p = ipdft_periods[max_idx]
     self.assertEqual(ipdft_p, self.p)
Ejemplo n.º 3
0
 def test_hybrid_returns_all(self):
     """correctly returns hybrid, ipdft and autocorr statistics"""
     ipdft_pwr, ipdft_prd = ipdft(self.sig, llim=2, ulim=50)
     auto_x, auto_periods = auto_corr(self.sig, llim=2, ulim=50)
     hybrid_x, hybrid_periods = hybrid(self.sig, llim=None, ulim=50)
     hybrid_ipdft_autocorr_stats, hybrid_periods = hybrid(self.sig,
                     llim=None, ulim=50, return_all=True)
     self.assertEqual(hybrid_ipdft_autocorr_stats[0], hybrid_x)
     self.assertEqual(hybrid_ipdft_autocorr_stats[1], ipdft_pwr)
     self.assertEqual(hybrid_ipdft_autocorr_stats[2], auto_x)
     
     ipdft_pwr, ipdft_prd = ipdft(self.sig, llim=10, ulim=10)
     auto_x, auto_periods = auto_corr(self.sig, llim=10, ulim=10)
     hybrid_x, hybrid_periods = hybrid(self.sig, llim=10, ulim=10)
     hybrid_ipdft_autocorr_stats, hybrid_periods = hybrid(self.sig,
                     llim=10, ulim=10, return_all=True)
     self.assertEqual(hybrid_ipdft_autocorr_stats[0], hybrid_x)
     self.assertEqual(hybrid_ipdft_autocorr_stats[1], ipdft_pwr)
     self.assertEqual(hybrid_ipdft_autocorr_stats[2], auto_x)
Ejemplo n.º 4
0
 def test_hybrid_returns_all(self):
     """correctly returns hybrid, ipdft and autocorr statistics"""
     ipdft_pwr, ipdft_prd = ipdft(self.sig, llim=2, ulim=50)
     auto_x, auto_periods = auto_corr(self.sig, llim=2, ulim=50)
     hybrid_x, hybrid_periods = hybrid(self.sig, llim=None, ulim=50)
     hybrid_ipdft_autocorr_stats, hybrid_periods = hybrid(self.sig,
                     llim=None, ulim=50, return_all=True)
     self.assertEqual(hybrid_ipdft_autocorr_stats[0], hybrid_x)
     self.assertEqual(hybrid_ipdft_autocorr_stats[1], ipdft_pwr)
     self.assertEqual(hybrid_ipdft_autocorr_stats[2], auto_x)
     
     ipdft_pwr, ipdft_prd = ipdft(self.sig, llim=10, ulim=10)
     auto_x, auto_periods = auto_corr(self.sig, llim=10, ulim=10)
     hybrid_x, hybrid_periods = hybrid(self.sig, llim=10, ulim=10)
     hybrid_ipdft_autocorr_stats, hybrid_periods = hybrid(self.sig,
                     llim=10, ulim=10, return_all=True)
     self.assertEqual(hybrid_ipdft_autocorr_stats[0], hybrid_x)
     self.assertEqual(hybrid_ipdft_autocorr_stats[1], ipdft_pwr)
     self.assertEqual(hybrid_ipdft_autocorr_stats[2], auto_x)
Ejemplo n.º 5
0
 def test_g_statitic(self):
     """calc g-stat correctly"""
     X, periods = ipdft(self.sig, llim=2, ulim=39)
     g_obs, p_val = g_statistic(X)
     self.assertFloatEqual(p_val, 0.9997, eps=1e-3)
     self.assertFloatEqual(g_obs, 0.0577, eps=1e-3)
Ejemplo n.º 6
0
 def test_goertzel(self):
     """goertzel and ipdft should be the same"""
     ipdft_pwr, ipdft_prd = ipdft(self.sig, llim=10, ulim=10)
     self.assertFloatEqual(goertzel(self.sig, 10), ipdft_pwr)
Ejemplo n.º 7
0
 def test_goertzel(self):
     """goertzel and ipdft should be the same"""
     ipdft_pwr, ipdft_prd = ipdft(self.sig, llim=10, ulim=10)
     self.assertFloatEqual(goertzel(self.sig, 10), ipdft_pwr)