Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Kranover R M - Fraktaly i khaos v din sist

.pdf
Скачиваний:
111
Добавлен:
17.05.2015
Размер:
11.33 Mб
Скачать

9.5 Срединноесмещение и ФБД • 281

Алгоритм 9.5.3. (СРЕДИННАЯ КРИВАЯ)

Назначение: программа-драйвер для аппроксимации кривой ФБД с помощью срединного смещения. Вызывает рекурсивную программу DIVIDE1 (алгоритм 9.5.4).

Замечание: аппроксимация ФБД точна только при Н = 1/2.

Вход:

Н (параметр ФБД: размерность графика d — 2 — H) maxlevel (максимальное число рекурсий)

scale (параметр вертикального масштаба)

Выход:

X (N+1 значений ФБД, где N = 2maxlevel) Инициализация:

level =1

ГО =1

*2 = N +1

X(i) = 0, i = 0,1,..., N +1

Комментарий: каждое обращение к gauss в последующих шагах означает вычисление независимой нормальной случайной величины.

Шаги:

ratio = 1/2я

std = scale * ratio X(l) = scale * gauss

X(N + 1) = scale *gauss

X = DIVIDE1 (X,ratio, std,io, %i, level, maxlevel)

Алгоритм 9.5.4. (DIVIDE1)

Назначение: рекурсивная процедура, которую вызывает алгоритм СРЕДИННАЯ КРИВАЯ.

Вход: (параметры, передаваемые с предыдущего уровня):

X ratio std

«о» h

level, maxlevel

9.5 Срединное смещение и ФБД • 2 8 3

Существует модифицированная версия двумерного алгоритма срединного смещения, описанного в п. 9.3 для классического броуновского движения. Как и следовало ожидать, этот алгоритм не дает настоящую поверхность ФБД, но широко применяется в компьютерных экспериментах. Выходные массивы имеют вид, как на рис. 9.13или 9.14.Алгоритм 9.5.5соответствует описанию в [38, с. 90].

Алгоритм 9.5.5. (Срединная поверхность)

Назначение: аппроксимирует поверхность ФБДс помощью срединного смещения.

Вход:

Н (параметр ФБД: размерность поверхности d = 3 — Н) maxlevel (максимальное число рекурсий)

scale (параметр вертикального масштаба)

Выход:

X (матрица (iV+l)x(i\r +l) аппроксимированных значений ФБД,

лт __ <ymaxlevel \

Инициализация:

ЛГ = ornax^v^

г = scale

Х(0,0) = 0 X{0,N) =0 X(N,0)=0 X(N,N) = 0 D =N

Комментарий: каждое обращение к g означает разыгрывание независимой нормальной случайной величины.

Шаги:

for L = 1 to L — maxlevel

г = r/2<fc/2)

for i — d to i = N - d by D for j — d to j = N — d by D

X(i,j) = (X(i + d,j + d) + X(i + d,j - d) +X(i - dj + d) + X(i - d,j - d))/4 + r • g

end end

284 Глава 9 / Случайные фракталы

г = г/2(я/2)

for г = d to г = iV —d by D

X(i, 0) = (X{i +d,0) + Х(Г - d, 0) +Х(Г, d))/3 + r • g

X(i, N) = (X(i + d,N) + X(i -d,N)+ X(i, N - d))/3 + r-g , t) = (X(0, i +d) + X(0,i-d) + X(d,»))/3 + r • g

) + (X{N, i +d) +X(N, i-d)

+ X(N - d,»))/3 + r • g

end

 

for i = d to i = N — d by D

 

for j = d to j = N —d by D

 

end

 

end

 

for i = D to i = N - d by D

 

for j = d to j = iV - d byD

 

Х(Г,J) = (Х(Г,J + d) + X(i,j -d)

+ X(i + dj)

+X(i-d,j)))/4 + r-g

 

end

 

end

 

D = D/2

 

d =d/2

 

end

 

Упргинснения 9.5.

1.Докажите, что результат работы алгоритма 9.5.3 удовлетворяет закону дисперсии (9.8) в случае приращений вида Х((к+ 1)/2п)— Х(к/2п). Обратитесь к доказательству теоремы 9.3.3.

9.6. Фурье-анализ ФБД

Преобразование Фурье. В 1807 году Жозеф Фурье сформулировал круг идей, вошедших в современную математику под названием ряды Фурье. Фурье-анализ стимулировал исследования в области основ математического анализа. Например, создание строгих теорий интегрирования было результатом стремления понять Фурьеанализ. Еще более важным для современной математики было создание теории множеств. Ранние работы Кантора поэтой теме были

9.6 Фурье-анализФБД

инициированы его исследованием множества точек, для которых ряды Фурье имеют нулевую сумму. Иногда говорят, что Кантор является создателем современной математики.

Строгое изложение методов Фурье-анализа является предметом отдельного курса. Здесь мы можем лишь сконцентрировать внимание на основных идеях и ключевых теоремах, которые имеют отношение к созданию алгоритма моделирования фрактального броуновского движения. Хорошим учебным пособием по Фурье-анализу может служить книга [40].

Пусть функция X(t), —оо < t < оо, удовлетворяет условию:

+

\X(t)\dt < оо.

(9.12)

Строго говоря, мы предполагаем, что функция X(t) измерима в смысле Лебега и что интеграл существует в смысле Лебега. Мы не будем излагать здесь теорию Лебега, но отметим, что класс рассматриваемых функций включает кусочно непрерывные функции, удовлетворяющие условию роста:

\X{t)\ = О ( ^ ) , р > 1 , при*-+±оо.

К этому классу, в частности, относятся ФБД, заданные на конечном интервале и равны нулю вне его.

Хотя независимая переменная t может означать что угодно, мы все-таки часто интерпретируем ее как время и называем X(t) представлением функции во временной области. Существует также частотная область, в которой функция представляется в виде суммы составляющих, имеющих определенную частоту /. Иными словами, функция X(t) может быть разложена на компоненты вида:

e2mff = COS(2TT/*) + ism(2nft).

Частота этих функций — / периодов в единицу времени, соответственно, их период — 1//. Комплексная форма записи е2жг?*упрощает анализ, но поскольку эквивалентная запись выражается через функции cos(2irft) И sin(27r/<), то вычисления можно производить и с помощью вещественной арифметики.

Составляющая X(t) с частотой / имеет вид:

286 • Глава 9 / Случайные фракталы

где

X(f) = J X(t)e-2*lftdt.

(9.13)

—оо

Функция X(f) в (9.13) называется преобразованием Фурье функции X(t). При определенных условиях имеет место формула обращения преобразования Фурье:

X(t) = I X{f)e2™f4f,

(9.14)

которая описывает синтез сигнала X(t) из отдельных частотных составляющих.

Возможно, большинство читателей знакомы скорее с рядами Фурье для периодических функций, чем с преобразованиями Фурье для интегрируемых функций.Пусть функция X (t) — периодическая с периодом р = 1. Тогда частоты кратны целым величинам п, и «преобразование» Фурье в этом случае имеет вид:

1

 

Х(п) = / X(t)e~2*mtdt,

- оо < п < оо.

о

 

Величины Х(п) обычно называются коэффициентами Фурье. Формула обращения в этом случае есть не что иное как ряд Фурье:

+ОО

X(t)= £ X(n)e2mnt.

п=—оо

Конечно, если X(t) имеет период р ф 1, то всегда можно отмасштабировать независимую переменную так, чтобы получить р = 1.

Полная энергия сигнала X(t) равна

+ОО

/ \X{t)\2dt

—оо

и в дальнейшем предполагается конечной. По известной теореме Планшереля [40]:

+ОО

 

+00

j

|22j*

f \Y( /M2

\X{t)\ dt= I \X(f)\ df,

9.6 Фурье-анализФЬД

то есть полная энергия может быть вычислена как во временной, так и в частотной области.

Если функция X(t)

вещественнозначная, то

+ОО

+0О

X(f) = J X(t)e~2*iftdt =

—oo —oo

где a + ib = a —ib. Обратно, если

X(f) = X(-f),

(9.15)

то X(t) вещественная.

Спектральная плотность. Пусть X{t) описывает ФБД. Рассмотрим функцию X(t,T):

Y(+т\ )

л*.0>

еслиО<«<Г,

Alt,

1 ) = < _

 

 

I

0,

в противном случае.

Преобразование Фурьефункции X(t,T) равно

т

X(f,T)= IX{t)e-2*iftdt.

о

Средняямощность функции X(t) на отрезке [0,Т] определяется как

т

о

и по теореме Планшереля равна

оо

i j \X(f,T)\2df.

—оо

Спектральная плотность мощности функции X(t, T) равна

288 Глава 9 / Случайные фракталы

Спектральная плотность функции X(t) тогда получается в виде предела при Т »• оо:

Sx(f) = lim ^|X(/,T)|2 .

Одна из основных теорем говорит о степенном росте спектральной плотности как функции частоты.

Теорема 9.6.7. Пусть функция X(t) описывает ФБД с параметром Н, О < Н < 1. Тогда для спектральной плотности имеем:

Доказательство. Полное доказательство использует достаточно глубокие результаты Фурье-анализа. Вместо этого мы проведем доказательство скорее на интуитивном уровне, как это проделано в работе Сопа [38].

Если предположить (без потери общности), что Х(0) = 0, то свойство статистического самоподобия (9.10) дает

X(t) = \(X(rt)) г"

для любого г > 0. Зафиксируем г > 0 и положим

Y(t Т) —{

* ( Г * ) / Г ' Я '

е с л и 0 <<< ^>

1

0,

в противном случае.

Сделав замену переменной t = s/r в преобразовании Фурье функции

Y(t,T), получим

г

У(/,Т) = J Y(t)e~2*iftdt

о

что приводит к

9.7 Фильтрация Фурье 289

и поэтому спектральная плотность Y(t, T) равна

Переходя к пределу при Т —> оо, получаем

Вследствие статистического самоподобия X и Y спектральные плотности Sx(f) и Sy(f) должны совпадать, и следовательно:

Если формально положить г = /,то

что и требовалось доказать.

9.7. Фильтрация Фурье

Практически, процесс моделирования ФБДможно упростить, аппроксимировав преобразование Фурье с помощью рядов Фурье, при условии, что требуемые свойства спектральной плотности сохраняются. После этого мыможем использовать обратное преобразование Фурье для получения требуемого ФБД. Рассмотрим подробнее дискретное преобразование Фурье.

Дискретное преобразование Фурье. Предположим, что нам известны значения сигнала X(t), О< t < Т, в п точках:

tn = nAt,

n = 0,1,2,..., N - 1; At = T/N.

Пусть Хп = X{tn).

Интервал Д£ называется шагомдискретизации,

а число отсчетов в единицу времени I/At называется частотой дискретизации. Дляудобства считаем N четным.

Мы хотим использовать N отсчетов сигнала X(t) для аппроксимации такого же числа значений функции X(f):

/

290 • Глава 9 / Случайные фракталы

Хотя всего имеется ЛГ+1 точек, но, так как при —N/2 и N/2 отсчеты равны, число различных величин равно N. Мы аппроксимируем преобразование Фурье в точках fn суммой:

о

N-l

Jfc=0

N-l

(At) Y, Xke-2*ikn'N.

Последняя сумма в этом выражении называется дискретным преобразованиемФурье(ДПФ) отсчетов Хо,Х\,..., Хп-\ и обозначается Хп, то есть:

Jfe=O

и

!(/„) =(At)Xn.

Введем £, или Слг, если требуется отметить зависимость от N:

f — f*, ~-1iri/N

 

(Q 1 7 \

S — SiV — e

^J.l ()

Тогда ДПФ можно записать так:

N-l

Из (9.18) следует, что ДПФ периодично с периодом N. Вследствие этого Хп обычно вычисляются для п = 0, 1, ..., N 1, а значения

нумеруют следующим образом:

-2, ••-, X-N-N/2-

9.7 Фильтрация Фурье • 291

ДПФ можно трактовать как преобразование из R^ в R^. A именно, ДПФ отображает вектор

Хо

Хо

 

X!

х =

х =

Это линейное отображение, которое в матрично-векторной форме

записывается как

 

(9.19)

 

X ——

где

 

 

" 1

1

1

1

с

с2

А (или Ар/) = 1

с2

с4

Легко доказывается, что (упр. 1 в конце параграфа):

АА = N1,

где J — единичная матрица N х N. Отсюда следует:

A =jjA.

Это приводит нас к формуле обратного ДПФ:

(9.20)

fc=0

Вычислять ДПФ (или ОДПФ) умножением на матрицу А (или А"1 ) не эффективно, так как умножение матрицы на вектор в (9.19) требует порядка N2 скалярных умножений. Обычно используется алгоритм быстрого преобразования Фурье(БПФ), который приведен в прил. А.б. В случае, если N равно степени 2, число умножений можно сократить до примерно |iVlog2 N.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]