Your SlideShare is downloading. ×
Алгоритмы преобразования Фурье. Применение в ЦОС
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Алгоритмы преобразования Фурье. Применение в ЦОС

221
views

Published on

Доклад был сделал на одном из семинаров в Северном (Арктическом) Федеральном Университете

Доклад был сделал на одном из семинаров в Северном (Арктическом) Федеральном Университете

Published in: Science

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
221
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Алгоритмы преобразования Фурье. Применение в цифровой обработке сигналов Северный (Арктический) Федеральный Университет им. М.В. Ломоносова, Институт математики, информационных и космических технологий Тюльпин А.А. alekseytyulpin@gmail.com Архангельск – 2013
  • 2. Часть I. Математический аппарат
  • 3. Тригонометрический ряд Фурье Тригонометрическим рядом Фурье периодической функции f(x), имеющей период T называется ряд a0 2 + ∞ k=1 (ak cos kx T + bk sin kx T ), где a0 = 2 T T/2 −T/2 f(x)dx, an = 2 T T/2 −T/2 f(x) cos(kx)dx, bn = 2 T T/2 −T/2 f(x) sin(kx)dx
  • 4. Разложение в комплексный ряд Фурье В более общем виде рядом Фурье элемента гильбертова пространства называется разложение этого элемента по ортогональному базису. Существует множество систем ортогональных функций: Уолша, Лагера, Котельникова и др. В пространстве L2[a, b] одной из таких систем является ситема функций e−ikx k ∈ Z . Разложение функции f(x) в ряд Фурье по данной системе будет иметь следующий вид: ∞ k=−∞ Cke−ikx где Ck = 1 T T/2 −T/2 f(x)e −i2πkx T dx — комплексный интеграл Фурье
  • 5. Преобразование Фурье Преобразованием Фурье будем называть операцию, сопоставляющуюю функции f(x) функцию ˜f(ω), описывающую коэффициенты разложения f(x) в ряд Фурье: ˜f(ω) = ∞ −∞ f(x)e−iωx dx Обратным преобразованием Фурье будем называть операцию, обращающую преобразование Фурье: f(x) = 1 √ 2π ∞ −∞ ˜f(ω)eiωx dω
  • 6. Часть II. Применение преобразования Фурье в цифровой обработке сигналов
  • 7. Разложение сигнала на гармонические колебания t = 1s, df = 1000Hz, f = 10Hz x(t) = cos(2πft)+cos(2π(3f)t)+1.2 cos(2π(4.8f)t)+0.3 cos(2π(20f)t) 0.0 0.2 0.4 0.6 0.8 1.0 Time [s] 4 3 2 1 0 1 2 3 4 Amplitude 0 200 400 600 800 1000 Frequency [Hz] 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 Amplitude
  • 8. Свертка функций Свертка – операция в функциональном анализе, показывающая схожесть одной функции с отраженной и сдвинутой копией другой. На рисунке представлен пример сверки двух прямоугольных импульсов:
  • 9. Вычисление свертки Свертка сигналов во временной области: (x ∗ h)(t) = ∞ −∞ x(τ)h(t − τ)dτ Пусть X(ω) и H(ω) – образы сигналов x(t) и h(t) соответственно. Тогда преобразование Фурье свертки данных сигналов можно вычислить по формуле: ∞ −∞ (x ∗ h)(t)e−iωt dt = X(ω) · H(ω) На основании приведенных выше формул следует, что: (x ∗ h)(t) = 1 √ 2π ∞ −∞ X(ω) · H(ω)eiωx dω
  • 10. Цифровая фильтрация 0 200 400 600 800 10000.5 0.0 0.5 1.0 1.5 Spectrum of filter 0 10 20 30 40 501.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 Filter operator 0 200 400 600 800 10000.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 Gibbs phenomen
  • 11. Часть III. Алгоритмы вычисления преобразования Фурье. Быстрая свертка
  • 12. Дискретные сигналы Дискретизация сигнала по времени – процедура, состоящая в замене несчетного множества его значений их счетным (дискретным) множеством, которое содержит информацию о значениях непрерывного сигнала в определенные моменты времени.
  • 13. Выбор частоты дискретизации Теорема Котельникова-Найквиста-Шеннона Непрерывный сигнал x(t) с ограниченным спектром можно точно восстановить (интерполировать) по его отсчетам x(n·dT), взятым через интервалы dT = 1 2F , где F – верхняя частота спектра сигнала.
  • 14. Дискретное преобразование Фурье (ДПФ) Обозначения: xn – значение сигнала в момент времени tn X(ωk) = Xk – значение спектра сигнала в точке ωk N – количество отсчетов ωk = 2πk fk – k-я частота спектра j – мнимая единица Xk = N−1 n=0 xne −jωkn N xn = 1 N N−1 k=0 Xke jωkn N
  • 15. Вычислительная сложность ДПФ Пусть {k ∈ 0, N − 1} – отсчеты спектра сигнала x(t). Тогда для вычисления как прямого, так и обратного преобразования Фурье потребуется O(n2) операций: def DFT(x, df): X = zeros(df,dtype = np.complex) N = len(x) for k in xrange(df): for n in xrange(N): X[k] += x[n] * np.exp(-1j * 2 * np.pi * k * n / N) return X def IDFT(X): N = len(X) x = zeros(N,dtype = np.complex) for n in xrange(N): for k in xrange(N): x[n] += X[k] * np.exp(1j * 2 * np.pi * k * n / N) x[n] /= N return x
  • 16. Введение в быстрое преобразование Фурье (БПФ) Виды БПФ: БПФ с прореживанием по частоте (DIF FFT) БПФ с прореживанием по времени (DIT FFT) Первая программная реализация алгоритма БПФ была осуществлена в начале 60-х годов XX века Джоном Кули в вычислительном центре IBM под руководством Джона Тьюки, а в 1965 году ими же была опубликована статья, посвященная алгоритму быстрого преобразования Фурье (Cooley–Tukey FFT).
  • 17. БПФ. Основная идея Основная идея БПФ состоит в разбиении спектра на 2 части, и вычислении БПФ уже для каждой из частей размерности N/2.
  • 18. БПФ с прореживанием по времени Рассмотрим один из алгоритмов вычиcления преобразования Фурье последовательностей отсчетов длины N = 2l, l ∈ R за O(N log2 N) операций – алгоритм прореживания по времени. Обозначим Wnk N = e −jn2πk N . Разобьем последовательность отсчетов сигнала на четные и нечетные: Xk = N−1 n=0 xn · Wnk N = N/2−1 n=0 x2n · W2nk N + + N/2−1 n=0 x2n+1 · W (2n+1)k N = N/2−1 n=0 x2n · Wnk N/2 X0(ωk) + + Wk N N/2−1 n=0 x2n+1 · Wnk N/2 X1(ωk) = X0(ωk) + Wk N X1(ωk)
  • 19. БПФ с прореживанием по времени Рассмотрим разбиение спектра на две части: X = {Xk|k = 0, N − 1} = = {Xm|m = 0, N/2 − 1} {Xr|r = N/2, N − 1} = = {Xm|m = 0, N/2 − 1} {Xr+N/2|r = 0, N/2 − 1} Вычислим вторую половину спектра: Xk+N/2 = N/2−1 n=0 x2n · W n(k+N/2) N/2 + + W k+N/2 N N/2−1 n=0 x2n+1 · W n(k+N/2) N/2
  • 20. БПФ с прореживанием по времени Рассмотрим некоторые особенности коэффициентов Wnk N W n(k+N/2) N/2 = W nN/2 N/2 · Wnk N/2 W nN/2 N/2 = e −j2πnN/2 N/2 = e−j2πn = cos(−2πn) − j sin(−2πn) = 1 Получаем: W n(k+N/2) N/2 = Wnk N/2 Также, стоит отметить, что W k+N/2 N = e −j2πN 2N Wk N = −Wk N
  • 21. БПФ с прореживанием по времени Для первой половины спектра: Xk = X0(ωk) + Wk N X1(ωk) Для второй половины спектра: Xk+N/2 = X0(ωk) − Wk N X1(ωk) def W(n, N): return np.exp(-1j * 2 * np.pi * n/N) def fft(x): N = len(x) if N <= 1: return x even = fft(x[0::2]) odd = fft(x[1::2]) return [even[n] + W(n, N) * odd[n] for n in xrange(N/2)] + [even[n] - W(n, N) * odd[n] for n in xrange(N/2)]
  • 22. Литература A. Oppenheim, R. Schafer. Digital Signal Processing L. Franks. Signal theory H. Nussbaumer. Fast Fourier Transform and Convolution Algorithms E. Titchmarsh. Introduction to the Theory of Fourier Integrals E. Chu, A. George. Inside the FFT Black Box: Serial and Parallel Fast Fourier Transform Algorithms А. Н. Колмогоров, С.В. Фомин. Элементы теории функций и функционального анализа Сайт профессора Давыдова – http://prodav.narod.ru/ О. В. Бесов Тригонометрические ряды Фурье Сайт http://dsplib.ru/
  • 23. Спасибо за внимание!
  • 24. Алгоритмы преобразования Фурье. Применение в цифровой обработке сигналов Северный (Арктический) Федеральный Университет им. М.В. Ломоносова, Институт математики, информационных и космических технологий Тюльпин А.А. alekseytyulpin@gmail.com Архангельск – 2013