Esempio n. 1
0
 def test_ifftn(self):
     x = random((30, 20, 10)) + 1j*random((30, 20, 10))
     assert_array_almost_equal(
         np.fft.ifft(np.fft.ifft(np.fft.ifft(x, axis=2), axis=1), axis=0),
         np.fft.ifftn(x))
     assert_array_almost_equal(np.fft.ifftn(x) * np.sqrt(30 * 20 * 10),
                               np.fft.ifftn(x, norm="ortho"))
Esempio n. 2
0
 def test_hfft(self):
     x = random(14) + 1j*random(14)
     x_herm = np.concatenate((random(1), x, random(1)))
     x = np.concatenate((x_herm, x[::-1].conj()))
     assert_array_almost_equal(np.fft.fft(x), np.fft.hfft(x_herm))
     assert_array_almost_equal(np.fft.hfft(x_herm) / np.sqrt(30),
                               np.fft.hfft(x_herm, norm="ortho"))
Esempio n. 3
0
 def test_rfft(self):
     x = random(30)
     for n in [x.size, 2*x.size]:
         for norm in [None, 'ortho']:
             assert_array_almost_equal(
                 np.fft.fft(x, n=n, norm=norm)[:(n//2 + 1)],
                 np.fft.rfft(x, n=n, norm=norm))
         assert_array_almost_equal(np.fft.rfft(x, n=n) / np.sqrt(n),
                                   np.fft.rfft(x, n=n, norm="ortho"))
Esempio n. 4
0
 def test_all_1d_norm_preserving(self):
     # verify that round-trip transforms are norm-preserving
     x = random(30)
     x_norm = np.linalg.norm(x)
     n = x.size * 2
     func_pairs = [(np.fft.fft, np.fft.ifft),
                   (np.fft.rfft, np.fft.irfft),
                   # hfft: order so the first function takes x.size samples
                   #       (necessary for comparison to x_norm above)
                   (np.fft.ihfft, np.fft.hfft),
                   ]
     for forw, back in func_pairs:
         for n in [x.size, 2*x.size]:
             for norm in [None, 'ortho']:
                 tmp = forw(x, n=n, norm=norm)
                 tmp = back(tmp, n=n, norm=norm)
                 assert_array_almost_equal(x_norm,
                                           np.linalg.norm(tmp))
Esempio n. 5
0
 def test_irfft2(self):
     x = random((30, 20))
     assert_array_almost_equal(x, np.fft.irfft2(np.fft.rfft2(x)))
     assert_array_almost_equal(
         x, np.fft.irfft2(np.fft.rfft2(x, norm="ortho"), norm="ortho"))
Esempio n. 6
0
 def test_rfft2(self):
     x = random((30, 20))
     assert_array_almost_equal(np.fft.fft2(x)[:, :11], np.fft.rfft2(x))
     assert_array_almost_equal(np.fft.rfft2(x) / np.sqrt(30 * 20),
                               np.fft.rfft2(x, norm="ortho"))
Esempio n. 7
0
 def test_fft2(self):
     x = random((30, 20)) + 1j*random((30, 20))
     assert_array_almost_equal(np.fft.fft(np.fft.fft(x, axis=1), axis=0),
                               np.fft.fft2(x))
     assert_array_almost_equal(np.fft.fft2(x) / np.sqrt(30 * 20),
                               np.fft.fft2(x, norm="ortho"))
Esempio n. 8
0
 def test_ifft(self):
     x = random(30) + 1j*random(30)
     assert_array_almost_equal(x, np.fft.ifft(np.fft.fft(x)))
     assert_array_almost_equal(
         x, np.fft.ifft(np.fft.fft(x, norm="ortho"), norm="ortho"))
Esempio n. 9
0
 def test_fft(self):
     x = random(30) + 1j*random(30)
     assert_array_almost_equal(fft1(x), np.fft.fft(x))
     assert_array_almost_equal(fft1(x) / np.sqrt(30),
                               np.fft.fft(x, norm="ortho"))