Ejemplo n.º 1
0
    def test_delay_zero_cancels_all(self):
        delay = 0
        X_hat = wpe.wpe(self.Y, self.K, delay=delay)

        # Beginning is never zero. It is a copy of input signal.
        tc.assert_allclose(X_hat[:, delay + self.K - 1:],
                           np.zeros_like(X_hat[:, delay + self.K - 1:]),
                           atol=1e-10)
Ejemplo n.º 2
0
    def test_wpe_v1_vs_v7(self):
        desired = wpe.wpe_v1(self.Y, self.K, self.delay)
        actual = wpe.wpe_v7(self.Y, self.K, self.delay, mode='cut')
        tc.assert_allclose(actual, desired)

        actual = wpe.wpe_v7(self.Y, self.K, self.delay, mode='pad')
        with tc.assert_raises(Exception):
            tc.assert_allclose(actual, desired, rtol=1e-3, atol=1e-3)
Ejemplo n.º 3
0
 def test_correlations_narrow_v1_vs_v5(self):
     inverse_power = wpe.get_power_inverse(self.Y)
     R_desired, r_desired = wpe.get_correlations_narrow(
         self.Y, inverse_power, self.K, self.delay)
     R_actual, r_actual = wpe.get_correlations_narrow_v5(
         self.Y, inverse_power, self.K, self.delay)
     tc.assert_allclose(R_actual, R_desired)
     tc.assert_allclose(r_actual, r_desired)
Ejemplo n.º 4
0
    def test_filter_operation_v1_vs_v4(self):
        filter_matrix_conj = np.random.normal(size=(self.K, self.D, self.D)) \
            + 1j * np.random.normal(size=(self.K, self.D, self.D))

        desired = wpe.perform_filter_operation(self.Y, filter_matrix_conj,
                                               self.K, self.delay)
        actual = wpe.perform_filter_operation_v4(self.Y, filter_matrix_conj,
                                                 self.K, self.delay)
        tc.assert_allclose(desired, actual)
Ejemplo n.º 5
0
 def test_correlations_v1_vs_v2_toy_example(self):
     K = 3
     delay = 1
     Y = np.asarray([[11, 12, 13, 14], [41, 22, 23, 24]], dtype=np.float32)
     inverse_power = wpe.get_power_inverse(Y)
     R_desired, r_desired = wpe.get_correlations(Y, inverse_power, K, delay)
     R_actual, r_actual = wpe.get_correlations_v2(Y, inverse_power, K,
                                                  delay)
     tc.assert_allclose(R_actual, R_desired)
     tc.assert_allclose(r_actual, r_desired)
Ejemplo n.º 6
0
    def test_filter_matrix_conj_v1_vs_v5(self):
        inverse_power = wpe.get_power_inverse(self.Y)

        correlation_matrix, correlation_vector = wpe.get_correlations(
            self.Y, inverse_power, self.K, self.delay)
        desired = wpe.get_filter_matrix_conj(correlation_matrix,
                                             correlation_vector, self.K,
                                             self.D)
        actual = wpe.get_filter_matrix_conj_v5(self.Y, inverse_power, self.K,
                                               self.delay)
        tc.assert_allclose(actual, desired, atol=1e-10)
Ejemplo n.º 7
0
    def test_correlations_narrow_v1_vs_v6(self):
        inverse_power = wpe.get_power_inverse(self.Y)
        R_desired, r_desired = wpe.get_correlations_narrow(
            self.Y, inverse_power, self.K, self.delay
        )

        s = [Ellipsis, slice(self.delay + self.K - 1, None)]
        Y_tilde = wpe.build_y_tilde(self.Y, self.K, self.delay)
        R_actual, r_actual = wpe.get_correlations_v6(
            self.Y[s], Y_tilde[s], inverse_power[s]
        )
        tc.assert_allclose(R_actual.conj(), R_desired)
        tc.assert_allclose(
            r_actual.conj(),
            np.swapaxes(r_desired, 1, 2).reshape(-1, r_desired.shape[-1]),
            rtol=1e-5, atol=1e-5
        )
Ejemplo n.º 8
0
    def test_filter_matrix_conj_v1_vs_v7(self):
        inverse_power = wpe.get_power_inverse(self.Y)

        correlation_matrix, correlation_vector = wpe.get_correlations(
            self.Y, inverse_power, self.K, self.delay
        )
        desired = wpe.get_filter_matrix_conj(
            correlation_matrix, correlation_vector, self.K, self.D
        )

        s = [Ellipsis, slice(self.delay + self.K - 1, None)]
        Y_tilde = wpe.build_y_tilde(self.Y, self.K, self.delay)
        actual = wpe.get_filter_matrix_v7(
            self.Y, Y_tilde=Y_tilde, inverse_power=inverse_power,
        )
        tc.assert_allclose(
            actual.conj(),
            np.swapaxes(desired, 1, 2).reshape(-1, desired.shape[-1]),
            atol=1e-10
        )
Ejemplo n.º 9
0
 def test_wpe_v1_vs_v4(self):
     desired = wpe.wpe_v1(self.Y, self.K, self.delay)
     actual = wpe.wpe_v4(self.Y, self.K, self.delay)
     tc.assert_allclose(actual, desired)
Ejemplo n.º 10
0
 def test_wpe_v6_vs_sc(self):
     from cbj.wpe._numpy import sc_wpe
     desired = wpe.wpe_v6(self.Y, self.K, self.delay)
     actual = sc_wpe(self.Y, self.K, self.delay, iterations=3)
     tc.assert_allclose(actual, desired)
Ejemplo n.º 11
0
 def test_wpe_v6_vs_v7(self):
     desired = wpe.wpe_v6(self.Y, self.K, self.delay)
     actual = wpe.wpe_v7(self.Y, self.K, self.delay)
     tc.assert_allclose(actual, desired, atol=1e-10)