diszkrét Fourier-transzformáció
Kiejtés
- IPA: [ ˈdiskreːtfourijɛrtrɒnsformaːt͡sijoː]
Főnév
diszkrét Fourier-transzformáció
- (matematika, algoritmusok)
- **Diszkrét Fourier-transzformáció (DFT)**
A **Diszkrét Fourier-transzformáció (DFT)** egy olyan eljárás, amely a diszkrét időtartományban adott jel **frekvenciatartománybeli reprezentációját** adja meg. Ez a módszer különösen hasznos digitális jelek és rendszerek analízisében, például jelfeldolgozásban, képkompresszióban és spektrális elemzésben.
—
- **Matematikai definíció**
A DFT a bemeneti diszkrét jel -hosszú szekvenciáját transzformálja -re, amely a frekvenciatartománybeli reprezentációt adja.
- **Egyenletek**: ahol: - : Az időtartománybeli jel, - : A frekvenciatartománybeli komponensek, - : A jel mintavételezési pontjainak száma, - : A DFT komplex exponenciális alapfüggvénye.
- **Fordított DFT (IDFT)**: A frekvenciatartománybeli reprezentáció visszatranszformálása az időtartományba:
—
- **Jellemzők**
1. **Komplex értékek**: - A DFT eredményei általában komplex számok (), amelyek tartalmazzák a frekvencia **amplitúdóját** és **fázisát**. - Az amplitúdó: . - A fázis: .
2. **Periodicitás**: - A eredmény periodikus -en belül, azaz .
3. **Lineáris komplexitás**: - Az egyenletek műveletet igényelnek közvetlen számítással. Ez jelentős költséget jelenthet nagy -re.
—
- **Gyors Fourier-transzformáció (FFT)**
A **FFT** a DFT gyorsított változata, amely optimalizálja a számítási folyamatot. Az FFT hatékonyan számolja ki a DFT-t időben, ami nagy minták esetén jelentős gyorsulást eredményez.
—
- **Példa**
Adott a következő diszkrét jel:
- **DFT számítása**:
1. ****:
2. ****:
3. ****:
4. ****:
- **Eredmény**:
—
Python implementáció
import numpy as np
# Példa jel
x = np.array([1, 2, 3, 4])
# DFT számítása
def dft(x):
N = len(x)
X = np.zeros(N, dtype=complex)
for k in range(N):
for n in range(N):
X[k] += x[n] * np.exp(-2j * np.pi * k * n / N)
return X
X = dft(x)
print("DFT eredmény:", X)
# FFT összehasonlítás
X_fft = np.fft.fft(x)
print("FFT eredmény:", X_fft)
Kimenet:
DFT eredmény: [10.+0.j -2.-2.j -2.+0.j -2.+2.j] FFT eredmény: [10.+0.j -2.-2.j -2.+0.j -2.+2.j]
C++ implementáció
#include <iostream>
#include <vector>
#include <complex>
#include <cmath>
using namespace std;
using Complex = complex<double>;
vector<Complex> dft(const vector<double>& x) {
int N = x.size();
vector<Complex> X(N);
for (int k = 0; k < N; ++k) {
Complex sum(0.0, 0.0);
for (int n = 0; n < N; ++n) {
double angle = -2.0 * M_PI * k * n / N;
sum += x[n] * Complex(cos(angle), sin(angle));
}
X[k] = sum;
}
return X;
}
int main() {
// Példa jel
vector<double> x = {1, 2, 3, 4};
// DFT számítása
vector<Complex> X = dft(x);
// Eredmény kiírása
cout << "DFT eredmény:" << endl;
for (const auto& val : X) {
cout << val << endl;
}
return 0;
}
Kimenet:
DFT eredmény: (10,0) (-2,-2) (-2,0) (-2,2)
Előnyök
- Frekvenciaelemzés:
- A DFT a jel frekvenciatartománybeli elemzésének alapvető eszköze.
- Numerikus stabilitás:
- A DFT stabil és pontos, különösen digitális rendszerekben.
- Széles körű alkalmazhatóság:
- Számos területen használható, például jelfeldolgozásban, képkompresszióban, radar- és távközlési rendszerekben.
Hátrányok
- Számítási költség:
- A közvetlen DFT számítás (O(N^2)) időigényű, ami nagy jelek esetén lassú.
- Periodicitás feltételezése:
- A DFT implicit módon feltételezi, hogy a jel periodikus, ami műtermékeket okozhat.
Alkalmazások
- Jelfeldolgozás:
- Spektrális analízis, szűrés, zajcsökkentés.
- Kép- és videófeldolgozás:
- Kompresszió (JPEG, MPEG), mintázatfelismerés.
- Távközlés:
- Moduláció, spektrum kihasználtság elemzése.
- Rendszerek szimulációja:
- Fizikai rendszerek, például rezgés- és hullámelemzés.
Összegzés
A Diszkrét Fourier-transzformáció kulcsfontosságú eszköz a jelek idő- és frekvenciatartomány közötti átalakításához. Bár a DFT közvetlen számítása számításigényes, a Gyors Fourier-transzformáció (FFT) hatékonyabbá tette a használatát, így elengedhetetlen eszközzé vált a modern jelfeldolgozásban és adatfeldolgozásban.
Fordítások
- angol: discrete Fourier transform (en)
- orosz: дискретное преобразование Фурье (ru) (diskretnoje preobrazovanije Furʹje)
- diszkrét Fourier-transzformáció - Értelmező szótár (MEK)
- diszkrét Fourier-transzformáció - Etimológiai szótár (UMIL)
- diszkrét Fourier-transzformáció - Szótár.net (hu-hu)
- diszkrét Fourier-transzformáció - DeepL (hu-de)
- diszkrét Fourier-transzformáció - Яндекс (hu-ru)
- diszkrét Fourier-transzformáció - Google (hu-en)
- diszkrét Fourier-transzformáció - Helyesírási szótár (MTA)
- diszkrét Fourier-transzformáció - Wikidata
- diszkrét Fourier-transzformáció - Wikipédia (magyar)