Exemplo n.º 1
0
def test_biphasic_delta():
    integrator = pylgn.Integrator(nt=10, nr=5, dt=0.1, dr=1)

    t_vec, x_vec, y_vec = integrator.meshgrid()
    w_vec, kx_vec, ky_vec = integrator.freq_meshgrid()

    delay_W = t_vec.flatten()[6]
    delay_K = t_vec.flatten()[10]

    shift_x = x_vec.flatten()[-3]
    shift_y = y_vec.flatten()[8]

    phase, damping = 42.5 * pq.ms, 0.38

    W_ft = tpl.create_biphasic_ft(phase=phase, damping=damping,
                                  delay=delay_W)(w_vec) * spl.create_delta_ft(
                                      shift_x=shift_x)(kx_vec, ky_vec)
    K_ft = tpl.create_delta_ft(delay_K)(w_vec) * spl.create_delta_ft(
        shift_y=shift_y)(kx_vec, ky_vec)
    G = integrator.compute_inverse_fft(W_ft * K_ft)

    F = tpl.create_biphasic(phase=phase, damping=damping,
                            delay=delay_W)(t_vec - delay_K) * spl.create_delta(
                                1, shift_x=shift_x)(x_vec, y_vec - shift_y)

    assert (abs(G - F) < complex(1e-3, 1e-12)).all()
Exemplo n.º 2
0
def test_freqs():
    integrator = pylgn.Integrator(nt=1, nr=7, dt=1 * pq.ms, dr=0.1 * pq.deg)
    assert (
        2 * np.pi *
        integrator.spatial_freqs == integrator.spatial_angular_freqs).all()
    assert (
        2 * np.pi *
        integrator.temporal_freqs == integrator.temporal_angular_freqs).all()

    assert (integrator.spatial_freqs.units == 1 / pq.deg)
    assert (integrator.spatial_angular_freqs.units == 1 / pq.deg)
    assert (integrator.temporal_freqs.units == pq.kHz)
    assert (integrator.temporal_angular_freqs.units == pq.kHz)

    integrator = pylgn.Integrator(nt=5, nr=5, dt=1 * pq.ms, dr=2 * pq.deg)
    assert (integrator.spatial_freqs == integrator.spatial_angular_freqs / 2 /
            np.pi).all()
    assert (integrator.temporal_freqs == integrator.temporal_angular_freqs /
            2 / np.pi).all()

    assert (integrator.spatial_freqs.units == 1 / pq.deg)
    assert (integrator.spatial_angular_freqs.units == 1 / pq.deg)
    assert (integrator.temporal_freqs.units == pq.kHz)
    assert (integrator.temporal_angular_freqs.units == pq.kHz)
Exemplo n.º 3
0
def test_delta_delta():
    integrator = pylgn.Integrator(nt=5, nr=5, dt=1, dr=1)

    t_vec, x_vec, y_vec = integrator.meshgrid()
    w_vec, kx_vec, ky_vec = integrator.freq_meshgrid()

    delay_W = t_vec.flatten()[6]
    delay_K = t_vec.flatten()[10]

    shift_x = x_vec.flatten()[-3]
    shift_y = y_vec.flatten()[8]

    W_ft = tpl.create_delta_ft(delay_W)(w_vec) * spl.create_delta_ft(
        shift_x=shift_x)(kx_vec, ky_vec)
    K_ft = tpl.create_delta_ft(delay_K)(w_vec) * spl.create_delta_ft(
        shift_y=shift_y)(kx_vec, ky_vec)
    G = integrator.compute_inverse_fft(W_ft * K_ft)

    F = tpl.create_delta(1, delay_W)(t_vec - delay_K) * spl.create_delta(
        1, shift_x=shift_x)(x_vec, y_vec - shift_y)

    assert (abs(G - F) < complex(1e-12, 1e-12)).all()
Exemplo n.º 4
0
def test_gauss_delta():
    integrator = pylgn.Integrator(nt=3, nr=8, dt=0.1, dr=0.1)

    t_vec, x_vec, y_vec = integrator.meshgrid()
    w_vec, kx_vec, ky_vec = integrator.freq_meshgrid()

    delay_W = t_vec.flatten()[0]
    delay_K = t_vec.flatten()[0]

    shift_x = x_vec.flatten()[2**5]
    shift_y = y_vec.flatten()[-37]

    W_ft = tpl.create_delta_ft(delay_W)(w_vec) * spl.create_gauss_ft(
        a=0.62 * pq.deg)(kx_vec, ky_vec)
    K_ft = tpl.create_delta_ft(delay_K)(w_vec) * spl.create_delta_ft(
        shift_x, shift_y)(kx_vec, ky_vec)
    G = integrator.compute_inverse_fft(W_ft * K_ft)

    F = tpl.create_delta(1. / integrator.dt,
                         delay_W)(t_vec - delay_K) * spl.create_gauss(
                             a=0.62 * pq.deg)(x_vec - shift_x, y_vec - shift_y)

    assert (abs(G - F.magnitude) < complex(1e-10, 1e-12)).all()