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

Post on 22-Jun-2015

326 Views

Category:

Science

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Алгоритмы преобразования Фурье. Применениев цифровой обработке сигналов

Северный (Арктический) Федеральный Университет им. М.В.Ломоносова, Институт математики, информационных и космических

технологий

Тюльпин А.А.alekseytyulpin@gmail.com

Архангельск – 2013

Часть I. Математический аппарат

Тригонометрический ряд Фурье

Тригонометрическим рядом Фурье периодической функцииf(x), имеющей период T называется ряд

a02

+

∞∑k=1

(ak coskx

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

Разложение в комплексный ряд Фурье

В более общем виде рядом Фурье элемента гильбертовапространства называется разложение этого элемента поортогональному базису. Существует множество системортогональных функций: Уолша, Лагера, Котельникова и др. Впространстве L2[a, b] одной из таких систем является ситемафункций

{e−ikx

∣∣ k ∈ Z}. Разложение функции f(x) в ряд

Фурье по данной системе будет иметь следующий вид:

∞∑k=−∞

Cke−ikx

где

Ck =1

T

T/2∫−T/2

f(x)e−i2πkxT dx — комплексный интеграл Фурье

Преобразование Фурье

Преобразованием Фурье будем называть операцию,сопоставляющуюю функции f(x) функцию f̃(ω),описывающую коэффициенты разложения f(x) в ряд Фурье:

f̃(ω) =

∞∫−∞

f(x)e−iωxdx

Обратным преобразованием Фурье будем называть операцию,обращающую преобразование Фурье:

f(x) =1√2π

∞∫−∞

f̃(ω)eiωxdω

Часть II. Применение преобразования Фурье в цифровойобработке сигналов

Разложение сигнала на гармонические колебания

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.0Time [s]

432101234

Ampl

itude

0 200 400 600 800 1000Frequency [Hz]

0.00.20.40.60.81.01.21.4

Ampl

itude

Свертка функций

Свертка – операция в функциональном анализе, показывающаясхожесть одной функции с отраженной и сдвинутой копиейдругой. На рисунке представлен пример сверки двухпрямоугольных импульсов:

Вычисление свертки

Свертка сигналов во временной области:

(x ∗ h)(t) =∞∫−∞

x(τ)h(t− τ)dτ

Пусть X(ω) и H(ω) – образы сигналов x(t) и h(t)соответственно. Тогда преобразование Фурье свертки данныхсигналов можно вычислить по формуле:

∞∫−∞

(x ∗ h)(t)e−iωtdt = X(ω) ·H(ω)

На основании приведенных выше формул следует, что:

(x ∗ h)(t) = 1√2π

∞∫−∞

X(ω) ·H(ω)eiωxdω

Цифровая фильтрация

0 200 400 600 800 10000.5

0.0

0.5

1.0

1.5 Spectrum of filter

0 10 20 30 40 501.51.00.50.00.51.01.52.0 Filter operator

0 200 400 600 800 10000.00.10.20.30.40.50.60.7 Gibbs phenomen

Часть III. Алгоритмы вычисления преобразования Фурье.Быстрая свертка

Дискретные сигналы

Дискретизация сигнала по времени – процедура, состоящаяв замене несчетного множества его значений их счетным(дискретным) множеством, которое содержит информацию означениях непрерывного сигнала в определенные моментывремени.

Выбор частоты дискретизации

Теорема Котельникова-Найквиста-Шеннона

Непрерывный сигнал x(t) с ограниченным спектром можноточно восстановить (интерполировать) по его отсчетам x(n·dT ),взятым через интервалы dT =

1

2F, где F – верхняя частота

спектра сигнала.

Дискретное преобразование Фурье (ДПФ)

Обозначения:xn – значение сигнала в момент времени tnX(ωk) = Xk – значение спектра сигнала в точке ωkN – количество отсчетовωk = 2πk

fk – k-я частота спектраj – мнимая единица

Xk =

N−1∑n=0

xne−jωknN

xn =1

N

N−1∑k=0

Xkejωkn

N

Вычислительная сложность ДПФ

Пусть {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] /= Nreturn x

Введение в быстрое преобразование Фурье (БПФ)

Виды БПФ:БПФ с прореживанием по частоте (DIF FFT)БПФ с прореживанием по времени (DIT FFT)

Первая программная реализация алгоритма БПФ былаосуществлена в начале 60-х годов XX века Джоном Кули ввычислительном центре IBM под руководством Джона Тьюки,а в 1965 году ими же была опубликована статья, посвященнаяалгоритму быстрого преобразования Фурье (Cooley–TukeyFFT).

БПФ. Основная идея

Основная идея БПФ состоит в разбиении спектра на 2 части, ивычислении БПФ уже для каждой из частей размерности N/2.

БПФ с прореживанием по времени

Рассмотрим один из алгоритмов вычиcления преобразованияФурье последовательностей отсчетов длины N = 2l, l ∈ R заO(N log2N) операций – алгоритм прореживания по времени.Обозначим Wnk

N = e−jn2πk

N . Разобьем последовательностьотсчетов сигнала на четные и нечетные:

Xk =

N−1∑n=0

xn ·WnkN =

N/2−1∑n=0

x2n ·W 2nkN +

+

N/2−1∑n=0

x2n+1 ·W (2n+1)kN =

N/2−1∑n=0

x2n ·WnkN/2︸ ︷︷ ︸

X0(ωk)

+

+W kN

N/2−1∑n=0

x2n+1 ·WnkN/2︸ ︷︷ ︸

X1(ωk)

= X0(ωk) +W kNX1(ωk)

БПФ с прореживанием по времени

Рассмотрим разбиение спектра на две части:

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 ·Wn(k+N/2)N/2 +

+Wk+N/2N

N/2−1∑n=0

x2n+1 ·Wn(k+N/2)N/2

БПФ с прореживанием по времени

Рассмотрим некоторые особенности коэффициентов WnkN

Wn(k+N/2)N/2 =W

nN/2N/2 ·W

nkN/2

WnN/2N/2 = e

−j2πnN/2N/2 = e−j2πn = cos(−2πn)− j sin(−2πn) = 1

Получаем:W

n(k+N/2)N/2 =Wnk

N/2

Также, стоит отметить, что

Wk+N/2N = e

−j2πN2N W k

N = −W kN

БПФ с прореживанием по времени

Для первой половины спектра:

Xk = X0(ωk) +W kNX1(ωk)

Для второй половины спектра:

Xk+N/2 = X0(ωk)−W kNX1(ω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)]

Литература

A. Oppenheim, R. Schafer. Digital Signal ProcessingL. Franks. Signal theoryH. Nussbaumer. Fast Fourier Transform and ConvolutionAlgorithmsE. Titchmarsh. Introduction to the Theory of FourierIntegralsE. Chu, A. George. Inside the FFT Black Box: Serial andParallel Fast Fourier Transform AlgorithmsА. Н. Колмогоров, С.В. Фомин. Элементы теориифункций и функционального анализаСайт профессора Давыдова – http://prodav.narod.ru/О. В. Бесов Тригонометрические ряды ФурьеСайт http://dsplib.ru/

Спасибо за внимание!

Алгоритмы преобразования Фурье. Применениев цифровой обработке сигналов

Северный (Арктический) Федеральный Университет им. М.В.Ломоносова, Институт математики, информационных и космических

технологий

Тюльпин А.А.alekseytyulpin@gmail.com

Архангельск – 2013

top related