Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шапорев выч мат.pdf
Скачиваний:
766
Добавлен:
26.03.2015
Размер:
8.33 Mб
Скачать

0.511

 

 

0.2554

 

1.030

 

 

-0.497

 

3.419

 

 

31.539

 

59.500

 

 

-0.810

 

 

2.750

 

 

0.9280

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.555

 

 

0.2988

2.170

 

 

0.828

3.875

 

 

49.183

 

70.450

 

 

-0.897

 

2.935

 

 

0.9790

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.609

 

 

0.3552

2.500

 

 

-0.781

4.200

 

 

67.686

 

82.100

 

 

-0.954

 

3.150

 

 

0.9999

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Номера вариантов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

 

 

22

 

 

 

23

 

 

 

 

24

 

 

 

 

25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi

 

 

 

yi

 

xi

 

 

 

yi

 

xi

 

 

 

yi

 

 

xi

 

 

 

yi

 

xi

 

 

 

yi

0.000

 

 

2.7183

 

0.100

 

 

-3.928

 

0.000

 

 

1.0000

 

0.500

 

 

0.9273

 

 

0.100

 

 

0.0905

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.425

 

 

2.4869

0.330

 

 

-3.743

0.175

 

 

0.9703

 

0.625

 

 

0.8938

 

0.300

 

 

0.2222

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.870

 

 

1.9057

0.519

 

 

-3.567

0.308

 

 

0.9133

 

0.800

 

 

0.8434

 

0.490

 

 

0.3002

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.395

 

 

1.1911

0.728

 

 

-3.344

0.514

 

 

0.7910

 

1.100

 

 

0.7573

 

0.730

 

 

0.3518

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.850

 

0.7591

0.997

 

-3.004

0.800

 

0.6098

1.450

 

0.6669

 

0.950

 

0.3674

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.410

 

0.4752

1.264

 

-2.598

0.996

 

0.5020

1.810

 

0.5890

 

1.200

 

0.3614

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.215

 

0.3689

1.513

 

-2.146

1.213

 

0.4046

2.250

 

0.5123

 

1.500

 

0.3347

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.397

 

0.3800

1.875

 

-1.332

1.456

 

0.3205

2.570

 

0.4668

 

1.710

 

0.3093

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.830

 

 

0.4620

2.011

 

 

-0.969

1.678

 

 

0.2621

 

3.000

 

 

0.4164

 

1.980

 

 

0.2734

 

 

 

 

Номера вариантов

 

 

 

 

26

 

 

27

 

28

 

29

 

30

xi

yi

xi

yi

xi

yi

xi

yi

xi

yi

1.100

0.438

1.500

0.919

1.000

2.3198

0.000

0.540

0.125

0.9058

1.250

0.709

3.750

0.247

1.500

2.7115

0.479

-0.044

0.180

0.9310

1.400

0.169

5.120

-0.062

1.985

2.4979

0.896

-0.770

0.236

0.9540

1.575

-0.042

8.300

-0.519

2.470

1.8631

1.365

-0.715

0.291

0.9730

1.720

-0.148

11.450

-0.723

2.990

1.1630

1.700

0.690

0.347

0.9879

1.900

-0.318

17.900

-0.967

3.500

0.7041

1.915

0.876

0.400

0.9969

2.070

-0.461

21.680

-0.998

3.875

0.5120

2.148

-0.655

0.462

0.9999

2.310

-0.624

25.100

-0.997

4.218

0.4147

2.583

0.784

0.517

0.9944

2.500

-0.718

30.000

-0.967

4.500

0.3762

2.995

0.421

0.560

0.9839

3.13. Тригонометрическая интерполяция. Дискретное преобразование Фурье и его реализация на ЭВМ

Задача интерполяции функции y = f (x) заданной таблично на сетке x0 < x1 <... < xn1

тригонометрическим многочленом, решается во многом аналогично задаче полиномиальной интерполяции. Здесь обобщенный многочлен имеет вид

Φn (x) = n1 ak exp(2πikx).

(3.13.1)

k =0

 

В инженерных задачах широко используется представление функций в виде сходящихся тригонометрических рядов, а также различные варианты преобразования Фурье. Задача тригонометрической интерполяции имеет некоторые особенности, например, для нее оптимальным является равномерное распределение узлов.

Известно, что абсолютно интегрируемая и кусочно-гладкая на конечных отрезках функция y = f (x) представима интегралом Фурье

f (x)=

f (u)exp(2πit(x u))dudt .

(3.13.2)

−∞ −∞

 

Из этого соотношения легко получить преобразования Фурье в комплексной форме:

96

x , что легко проверяется непосредственно:

S(t)=

f (u)exp(2πitu)du,

(3.13.3)

 

−∞

 

 

f (x)=

S(t)exp(2πitx)dt.

 

 

 

 

 

−∞

 

Эти преобразования играют большую роль в распознавании образов, в моделировании фильтров, описании изображений и в целом ряде других задач. Поскольку аналитическое вычисление интеграла (3.13.3) вызывает значительные трудности, большое распространение получили методы численной реализации этих интегралов. Был разработан метод дискретного преобразования Фурье, а в 1965 году Кули и Таки предложили так называемый алгоритм «быстрого преобразования Фурье» - БПФ.

Под дискретным преобразованием Фурье понимают пару преобразований, которые

устанавливают взаимосвязь между конечным числом дискретных выборок как функции

f (x), так и ее частотного спектра S(t). Эти преобразования записываются обычно в виде

S(tn ) =

 

x2N 1 f (xk )exp(2πitn xk ), n = 0,1,...,2N 1,

(3.13.4)

 

 

k =0

 

t2N 1S(tn )exp(2πitn xk ), k = 0,1,...,2N 1.

f (xk )

=

 

 

 

n=0

 

Операцию преобразования набора значений f (x0 ), f (x1 ),..., f (x2 N 1 ) в набор значений частотного спектра S(t0 ), S(t1 ),..., S(t2 N 1 ) принято называть прямым дискретным преобразо-

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

Рассмотрим подробнее функцию S(tn ) из уравнений (3.13.4). Оказывается, S(tn ) имеет период 1

 

1

 

2N 1

 

k

 

 

 

1

 

 

 

2 N 1

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S t +

 

=

x

 

 

f (x

 

)exp 2πi t +

 

 

k

x = x

 

f (x

 

)exp(2πitk x) = S(t).

 

 

 

 

 

 

 

 

x

 

k =0

 

 

 

 

 

 

x

 

 

 

k =0

 

 

 

Здесь положено x0

= 0 и xk = k x . Из периодичности следует, что функция S(t) определяет-

ся заданием ее значений на промежутке длиной

1

x

, то есть выборки tn в соотношениях

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(3.13.4) должны удовлетворять условию tn

< 1 2

x для всех n = 0,1,...,2N 1.

Если tn [0,

1

x

]= T

и S(tn ) = 0 , когда tn T , то интервал между узлами x необ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ходимо выбирать из условия

 

 

2T x <1.

 

 

 

 

 

 

(3.13.5)

 

 

 

 

 

f (x)

 

 

 

 

 

 

 

Тогда функция

имеет ограниченный спектр частот, и возможно взаимное вос-

становление функций f (x) и S(t) по их значениям в конечном числе точек.

3.14. Матричная форма записи дискретного преобразования Фурье (ДПФ)

Будем предполагать далее, что исходная функция f (x) имеет ограниченный спектр частот tn <T ; кроме того предположим, что задан конечный интервал изменения переменной x : 0 x X .

Очевидно,

x =

 

X

. Из условия (3.13.5) 2T

x <1 получаем условие на выбор числа

 

2N

 

X

 

 

 

N

 

2N 1

 

2N

 

 

1

 

N : 2T x = 2T

<1,

N >T X . Отсюда же T <

,

2T <

. Положив

t =

,

2N

X

X

 

X

X

 

 

 

 

 

 

 

 

 

 

Кули (Cooly J.W.), Таки (Tukey J.W.) – американские математики.

97

получим (2N 1) t 2T <

2N

и

t <

1

 

2N

 

, где 2N 1

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

 

X

X

2N 1

 

 

 

 

 

X

 

 

n

 

 

 

T . Следовательно,

xk = k

 

 

x = k

,

tn

= n

t =

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2N

 

 

 

 

 

 

 

 

 

X

 

 

Тогда дискретное преобразование Фурье в точках xk и tn запишется в виде

 

 

 

X 2 N 1

 

 

 

 

 

 

 

π

 

 

 

 

 

S(tn )=

 

 

 

 

 

f (xk

)exp

 

 

 

 

ink , n

= 0,1,...,2N 1,

2N

 

N

 

 

k =0

 

 

 

 

 

 

 

 

 

 

 

(3.14.1)

 

 

 

 

1

2N 1

 

 

 

π

 

 

 

 

 

 

 

f (xk )

=

 

 

 

S(tn )exp

 

 

 

ink , k = 0,1,...,2N 1.

 

 

 

 

 

 

 

 

 

 

 

X n=0

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Каждое из

равенств

 

(3.14.1)

 

 

можно

легко

 

получить

из

другого.

uk = f (xk ) и vn = S(tn )

 

и

умножим

 

n

уравнение

 

для S(tn )

 

i

π

jn

 

X

 

2 N 1

i

π

n

k

 

 

i

π

j

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vn e

 

N

 

=

 

 

 

 

N

 

 

 

 

N

 

, n = 0,1,...,2N 1. При сложении

 

 

 

2N

 

uk e

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

k =0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ко вычисляются коэффициенты при uk ; действительно,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

2 N 1

i

π

nk

i

π

jn

 

X

 

2 N 1

i

π

(k j )

 

 

0, k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

N

 

e N

 

=

 

e

 

N

 

=

 

 

 

 

 

 

 

 

 

 

 

 

2N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n=0

 

 

 

 

 

 

 

 

 

 

 

2N n=0

 

 

 

 

 

 

X , k =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 N 1

i

π

 

 

i

π

 

 

 

 

 

Пусть, например,

k

 

j

 

и k j =1,

тогда

e

 

N

= 1 + e

 

N

n=0

Например

обозначим

 

 

 

π

 

 

на

ei

 

jn .

Получим

N

всех 2N равенств лег-

j,

 

 

 

 

 

j.

 

 

 

 

 

+ e2i

π

+ ... +ei

π(2 N 1)

N

N =

 

1 ei

π

 

2 N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 e2πi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= 1

N

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= 0 .

Разделив

 

найденный

коэффициент на X , получим

 

1 ei

 

π

1 ei

π

 

 

 

N

 

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2 N 1

 

 

 

 

 

 

π

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

uk =

vn ei N nk , то есть второе соотношение системы (3.14.1).

 

X

 

 

n=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Дискретные преобразования Фурье можно записать еще короче в матричном виде.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

0

 

 

f (x

0

)

 

 

 

 

 

 

 

 

v

0

 

 

 

S(t

0

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

π

 

 

 

 

 

 

u1

 

 

 

f

(x1 )

 

 

 

 

 

 

 

 

v1

 

 

 

S(t1 )

 

Пусть q = e

N

и U =

=

 

 

 

 

 

 

=

 

 

 

 

 

M

 

 

 

M

 

 

 

, V =

 

M

 

 

M

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u2N 1

 

 

f (x2 N 1 )

 

 

 

 

 

 

v2 N 1

 

 

S

(t2 N 1 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1

 

 

 

 

 

 

1

 

 

L

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

q

 

 

 

 

 

 

q2

 

 

L q2 N 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

W =

1

 

 

 

q2

 

 

 

 

 

 

q4

 

 

L q2(2 N 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L

 

 

 

L

 

 

 

 

 

 

L

 

 

L

 

L .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

q

2 N 1

 

q

2

(2 N 1)

L q

(2 N 1)2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда систему (3.14.1) можно переписать в следующем виде:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V

=

 

 

 

 

WU,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2N

 

 

 

 

 

 

 

 

(3.14.2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U =

 

W 1V.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

98

1

 

1

 

1

L

1

 

 

 

1

 

q1

 

q2

L q2 N 1

 

 

 

 

 

 

 

Здесь W 1 =

1

 

q2

 

q4

L q2(2 N 1)

. Очевидно из (3.14.2), что для непосредст-

 

 

 

 

 

 

 

 

 

 

L

 

L

 

L

L

L

 

 

 

1

q

2 N 1

q

2(2 N 1)

L q

(2N 1)2

 

 

 

 

 

 

 

 

венного перемножения матриц W и U требуется 2N (2N 1)(2N )2 операций комплексного

умножения и сложения.

Разработанный Кули и Таки алгоритм БПФ использует факт, что, если число 2N не является простым, количество арифметических операций, требуемых для вычисления по

формулам (3.14.2), можно существенно уменьшить. Если 2N = r1 r2 ... rn , где rk -

целые

числа, то матрицу W можно представить в виде произведения n матриц W1 ,W2 ,...,Wn

поряд-

ка 2N ×2N таких, что у каждой матрицы Wk имеется только rk 2N отличных от нуля элементов. Тогда

V =

X

W

n

W

n1

... W

2

W U

(3.14.3)

 

 

2N

 

 

1

 

 

 

 

 

 

 

 

 

Если теперь найти алгоритм, по которому умножение матриц Wk

осуществляется

только путем rk 2N операций (отбрасываются умножения на нули), то для выполнения преобразования (3.14.3) потребуется (r1 + r2 +...+ rn ) 2N операций. Это число может быть при

больших значениях 2N значительно меньше, чем исходное число операций (2N )2 . Особенно эффективным этот алгоритм является тогда, когда 2N является степенью числа два. В

этом случае вместо (2N )2 операций требуется выполнить лишь

2N log2 2N операций.

На-

пример, для 2N =1024 = 210 этот алгоритм позволяет

ускорить вычисления

в

 

2N

= 1024 50 раз. Программы, реализующие различные варианты этого алгоритма,

 

2N log2 2N

 

20

 

 

входят в стандартное математическое обеспечение ЭВМ и доступны массовому пользователю.

3.15. Алгоритм реализации ДПФ

Рассмотрим один из способов разложения матрицы W в случае 2N = 2n и приведем

алгоритм для выполнения соответствующих вычислений. Разложим матрицу W на

n со-

множителей W ,W ,...,W

n

таких, что каждая из матриц

W ,k =1,2,...,n содержит 2n+1

отлич-

1 2

 

k

 

= (c(m)), i, j =1,2,...,2n .

ных от нуля элементов. Пусть с(m) - элементы матрицы

W

, то есть W

 

 

i, j

m

m

i, j

 

Тогда один из алгоритмов дискретного преобразования Фурье, не изменяющий порядок че-

редования компонент результирующего вектора

V =

X

W U , определяется следующим

2N

образом:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

π

 

 

 

 

 

 

 

 

 

 

 

 

 

q = e

 

N , i = 0,1,...,2nm 1,

μ =1,2,...,2m-1 ,

 

(m)

 

 

 

 

 

 

 

(m)

 

 

 

 

 

=1,

 

ci 2m ,i 2m1

=

1, ci 2m +2m1,i 2m1

 

 

 

c(mm)

 

 

 

 

 

 

= q(μ−1)2

nm

,

(3.15.1)

 

 

 

n1

+i 2

m1

 

 

 

 

 

 

 

i 2 ,2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= −q(μ−1)2nm ,

c(m)

 

 

 

 

 

 

 

i 2m +2m1,2n1+i 2m1

 

 

 

 

 

ci(,mj ) = 0 для всех остальных пар индексов i, j .

99

Соседние файлы в предмете Вычислительная математика