Hàm này tính toán nghịch đảo của Biến đổi Fourier rời rạc N chiều trên bất kỳ số trục nào trong mảng M chiều bằng Biến đổi Fourier nhanh [FFT]. Nói cách khác, ifftn[fftn[a]] == a
với độ chính xác bằng số. Để biết mô tả về các định nghĩa và quy ước được sử dụng, xem numpy.fft
Đầu vào, tương tự như ifft
, nên được sắp xếp theo cách tương tự như được trả về bởi fftn
, i. e. nó phải có số hạng tần số 0 ở tất cả các trục ở góc bậc thấp, số hạng tần số dương ở nửa đầu của tất cả các trục, số hạng tần số Nyquist ở giữa tất cả các trục và số hạng tần số âm ở nửa thứ hai
Mảng đầu vào, có thể phức tạp
s chuỗi int, tùy chọnHình dạng [chiều dài của mỗi trục được biến đổi] của đầu ra [
>>> import matplotlib.pyplot as plt >>> n = np.zeros[[200,200], dtype=complex] >>> n[60:80, 20:40] = np.exp[1j*np.random.uniform[0, 2*np.pi, [20, 20]]] >>> im = np.fft.ifftn[n].real >>> plt.imshow[im] >>> plt.show[]0 đề cập đến trục 0,
>>> import matplotlib.pyplot as plt >>> n = np.zeros[[200,200], dtype=complex] >>> n[60:80, 20:40] = np.exp[1j*np.random.uniform[0, 2*np.pi, [20, 20]]] >>> im = np.fft.ifftn[n].real >>> plt.imshow[im] >>> plt.show[]1 đến trục 1, v.v. ]. Điều này tương ứng với
>>> import matplotlib.pyplot as plt >>> n = np.zeros[[200,200], dtype=complex] >>> n[60:80, 20:40] = np.exp[1j*np.random.uniform[0, 2*np.pi, [20, 20]]] >>> im = np.fft.ifftn[n].real >>> plt.imshow[im] >>> plt.show[]2 cho
>>> import matplotlib.pyplot as plt >>> n = np.zeros[[200,200], dtype=complex] >>> n[60:80, 20:40] = np.exp[1j*np.random.uniform[0, 2*np.pi, [20, 20]]] >>> im = np.fft.ifftn[n].real >>> plt.imshow[im] >>> plt.show[]3. Dọc theo bất kỳ trục nào, nếu hình dạng đã cho nhỏ hơn hình dạng của đầu vào, đầu vào sẽ bị cắt. Nếu nó lớn hơn, đầu vào được đệm bằng số không. nếu s không được cung cấp, hình dạng của đầu vào dọc theo các trục được chỉ định bởi các trục được sử dụng. Xem ghi chú về vấn đề trên phần đệm bằng 0 của
ifft
trục chuỗi int, tùy chọnCác trục để tính toán IFFT. Nếu không được cung cấp, các trục
>>> import matplotlib.pyplot as plt >>> n = np.zeros[[200,200], dtype=complex] >>> n[60:80, 20:40] = np.exp[1j*np.random.uniform[0, 2*np.pi, [20, 20]]] >>> im = np.fft.ifftn[n].real >>> plt.imshow[im] >>> plt.show[]1 cuối cùng được sử dụng hoặc tất cả các trục nếu s cũng không được chỉ định. Các chỉ số lặp lại trong các trục có nghĩa là phép biến đổi nghịch đảo trên trục đó được thực hiện nhiều lầnchuẩn {"lùi", "ortho", "chuyển tiếp"}, tùy chọn
Mới trong phiên bản 1. 10. 0
Chế độ chuẩn hóa [xem numpy.fft
]. Mặc định là "lùi". Cho biết hướng nào của cặp biến đổi tiến/lùi được chia tỷ lệ và với hệ số chuẩn hóa nào
Mới trong phiên bản 1. 20. 0. Các giá trị “lùi”, “chuyển tiếp” đã được thêm vào.
Trả về . ra ndarray phức tạpĐầu vào bị cắt bớt hoặc không có đệm, được chuyển đổi dọc theo các trục được biểu thị bằng các trục hoặc bằng cách kết hợp s hoặc a, như được giải thích trong phần thông số ở trên
Tăng . Giá trịErrorNếu s và trục có độ dài khác nhau
Nếu một phần tử của các trục lớn hơn số lượng các trục của một
Xem thêm
numpy.fft
Cái nhìn tổng thể về các biến đổi Fourier rời rạc, với các định nghĩa và quy ước được sử dụng
fftn
FFT n chiều chuyển tiếp, trong đó
>>> import matplotlib.pyplot as plt >>> n = np.zeros[[200,200], dtype=complex] >>> n[60:80, 20:40] = np.exp[1j*np.random.uniform[0, 2*np.pi, [20, 20]]] >>> im = np.fft.ifftn[n].real >>> plt.imshow[im] >>> plt.show[]5 là nghịch đảo________số 8
FFT nghịch đảo một chiều
>>> import matplotlib.pyplot as plt >>> n = np.zeros[[200,200], dtype=complex] >>> n[60:80, 20:40] = np.exp[1j*np.random.uniform[0, 2*np.pi, [20, 20]]] >>> im = np.fft.ifftn[n].real >>> plt.imshow[im] >>> plt.show[]7
FFT nghịch đảo hai chiều
>>> import matplotlib.pyplot as plt >>> n = np.zeros[[200,200], dtype=complex] >>> n[60:80, 20:40] = np.exp[1j*np.random.uniform[0, 2*np.pi, [20, 20]]] >>> im = np.fft.ifftn[n].real >>> plt.imshow[im] >>> plt.show[]8
Hoàn tác
>>> import matplotlib.pyplot as plt >>> n = np.zeros[[200,200], dtype=complex] >>> n[60:80, 20:40] = np.exp[1j*np.random.uniform[0, 2*np.pi, [20, 20]]] >>> im = np.fft.ifftn[n].real >>> plt.imshow[im] >>> plt.show[]9, chuyển các số hạng không có tần số về đầu mảng
ghi chú
Xem numpy.fft
để biết các định nghĩa và quy ước được sử dụng
Đệm số 0, tương tự như với ifft
, được thực hiện bằng cách thêm các số 0 vào đầu vào dọc theo kích thước đã chỉ định. Mặc dù đây là cách tiếp cận phổ biến, nhưng nó có thể dẫn đến kết quả đáng ngạc nhiên. Nếu muốn một hình thức khác của phần đệm bằng 0, nó phải được thực hiện trước khi gọi
>>> import matplotlib.pyplot as plt >>> n = np.zeros[[200,200], dtype=complex] >>> n[60:80, 20:40] = np.exp[1j*np.random.uniform[0, 2*np.pi, [20, 20]]] >>> im = np.fft.ifftn[n].real >>> plt.imshow[im] >>> plt.show[]5