Numpy viết tắt của Numerical Python là thư viện giúp làm việc với mảng và ma trận đa chiều trong python. Sử dụng numpy, các mảng trong python có thể được xử lý với tốc độ nhanh hơn. Nó là một thư viện mã nguồn mở để thực hiện các tính toán khoa học và các phép toán logic và toán học trên các mảng python. Numpy có một số chức năng sẵn có và trong bài viết này, chúng ta sẽ nói về một chức năng như vậy – Numpy ifft
nội dung
Chức năng Numpy ifft là gì?
Numpy ifft là một hàm trong thư viện numpy của python được sử dụng để lấy Biến đổi Fourier rời rạc nghịch đảo một chiều. Nó tính toán nghịch đảo của Biến đổi Fourier rời rạc một chiều thu được bằng numpy. fft
Ứng dụng chính của việc sử dụng numpy. chức năng ifft là để phân tích tín hiệu. Ở đây 'ifft' là viết tắt của 'Biến đổi Fourier nhanh nghịch đảo'. Chuyển đổi trực tiếp Biến đổi Fourier rời rạc thành nghịch đảo của nó sử dụng năng lượng tính toán cao. Vì vậy, chúng tôi sử dụng numpy. ifft vì nó thực hiện nghịch đảo với tốc độ nhanh hơn
Giới thiệu về Biến đổi Fourier nghịch đảo
Trước khi đi vào hàm ifft của NumPy, trước tiên chúng ta sẽ tìm hiểu về biến đổi Fourier ngược là gì. Biến đổi Fourier chuyển đổi tín hiệu thời gian thành tần số của chúng và Biến đổi Fourier nghịch đảo chuyển đổi nó trở lại thành tín hiệu thời gian tương ứng
Xử lý hình ảnh, nén hình ảnh, phân tích tín hiệu, nén âm thanh, tái tạo hình ảnh, v.v. , là các ứng dụng khác nhau của Inverse Fourier Transform trong python. Bằng cách sử dụng biến đổi Fourier nghịch đảo, chúng tôi chuyển đổi tín hiệu từ miền tần số sang miền thời gian của chúng
Cú pháp của numpy ifft
Cú pháp của hàm ifft trong numpy là
fft.ifft[a, n=None, axis=-1, norm=None]
Thông số
a. Đó là mảng đầu vào phải được chuyển đổi
n. Đây là tham số tùy chọn có giá trị là Không theo mặc định. Đó là chiều dài của trục biến đổi của đầu ra. Nếu n không được cung cấp, thì độ dài đầu vào sẽ theo giá trị trục được chỉ định. Nếu n nhỏ hơn độ dài của đầu vào, thì đầu vào sẽ bị cắt. Khác nếu n lớn hơn, thì việc đệm bằng 0 được thực hiện trên đầu vào
trục. Đây lại là một tham số tùy chọn có giá trị âm theo mặc định. Nếu giá trị n không được cung cấp, thì biến trục được cung cấp giá trị của trục mà trên đó phải tính toán nghịch đảo
định mức. Đó là một giá trị tùy chọn được mặc định là 'lùi'. Nó chỉ ra hướng của cặp chuyển đổi. Giá trị có thể là 'tiến lên', 'lùi lại' hoặc 'ortho. ’
Giá trị trả về
ngoài. Đầu ra là mảng n chiều phức tạp được biến đổi
Numpy ifft sử dụng python
Bây giờ chúng ta hãy triển khai hàm ifft trong python. Để làm được điều đó, trước tiên, chúng ta sẽ nhập thư viện numpy
import numpy as np
Sau đó, sau khi nhập numpy, chúng ta sẽ tạo mảng một chiều bằng hàm numpy array[]
array = np.array[[1,5, 4,3]]
Ở đây, chúng ta sẽ thực hiện biến đổi Fourier của mảng đã cho trước. Đối với điều đó, chúng tôi sẽ sử dụng fft. hàm fft[] có trong numpy. Hàm fft[] nhận các tham số giống như hàm ifft[]
Sự khác biệt duy nhất là nó tính toán Biến đổi Fourier rời rạc một chiều trong khi ifft[] sẽ thực hiện nghịch đảo của giá trị thu được bởi fft[]
ft = np.fft.fft[array]
Bây giờ, để thực hiện phép biến đổi Fourier nghịch đảo trên tín hiệu, chúng ta sử dụng hàm ifft[]. Chúng tôi sử dụng 'np. fft. cú pháp ifft[]‘ để truy cập hàm iffit[]
Chúng ta sẽ chuyển biến 'ft' làm đối số cho hàm ifft[]. Điều này sẽ thực hiện nghịch đảo của phép biến đổi Fourier
ift = np.fft.ifft[ft]
Bây giờ, chúng ta sẽ in cả hai biến - 'ft' và 'ift' thu được từ phép biến đổi Fourier và phép biến đổi Fourier ngược tương ứng
print[ft] print[ift]
đầu ra là
[13.+0.j -3.-2.j -3.+0.j -3.+2.j] [1.+0.j 5.+0.j 4.+0.j 3.+0.j]
Như đã thấy ở trên, khi chúng ta thực hiện nghịch đảo phép biến đổi Fourier, chúng ta đã lấy lại được mảng ban đầu
[ 1. + 0.j , 5+0.j , 4+0.j , 3+0.j ] is equal to [ 1, 5, 4, 3 ].
Ở đây như bạn có thể thấy, đầu ra ở dạng số phức. Số phức có dạng 'a + bi' trong đó a là phần thực của số và b là phần ảo
Nếu không muốn đáp án ở dạng số phức ta có thể chuyển nó sang dạng tuyệt đối. Để làm được điều đó, chúng ta có thể sử dụng hàm abs[] có trong thư viện numpy
________số 8
đầu ra sẽ là
[13. 3.60555128 3. 3.60555128] [1. 5. 4. 3.]
Tuy nhiên, lưu ý rằng nếu bạn không thể sử dụng giá trị tuyệt đối thu được từ hàm fft[] để thực hiện nghịch đảo, nó sẽ không cho kết quả tương tự
Ngoài ra, Đọc
- Triển khai Python Spectrogram trong Python từ đầu
- Numpy Sin trong Python với các ví dụ minh họa
- Sản phẩm Numpy Dot trong Python với các ví dụ
- Hàm Numpy ix_. Những điều bạn cần biết
câu hỏi thường gặp
rfft[] so với fft[]
Sự khác biệt chính giữa rfft[] và fft[] là tốc độ hoạt động của cả hai. Sử dụng rfft[] nhanh hơn sử dụng fft[] vì rfft[] không tính nửa âm của tần số phổ .
scipy. ifft[] so với numpy. ifft[]
Như tên gợi ý, scipy. hàm ifft[] được truy cập thông qua thư viện scipy và numpy. hàm ifft[] được truy cập thông qua thư viện numpy. Sự khác biệt là scipy. ifft[] chứa nhiều tính năng hơn numpy. ifft[] và do đó, nó được ưu tiên hơn so với thư viện numpy.