def test_autocorrelation(self): """test_autocorrelation""" num_samples = 4096 test_signal = testsignals.noisy_sine_wave(num_samples) order = 5 # calculate autocorrelation coefficients r = np.zeros(order + 1) for i in range(order + 1): for k in range(num_samples - i): r[i] += test_signal[k] * test_signal[k + i] # form matrices rows = [] for i in range(order): rows.append([r[abs(i - k)] for k in range(order)]) A = np.matrix(rows) B = np.matrix(np.array([[-r[i]] for i in range(1, order + 1)])) coefs = np.linalg.solve(A, B) ld_coefs = autocorrelation(test_signal, order) # compare coefficients self.assertEquals(order, coefs.T.A[0].size) self.assertEquals(order, ld_coefs.size) for i in range(order): self.assertAlmostEquals(coefs.T.A[0][i], ld_coefs[i], places=FLOAT_PRECISION)
def test_covariance(self): num_samples = 4096 test_signal = testsignals.noisy_sine_wave(num_samples) order = 5 n = 50 coefs = covariance(test_signal, order, n) predict(test_signal, coefs, 3)
def test_covariance(self): """test_covariance""" num_samples = 4096 test_signal = testsignals.noisy_sine_wave(num_samples) order = 5 n = 50 coefs = covariance(test_signal, order, n) cp = predict(test_signal, coefs, 3) raise Exception("NotYetImplemented")
def test_burg(self): """test_burg""" num_samples = 1024 test_signal = testsignals.noisy_sine_wave(num_samples) order = 5 b_coefs = burg(test_signal, order) brec_coefs = burg_rec(test_signal, order) self.assertEquals(b_coefs.size, brec_coefs.size) for i in range(order): self.assertAlmostEquals(b_coefs[i], brec_coefs[i], places=FLOAT_PRECISION)
def test_autocorrelation(self): num_samples = 4096 test_signal = testsignals.noisy_sine_wave(num_samples) order = 5 # calculate autocorrelation coefficients r = np.zeros(order + 1) for i in range(order + 1): for k in range(num_samples - i): r[i] += test_signal[k] * test_signal[k + i] # form matrices rows = [] for i in range(order): rows.append([r[abs(i - k)] for k in range(order)]) A = np.matrix(rows) B = np.matrix(np.array([[-r[i]] for i in range(1, order + 1)])) coefs = np.linalg.solve(A, B) ld_coefs = autocorrelation(test_signal, order) # compare coefficients self.assertEquals(order, coefs.T.A[0].size) self.assertEquals(order, ld_coefs.size) for i in range(order): self.assertAlmostEquals(coefs.T.A[0][i], ld_coefs[i], places=FLOAT_PRECISION)
def test_burg(self): num_samples = 1024 test_signal = testsignals.noisy_sine_wave(num_samples) order = 5 burg(test_signal, order)