Scipy Fft

Scipy Fft
Zarówno Numpy, jak i Scipy w Python mają wiele procedur FFT (od podstawowego do złożonego). Koncepcja Scipy FFT zostanie dokładnie zbadana w tym poście. Zbadamy również, jak go zastosować w praktyce. Wyjaśnimy, jakie są funkcje Scipy FFT i podamy kilka przykładów programowania, aby zacząć. Scipy.fft (), scipy.fft rfft (), scipy.Metody FFT Shift (), FftFreq () i FftConvolve () zostaną szczegółowo omówione wraz z przykładami w tym artykule. Przykłady są podane w celu wyjaśnienia tego tematu, abyś mógł z łatwością go wdrożyć.

Python Scipy FFT Wyjaśnienie

Metoda analizy Fouriera definiuje wyłącznie funkcję jako sumę okresowych komponentów i wywodzi sygnał objęty modułem Scipy Python o nazwie Scipy.fft. Funkcja, jak i jej transformacja Fouriera (Ft) są zastąpione dyskretnymi odpowiednikami w celu wytworzenia dyskretnej transformacji Fouriera.

Korzystając z sekwencji opartej na czasie, transformacja Fouriera, zwana po prostu Fourier, jest funkcją matematyczną, która określa ogólną prędkość obrotu, jej wytrzymałość i przesunięcie cyklu dla potencjalnego cyklu każdego wzoru. Fasy, podstawowe operacje czasu, przestrzeni lub dowolnej innej zmiennej można łatwo przekształcić za pomocą transformacji Fouriera.

Będziemy przestudiować najpopularniejszą metodę transformacji Fouriera z przykładami w następujących podsekcjach.

Przykład 1:

Zaczynamy od opisania scipy.Metoda fft () przy użyciu następującego fragmentu kodu. W tym przykładzie widzimy, że scipy.Metoda FFT () może obliczyć szybką transformację Fouriera, otrzymując tablicę wartości i zwracając wynik. Spójrz na każdy wiersz kodu.

Tutaj, w kodzie, widać, że dwa moduły, Scipy i Numpy, są najpierw importowane. Następnie tworzona jest zmienna o nazwie „Input_val”, w której Numpy.metoda array () służy do wytworzenia siatki wartości. Następnie widać kolejną zmienną o nazwie „res_val”, w której scipy.Zastosowana jest metoda FFT, w której przekazano utworzony „input_val”. Wreszcie, wynik jest podany.

Import Scipy
Importuj Numpy
input_val = Numpy.tablica (Numpy.Arange (8))
res_val = scipy.FFT (input_val)
print (res_val)

Tutaj dane wyjściowe jest podłączone do odniesienia:

Przykład 2:

Omówmy funkcję Scipy FFT RFFT Pythona. Dyskretna transformacja Fouriera w jednym wymiarze określonego wkładu rzeczywistego jest obliczana przez moduł scipy rfft () języka programowania Python.

Wyjście metody RFFT jest typu ndarray. Końcowe wejście, jeśli oś nie jest określone, lub wejście, które zostało zerowe lub obcięte i przekształcone wzdłuż osi dostarczonej przez oś.

Weźmy program jako przykład, wykonując następujący kod. Spróbuj całkowicie zrozumieć program kodu.

W pierwszym wierszu metoda RFFT jest importowana z Scipy.Moduł FFT. Następnie metoda RFFT jest stosowana do utworzonych wartości tablicy. Wartości wynoszą 2,4,6 i 8. Wynik metody FFT jest przechowywany w utworzonej zmiennej o nazwie „Magnum”. Wreszcie, instrukcja „druku (magnum)” służy do pokazania wyniku.

od Scipy.FFT Import RFFT
magnum = rfft ([2, 4, 6, 8])
Drukuj (Magnum)

Jest to właściwy sposób użycia metody Python Scipy Rfft () i sposobu obliczenia dyskretnej transformacji Fouriera.

Poniżej znajduje się dane wyjściowe generowane z poprzedniego kodu w celu uzyskania pomocy:

Przykład 3:

Trzeci przykład tego artykułu zawiera szczegóły na temat Python Scipy FFT Shift. Metoda FftShift () wytwarza y ​​typu ndarray. Tutaj jest przesunięta tablica.

Rozważmy ten przykład.

Początkowo widać, że importujemy wymagane biblioteki. Kod tego robienia to „od Scipy.FFT Import FftShift, FftFreq ”, jak widać na początku kodu, który jest dołączony do następujących. Następnie obliczamy częstotliwości za pomocą drugiego wiersza kodu. Teraz podajemy częstotliwości metody fftShift () przy użyciu kodu „res = fftShift (częstotliwości)”. Wreszcie, druk (RES) służy do wyświetlania wyniku dla czytelników.

od Scipy.FFT Import FftShift, FftFreq
frequnces = fftfreq (7,4)
res = fftshift (frequnces)
Drukuj (res)

Dołączony jest wynikowy zrzut ekranu. To najlepszy sposób na przesunięcie składnika zerowej częstotliwości widma na punkt środkowy. Jest przesunięty na określonych częstotliwościach za pomocą metody FFTShift ():

Przykład 4:

Częstotliwość próbek jest kontrolowana przez Scipy Scipy.Moduł FFT. Centra kosza częstotliwości są zwracane przez tablicę pływaków „F”. Jest w cyklach na jednostkę. Metoda fftfreq () zwraca obiekt ndarary z wartością f.

Poniżej znajduje się kolejny przykładowy program, aby lepiej zrozumieć koncepcję.

Najpierw importujemy niezbędne biblioteki za pomocą instrukcji importu. Następnie, jak widać w następującym kodzie, wytwarza sygnał, a Fourier go przekształca.

Importujemy wymagane biblioteki (Numpy, FFT i FFTREQ) przy użyciu instrukcji importu. Następnie tworzymy sygnał. Następnie jest przekształcany za pomocą Fouriera, jak pokazano w następującym kodzie. Następnie obliczamy częstotliwości próbki i predfiniujemy czas jako „time_st = 0.1 ”. Jest to zalecany sposób zastosowania metody FFTFREQ () dostępnej w Python Scipy.

Importuj Numpy
od Scipy.FFT Import FFT
od Scipy.FFT Import FftFreq
utworzony_sig = Numpy.tablica ([3, -4, 5, 0, 2, 5, 8, 10], dtype = float)
ft_val = fft (Created_Sig)
data_val = Created_Sig.rozmiar
time_st = 0.1
freq = fftfreq (data_val, d = time_st)
Drukuj (Freq)

Oto wynik:

Przykład 5:

FFT jest używany metodą FftConvolve () Scipy w Scipy.Moduł sygnałowy do złącza tablicy N-wymiarowej (szybka transformacja Fouriera). Poniższy przykładowy kod programowania pokazuje pomysł FFTCONVOLVE (). Patrz następujący załączony kod.

Kod jest bardzo podobny do poprzednich kodów przykładowych, z wyjątkiem tego, że zastosowaliśmy tutaj metodę FFTCONVOLVE () i określono poziomy szumu i autokorelacji.

Uruchom ten przykładowy kod (patrz następujący załączony obraz) i zrozum, jak używać metody FFTCONVOLVE (), aby zwołać tablicę N-Dimensional:

od Scipy.Importuj sygnał FftConvolve
Import Scipy.sygnał
Importuj Numpy
importować matplotlib.Pyplot as Plt
SIG1 = Numpy.losowy.default_rng ()
res = sig1.standard_normal (500)
autoCorrelation = fftConvolve (res, res [:: 1], tryb = „pełny”)
Ryc, (orig_axes, mag_axes) = plt.wątki (2, 1)
orig_axes.fabuła (res)
orig_axes.set_title („hałas”)
mag_axes.fabuła (Numpy.Arange (-len (res)+1, len (res)), autokorelacja)
mag_axes.set_title („autokorelacja”)
Figa.cicik_layout ()
Figa.pokazywać()

Zobacz następujące dane wyjściowe. To wyjście jest generowane z poprzedniego kodu. Pierwszy wykres pokazuje szum, a drugi wykres pokazuje autokorelację:

Wniosek

Scipy FFT to temat dyskusji w tym poście. Podsumowując, prosta tablica 1-D Numpy jest przekazywana Scipy.metoda FFT (), która oblicza szybką transformację Fouriera i zwraca transformowaną tablicę. Mamy różne techniki, w tym scipy fft () shift (), fftfreq () i fftConvolve (). Przedstawiono próbki programowania i szczegółowe dyskusje każdej z tych technik. Aby dalej zrozumieć wspomniany temat, zapoznaj się z kodami przedstawionymi w tym artykule.