Дискретне перетворення Фур'є (ДПФ, англ. Discrete Fourier Transform) — це математична процедура, що використовується для визначення гармонічного, або частотного, складу дискретних сигналів. ДПФ є однією з найбільш розповсюджених і потужних процедур цифрової обробки сигналів. ДПФ дозволяє аналізувати, перетворювати і синтезувати сигнали такими способами, які неможливі при неперервній (аналоговій) обробці.
Формули перетворень
Витоком ДПФ є неперервне перетворення Фур'є , яке визначається:
Експоненціальна форма:
Тригонометрична форма:
Позначення:
- — -ий компонент ДПФ, тобто ,
- — індекс ДПФ в частотній області, ,
- — послідовність вхідних відліків, ,
- — часовий індекс вхідних відліків, ,
- — кількість відліків вхідної послідовності і кількість частотних відліків результату ДПФ.
Якщо представити довільний відлік ДПФ як суму дійсних і уявних частин:
- з кутом ,
то амплітуда обчислюється:
Фазовий кут , , обчислюється так:
Потужність відліків , яка називається спектром потужності, являє собою амплітуду, піднесену до квадрату:
Властивості
- Симетрія
- Лінійність
Якщо вхідна послідовність має ДПФ , а інша вхідна послідовність має ДПФ , то ДПФ суми цих послідовностей рівна: - Зсув в часі
Приклад обчислення
У цьому прикладі ДПФ застосовується до послідовності довжиною , а саме, до вхідного вектора
Обчислимо ДПФ за допомогою експоненциальної форми:
що дає
Приклад програми
Нижче подано приклад функції обчислення ДПФ на мові програмування C#
// Структура комлексних чисел public struct Complex { public double Re; public double Im; public Complex(double Re, double Im) { this.Re = Re; this.Im = Im; } } public double Sqr(double x) { return x*x; } // x - послідовність вхідних відліків // X - послідовність вихідних відліків // AS - спектр амплітуд // FS - спектр фаз // PS - спектр потужностей // N - кількість відліків public void DFT(double[] x, ref Complex[] X, ref double[] AS, ref double[] FS, ref double[] PS, int N) { Complex S = new Complex(); Complex[] XC = new Complex[N]; int k, n; for (k = 0; k < N; k++) { S.Re = 0.0; S.Im = 0.0; for (n = 0; n < N; n++) { S.Re += x[n] * Math.Cos(2 * Math.PI * k * n / N); S.Im -= x[n] * Math.Sin(2 * Math.PI * k * n / N); } X[k].Re = S.Re; X[k].Im = S.Im; } for (k = 0; k < N; k++) { AS[k] = Math.Sqrt(Sqr(X[k].Re) + Sqr(X[k].Im)) / (N / 2); PS[k] = X[k].Re * X[k].Re + X[k].Im * X[k].Im; if (Math.Abs(X[k].Re) < 1e-5) { if (X[k].Im > 1e-5) FS[k] = 90; if (Math.Abs(X[k].Im) < 1e-5) FS[k] = 0; if ((X[k].Im < 0) && (Math.Abs(X[k].Im) > 1e-5)) FS[k] = -90; } else FS[k] = Math.Atan2(X[k].Im, X[k].Re) * 180.0 / Math.PI; } }
Див. також
Джерела
- Ричард Лайонс. Цифровая обработка сигналов. — 2-е. — Москва : Бином, 2006. — 656 с. — .
- Сергиенко А. Б. Цифровая обработка сигналов. — 2-е. — Спб : Питер, 2006. — 751 с. — .
Посилання
- Дискретне перетворення Фур'є [ 24 червня 2012 у Wayback Machine.](рос.)
- Властивості дискретного перетворення Фур'є [ 26 серпня 2021 у Wayback Machine.](рос.)
- Реалізація дискретного перетворення Фур'є на процесорі TMS320C55x фірми Texas Instruments [ 1 травня 2013 у Wayback Machine.](укр.)
- Аналіз спектру сигналів [ 8 лютого 2015 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Diskretne peretvorennya Fur ye DPF angl Discrete Fourier Transform ce matematichna procedura sho vikoristovuyetsya dlya viznachennya garmonichnogo abo chastotnogo skladu diskretnih signaliv DPF ye odniyeyu z najbilsh rozpovsyudzhenih i potuzhnih procedur cifrovoyi obrobki signaliv DPF dozvolyaye analizuvati peretvoryuvati i sintezuvati signali takimi sposobami yaki nemozhlivi pri neperervnij analogovij obrobci Formuli peretvorenVitokom DPF ye neperervne peretvorennya Fur ye X f displaystyle X f yake viznachayetsya X f x t e j 2 p f t d t displaystyle X f int infty infty x t e j2 pi ft dt Eksponencialna forma X m n 0 N 1 x n e j 2 p n m N displaystyle X m sum n 0 N 1 x n e j2 pi nm N Trigonometrichna forma X m n 0 N 1 x n cos 2 p n m N j sin 2 p n m N displaystyle X m sum n 0 N 1 x n cos 2 pi nm N j sin 2 pi nm N Poznachennya X m displaystyle X m m displaystyle m ij komponent DPF tobto X 0 X 1 X 2 displaystyle X 0 X 1 X 2 m displaystyle m indeks DPF v chastotnij oblasti m 0 1 2 3 N 1 displaystyle m 0 1 2 3 N 1 x n displaystyle x n poslidovnist vhidnih vidlikiv x 0 x 1 x 2 displaystyle x 0 x 1 x 2 n displaystyle n chasovij indeks vhidnih vidlikiv n 0 1 2 3 N 1 displaystyle n 0 1 2 3 N 1 N displaystyle N kilkist vidlikiv vhidnoyi poslidovnosti i kilkist chastotnih vidlikiv rezultatu DPF Yaksho predstaviti dovilnij vidlik DPF X m displaystyle X m yak sumu dijsnih i uyavnih chastin X m X r e m j X i m m X m a g displaystyle X m X re m jX im m X mag z kutom X ϕ m displaystyle X phi m to amplituda X m displaystyle X m obchislyuyetsya X m a g m X m X r e m 2 X i m m 2 displaystyle X mag m X m sqrt X re m 2 X im m 2 Fazovij kut X m displaystyle X m X ϕ m displaystyle X phi m obchislyuyetsya tak X ϕ m tan 1 X i m m X m a g m displaystyle X phi m tan 1 X im m X mag m Potuzhnist vidlikiv X m displaystyle X m yaka nazivayetsya spektrom potuzhnosti yavlyaye soboyu amplitudu pidnesenu do kvadratu X P S m X m a g m 2 X r e m 2 X i m m 2 displaystyle X PS m X mag m 2 X re m 2 X im m 2 VlastivostiSimetriya X N m n 0 N 1 x n e j 2 p n m N displaystyle X N m sum n 0 N 1 x n e j2 pi nm N Linijnist Yaksho vhidna poslidovnist x 1 n displaystyle x 1 n maye DPF X 1 m displaystyle X 1 m a insha vhidna poslidovnist x 2 n displaystyle x 2 n maye DPF X 2 m displaystyle X 2 m to DPF sumi cih poslidovnostej x s u m n x 1 n x 2 n displaystyle x sum n x 1 n x 2 n rivna X s u m m X 1 m X 2 m displaystyle X sum m X 1 m X 2 m Zsuv v chasi X s h i f t e d m e j 2 p k m N X m displaystyle X shifted m e j2 pi km N X m Priklad obchislennyaU comu prikladi DPF zastosovuyetsya do poslidovnosti dovzhinoyu N 4 displaystyle N 4 a same do vhidnogo vektora x x 0 x 1 x 2 x 3 1 2 i i 1 2 i displaystyle mathbf x begin pmatrix x 0 x 1 x 2 x 3 end pmatrix begin pmatrix 1 2 i i 1 2i end pmatrix Obchislimo DPF x displaystyle mathbf x za dopomogoyu eksponencialnoyi formi X 0 e i 2 p 0 0 4 1 e i 2 p 0 1 4 2 i e i 2 p 0 2 4 i e i 2 p 0 3 4 1 2 i 2 displaystyle X 0 e i2 pi 0 cdot 0 4 cdot 1 e i2 pi 0 cdot 1 4 cdot 2 i e i2 pi 0 cdot 2 4 cdot i e i2 pi 0 cdot 3 4 cdot 1 2i 2 X 1 e i 2 p 1 0 4 1 e i 2 p 1 1 4 2 i e i 2 p 1 2 4 i e i 2 p 1 3 4 1 2 i 2 2 i displaystyle X 1 e i2 pi 1 cdot 0 4 cdot 1 e i2 pi 1 cdot 1 4 cdot 2 i e i2 pi 1 cdot 2 4 cdot i e i2 pi 1 cdot 3 4 cdot 1 2i 2 2i X 2 e i 2 p 2 0 4 1 e i 2 p 2 1 4 2 i e i 2 p 2 2 4 i e i 2 p 2 3 4 1 2 i 2 i displaystyle X 2 e i2 pi 2 cdot 0 4 cdot 1 e i2 pi 2 cdot 1 4 cdot 2 i e i2 pi 2 cdot 2 4 cdot i e i2 pi 2 cdot 3 4 cdot 1 2i 2i X 3 e i 2 p 3 0 4 1 e i 2 p 3 1 4 2 i e i 2 p 3 2 4 i e i 2 p 3 3 4 1 2 i 4 4 i displaystyle X 3 e i2 pi 3 cdot 0 4 cdot 1 e i2 pi 3 cdot 1 4 cdot 2 i e i2 pi 3 cdot 2 4 cdot i e i2 pi 3 cdot 3 4 cdot 1 2i 4 4i sho daye X X 0 X 1 X 2 X 3 2 2 2 i 2 i 4 4 i displaystyle mathbf X begin pmatrix X 0 X 1 X 2 X 3 end pmatrix begin pmatrix 2 2 2i 2i 4 4i end pmatrix Priklad programiNizhche podano priklad funkciyi obchislennya DPF na movi programuvannya C Struktura komleksnih chisel public struct Complex public double Re public double Im public Complex double Re double Im this Re Re this Im Im public double Sqr double x return x x x poslidovnist vhidnih vidlikiv X poslidovnist vihidnih vidlikiv AS spektr amplitud FS spektr faz PS spektr potuzhnostej N kilkist vidlikiv public void DFT double x ref Complex X ref double AS ref double FS ref double PS int N Complex S new Complex Complex XC new Complex N int k n for k 0 k lt N k S Re 0 0 S Im 0 0 for n 0 n lt N n S Re x n Math Cos 2 Math PI k n N S Im x n Math Sin 2 Math PI k n N X k Re S Re X k Im S Im for k 0 k lt N k AS k Math Sqrt Sqr X k Re Sqr X k Im N 2 PS k X k Re X k Re X k Im X k Im if Math Abs X k Re lt 1e 5 if X k Im gt 1e 5 FS k 90 if Math Abs X k Im lt 1e 5 FS k 0 if X k Im lt 0 amp amp Math Abs X k Im gt 1e 5 FS k 90 else FS k Math Atan2 X k Im X k Re 180 0 Math PI Div takozhRyad Fur ye Shvidke peretvorennya Fur yeDzherelaRichard Lajons Cifrovaya obrabotka signalov 2 e Moskva Binom 2006 656 s ISBN 5 9518 0149 4 Sergienko A B Cifrovaya obrabotka signalov 2 e Spb Piter 2006 751 s ISBN 5 318 00666 3 PosilannyaDiskretne peretvorennya Fur ye 24 chervnya 2012 u Wayback Machine ros Vlastivosti diskretnogo peretvorennya Fur ye 26 serpnya 2021 u Wayback Machine ros Realizaciya diskretnogo peretvorennya Fur ye na procesori TMS320C55x firmi Texas Instruments 1 travnya 2013 u Wayback Machine ukr Analiz spektru signaliv 8 lyutogo 2015 u Wayback Machine