gyors Fourier-transzformáció

Üdvözlöm, Ön a gyors Fourier-transzformáció szó jelentését keresi. A DICTIOUS-ban nem csak a gyors Fourier-transzformáció szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a gyors Fourier-transzformáció szót egyes és többes számban mondani. Minden, amit a gyors Fourier-transzformáció szóról tudni kell, itt található. A gyors Fourier-transzformáció szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. Agyors Fourier-transzformáció és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

Kiejtés

  • IPA:

Főnév

gyors Fourier-transzformáció

  1. (matematika, algoritmusok)

Gyors Fourier-transzformáció (FFT - Fast Fourier Transform)

A gyors Fourier-transzformáció (FFT) egy hatékony algoritmus a diszkrét Fourier-transzformáció (DFT) kiszámítására. Az FFT az (O(n^2)) időkomplexitású DFT-t (O(n n)) időre optimalizálja, így rendkívül hasznos a jelfeldolgozás, spektrális analízis, és más numerikus alkalmazások esetén.



Elmélet

Fourier-transzformáció

A Fourier-transzformáció célja egy idő- vagy térbeli jelfolyamat frekvenciakomponenseinek meghatározása. A diszkrét Fourier-transzformáció (DFT) egy (x = ) mintavételi sorozatot alakít át komplex frekvenciaértékek sorozatává (X = ): ahol (i = ) az imaginárius egység.

Gyors Fourier-transzformáció (FFT)

Az FFT a DFT kiszámításának optimalizált változata, amely a “oszd meg és uralkodj” technikát alkalmazza: 1. A bemeneti jelet páros és páratlan indexekre osztja. 2. Két kisebb DFT-t hajt végre (az egyik a páros, a másik a páratlan elemekre). 3. A DFT eredményeket kombinálja a “pillangó” műveletekkel, kihasználva a periodicitás tulajdonságait.



Időkomplexitás

  • DFT: (O(n^2)).
  • FFT: (O(n n)).



Pszeudokód

FFT(x):
    n = x hossza
    ha n = 1:
        térj vissza x
    ω = e^(-2πi / n)  // Gyök a Fourier-transzformációhoz
    x páros = FFT(x)
    x páratlan = FFT(x)
    T =  * n
    ciklus k = 0-tól n/2-ig:
        T = x_páros + ω^k * x_páratlan
        T = x_páros - ω^k * x_páratlan
    térj vissza T

Python implementáció

import numpy as np

def fft(x):
    n = len(x)
    if n <= 1:
        return x
    # Páros és páratlan indexek felosztása
    even = fft(x)
    odd = fft(x)
    T =  * n
    for k in range(n // 2):
        t = np.exp(-2j * np.pi * k / n) * odd
        T = even + t
        T = even - t
    return T

# Példa használat
data = 
result = fft(data)
print("FFT eredmény:")
print(result)

Kimenet:

FFT eredmény:

C++ implementáció

#include <iostream>
#include <complex>
#include <vector>
#include <cmath>

using namespace std;

typedef complex<double> Complex;
typedef vector<Complex> CArray;

void fft(CArray& x) {
    int n = x.size();
    if (n <= 1) return;

    // Páros és páratlan részek felosztása
    CArray even(n / 2);
    CArray odd(n / 2);
    for (int i = 0; i < n / 2; ++i) {
        even = x;
        odd = x;
    }

    // Rekurzív FFT
    fft(even);
    fft(odd);

    // Kombinálás
    for (int k = 0; k < n / 2; ++k) {
        Complex t = polar(1.0, -2 * M_PI * k / n) * odd;
        x = even + t;
        x = even - t;
    }
}

int main() {
    CArray data = {0, 1, 2, 3, 4, 5, 6, 7};

    fft(data);

    cout << "FFT eredmény:" << endl;
    for (auto& c : data) {
        cout << c << endl;
    }

    return 0;
}

Kimenet:

FFT eredmény:
(28,0)
(-4,9.65685)
(-4,4)
(-4,1.65685)
(-4,0)
(-4,-1.65685)
(-4,-4)
(-4,-9.65685)

Összegzés

Előnyök:

  1. Rendkívül gyors ((O(n n))).
  2. Hatékony spektrális analízisre, szűrőkre, konvolúciókra.

Hátrányok:

  1. Az implementáció bonyolultabb, mint a DFT-é.
  2. Az adatméretnek (2^k) (hatványának) kell lennie, bár ez megoldható nullákkal történő kitöltéssel.

A gyors Fourier-transzformáció (FFT) kulcsfontosságú algoritmus a numerikus feldolgozásban, és széles körben alkalmazzák különböző tudományos és mérnöki területeken.

Fordítások