Nghịch đảo FFT Python

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[an=Noneaxis=-1norm=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.

Chủ Đề