Upload
aleksey-tyulpin
View
323
Download
4
Embed Size (px)
DESCRIPTION
Доклад был сделал на одном из семинаров в Северном (Арктическом) Федеральном Университете
Citation preview
Алгоритмы преобразования Фурье. Применениев цифровой обработке сигналов
Северный (Арктический) Федеральный Университет им. М.В.Ломоносова, Институт математики, информационных и космических
технологий
Тюльпин А.А[email protected]
Архангельск – 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/
Спасибо за внимание!
Алгоритмы преобразования Фурье. Применениев цифровой обработке сигналов
Северный (Арктический) Федеральный Университет им. М.В.Ломоносова, Институт математики, информационных и космических
технологий
Тюльпин А.А[email protected]
Архангельск – 2013