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

Для определяемых таким образом матриц Wm легко указать алгоритм последо-

вательного

выполнения

 

операций

при

 

умножении Wm Wm1 ... W1 U .

Пусть

δ(1), r = 0,1,...,2n 1- компоненты вектора–столбца

W U

. Тогда для каждого i = 0,1,...,2n1 1

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1)

 

 

= Ui +U 2n1+i ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

δ2i

 

 

 

 

 

 

 

 

 

(3.15.2)

 

 

 

 

 

 

 

 

 

 

 

 

 

(1)

 

 

= Ui U

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

δ2i+1

n1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

+i

 

 

(2),

 

 

 

 

Далее,

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

слева на

W

компоненты δ

r = 0,1,...,2n 1 вектора–столбца

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

r

 

 

 

 

 

W W U при каждом i = 0,1,...,2n2 1 и для μ = 0,1 вычисляются с помощью равенств

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

δ(2)

= δ

(1)

+ qi 2n2 δ(1)

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 22

 

 

 

 

2i

 

 

 

 

2n1+2i

 

 

 

 

(3.15.3)

 

 

 

 

 

 

 

 

 

 

 

 

= δ(21i)qi 2n2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

δ(2)

 

δ(1)

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 22 +2

 

 

 

 

 

 

 

 

 

2n1+2i

 

 

 

 

 

 

 

Формулы (3.15.2) и (3.15.3) для произвольного m = 3,4,..., n обобщаются аналогично.

Действительно, пусть δ(m),

r = 0,1,...,2n 1- компоненты вектора–столбца W W

... W U .

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

m1

 

1

Тогда для каждого i = 0,1,...,2nm 1 и для всех μ = 0,1,...,2m1

имеем равенства

 

 

 

 

 

 

 

 

 

 

 

δ

(m)

= δ

(m1)

 

 

+ q

i 2nm

δ

(m1)

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

m

 

m1

 

 

 

 

 

n1

 

m1

 

 

 

(3.15.4)

 

 

 

 

 

 

 

 

 

i 2

 

2

 

 

i

 

 

 

 

2

 

+2

 

 

i

 

 

 

 

 

 

 

 

 

δ(m)

 

 

= δ(m1)

qi 2nm δ(m1)

 

 

.

 

 

 

 

 

 

 

 

 

 

 

i 2m +2m1

 

2m1 i

 

 

 

 

2n1+2m1 i

 

 

 

 

 

 

Последовательный переход от вектора–столбца

Wm1 ... W1 U к вектору–столбцу

W

W

 

... W U

требует выполнения

2n основных операций, поэтому для вычисления

 

m

m1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

компонент вектора V

требуется произвести n 2n

основных операций, то есть применение

алгоритма БПФ сокращает число операций в 2n

n

 

раз.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.16. Пример реализации алгоритма ДПФ при 2N = 4

 

 

 

 

 

 

Рассмотрим

для

 

 

наглядности

самый

 

 

ростой

случай: 2n = 4,

n = 2 .

Здесь

 

 

2N

 

 

=

4

=1, то есть применение БПФ не дает никаких преимуществ по сравнению

 

2log2 2N

2log2 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с формулами (3.14.2). Однако этот простейший пример позволяет проиллюстрировать и понять сущность алгоритма ДПФ, то есть формул (3.15.1) - (3.15.4).

 

2N = 2n = 4, n = 2 ,

q = ei π2 , q2 = −1, q3 = −q, q4 = 1, q5 = q, q6 = −1, q7 = −q,

q8 = 1,

q9

= q .

Матрица

W разлагается всего на две матрицы:

W =W W

и имеет вид

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

 

1 1 1 1

 

1 1 1

1

 

 

 

 

 

 

 

q

q2

q3

 

 

 

q 1

q

 

 

 

 

 

 

W =

1

 

=

1

 

Обе матрицы W и W

содержат 2n+1 = 23 = 8 не-

1

q2

q4

q6

1

1 1

1

.

 

 

 

1

2

 

 

 

 

 

 

3

 

6

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

q

q

q

 

 

 

q 1 q

 

 

 

 

 

 

 

1

 

 

 

 

 

1

 

 

 

 

 

 

нулевых элементов. Найдем их по формулам (3.15.1). m = 1, i = 0,1,...,2nm 1 = 0,1,

μ = 1,2,...,2m1 = 1.

100

 

 

 

 

 

 

 

i = 0, μ = 1. c

(1) = 1, c(1)

 

= c(1)

= 1,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,1

 

 

1+1,1

2,1

 

 

 

 

 

 

c

(1)

= c

(1)

= 1, c

(1)

 

 

 

= c

(1)

 

= −1,

 

 

 

(μ−1)2nm

= q

0

= 1,

 

 

 

 

 

 

 

 

2,3

 

 

 

кактакq

 

 

 

 

1,2+1

1,3

 

 

 

1+1,2+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i = 0, μ = 1. c2(1+)1,1+1

= c3,2(1)

= 1,

c2(1+)1+1,1+1

= c4,2(1) = 1,

 

 

 

 

 

 

 

 

 

c2(1+)1,2+1+1

 

= c3(1,4)

= 1,

c2(1+)1+1,2+1+1 = c4(1,)4

= −1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0

 

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0

 

 

1

 

0

 

 

 

 

 

 

 

 

 

Таким образом,

W

=

 

 

 

 

 

 

, так как все остальные c

(1)

= 0 .

 

 

 

 

 

 

 

 

 

 

i, j

 

 

 

 

 

 

 

 

 

 

1

 

0

 

1

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

m = 2, i

= 0,1,...,2nm 1 = 0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

μ = 1,2,...,2m1 =1,2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i = 0, μ =1. c(2)

=1, c(2)

 

= c

(2) =1

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,1

 

 

 

 

2+1,1

 

 

 

3,1

 

 

 

 

 

 

 

 

 

 

 

c(2)

= c

(2)

=1, c(2)

 

 

= c(2)

 

= −1,

 

 

 

 

 

 

 

 

 

 

1,2+1

1,3

 

 

 

 

2+1,2+1

 

 

3,3

 

 

 

 

 

 

 

 

 

 

 

 

 

i = 0, μ = 2. q(μ−1)2nm = q, c2,(22) = 1, c2(2+)2,2 = c4,(22) = 1,

 

 

 

 

 

 

c2,2(2)+2

= c2,4(2)

 

= q,

 

c2(2+)2,2+2

= c4,4(2) = −q .

 

 

 

 

 

 

 

 

 

 

1

0

1

 

 

 

0

1

0

Итак, W

=

 

2

 

 

1

0

1

 

 

 

 

 

 

0

1

0

 

 

 

0 q . 0q

 

 

 

1

 

0

1

0

1

0 1 0

1 1

1

1

 

 

 

 

 

0

 

1

0

q

 

1

0 1 0

 

 

q

1

q

 

 

 

 

 

 

 

 

 

1

 

 

Тогда W =W2 W1 =

 

 

 

 

1 0

 

 

 

 

 

=

1 1

1

.

 

 

 

 

 

1

 

0

 

0

1 0 1

 

1

 

 

 

 

 

 

0

 

1

0

 

 

 

0

 

 

 

 

q

1

q

 

 

Найдем δ(1),

 

 

 

q

1 0 1

1

 

 

r = 0,1,...,2n 1 = 0,1,2,3 ненулевые компоненты вектора–столбца W U :

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

0

1 0

u

 

u

 

+u

 

 

 

 

 

 

 

 

 

 

 

1

0

1 0

 

0

 

 

0

 

2

 

 

 

 

 

 

 

 

 

 

 

u1

 

u0 u2

 

Легко

 

видеть,

 

что

если

положить

W1 U =

0

1

0

1

 

u

 

= u

+u

 

.

 

 

 

 

 

 

 

 

 

2

 

 

1

 

3

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 1

u3

 

u1

u3

 

 

 

 

 

 

 

 

i = 0,1,...,2n1 1 = 0,1, то компоненты

W U вычисляются по формулам (3.15.2). Аналогично,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

1

0

1

0

 

 

δ(1)

 

 

δ(1)

+ δ(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

2

 

 

W

2

W

U =

 

0

1

0

q

 

 

 

δ1(1)

=

 

δ1(1)

+ qδ3(1)

, то есть вычисление ведется строго по

 

1

 

 

1

0

1 0

 

 

 

(1)

 

 

(1)

(1)

 

 

 

 

 

 

 

 

 

 

δ2

 

 

δ0

− δ2

 

 

 

 

 

 

 

0

1

0

 

 

 

 

(1)

 

 

(1)

(1)

 

 

 

 

 

 

q

 

 

δ3

 

 

δ1

qδ3

 

 

формулам (3.15.3).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В результате этих вычислений получим вектор V (1) , отличающийся от искомого

множителем

 

4

. Его компоненты записываются следующим образом:

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

101

u0

u1

u2

u3

как только

v

(1) = δ

(1) + δ(1) = (u

0

+ u

2

)+ (u

+ u

3

),

 

 

0

 

0

2

 

1

 

 

 

 

),

v(1)

= δ(1)

+ qδ(1) = (u

0

u

2

)+ q(u

1

u

3

1

 

1

 

3

 

)(u

 

 

 

 

v

(1) = δ

(1) − δ(1) = (u

0

+ u

2

+ u

3

),

 

 

2

 

0

2

 

1

 

 

 

 

).

v(1)

= δ(1)

qδ(1) = (u

0

u

2

)q(u

u

3

3

 

1

 

3

 

 

1

 

 

 

 

δ(1)

q

q

N > 2, будет достигнута

v0(1)

v1(1)

v2(1)

v3(1)

экономия в

Граф соответствующих вычислений компонент векторов δ(1) =W1 U и V (1) = W2 δ(1) изображен слева.

Сплошные стрелки на графе означают сложение, пунктирные – вычитание. Значок q на стрелке означает, что сла-

гаемое (вычитаемое), соответствующее концу стрелки, умножается предварительно на множитель q . Аналогично

можно изобразить вариант реализации ДПФ для 2N =8 и так далее. При этом числе операций, например, при 2N =8

2N

=

8

=

8

=1.33 , то есть экономия составит примерно 30%.

2log2 2N

2log2 8

6

 

 

 

3.17. Лабораторная работа № 7. Дискретное преобразование Фурье

Mathcad содержит функции для выполнения быстрого дискретного преобразования Фурье (БПФ) и его обращения. Таких функций восемь (Fourier Transform): CFFT(A), cfft(A), FFT(v), fft(v), ICFFT(A), icfft(A), IFFT(v), ifft(v). Все функции берут в качестве аргументов

ивозвращают векторы и матрицы. Чаще всего используются две группы подпрограмм. I. Функции fft и ifft, если выполнены следующие два условия:

а) аргументы вещественны и б) вектор данных имеет 2n элементов. В этом случае вторая половина преобразования Фурье является комплексно сопряженной с первой. Mathcad отбрасывает вторую половину вектора–результата. Это сохраняет время и память при вычислениях.

Второе условие позволяет использовать высоко эффективный алгоритм быстрого преобразования Фурье. Различные формулировки определения преобразования Фурье используют различные нормировочные коэффициенты и соглашения о знаке перед мнимой единицей в показателе экспоненты прямого и обратного преобразований. Функции fft, ifft,

cfft и icfft используют

1

в качестве нормировочного коэффициента и положительный

 

 

 

2N

 

показатель степени в прямом преобразовании. Функции FFT, IFFT, CFFT и ICFFT упот-

ребляют величину

1

 

в качестве нормировочного коэффициента и отрицательный показа-

2N

 

 

 

тель степени в прямом преобразовании. Функции fft, ifft, cfft и icfft применяются только попарно.

II. Функции cfft и icfft не используют симметрию в преобразовании и поэтому применяются для комплексных данных. Вектор данных в этом случае может иметь размерность,

отличную от 2n . Пара преобразований cfft, icfft работает значительно быстрее, когда число строк и столбцов массива данных может быть представлено в виде произведения большого числа меньших сомножителей (см. формулу (3.14.3)). С другой стороны, вектор, длина которого – большое простое число, заметно замедлит вычисление преобразования Фурье. Когда в качестве аргумента cfft используется матрица, результат есть двумерное преобразование Фурье исходной таблицы.

102

Рассмотрим подробнее преобразование Фурье в вещественной области. Функция

fft(v) возвращает дискретное преобразование Фурье 2n -мерного вещественнозначного вектора. Аргумент можно интерпретировать как результат измерений через равные промежутки

времени некоторого сигнала. Результат работы fft(v) – комплексный вектор длиной 2n1 +1.

Если вектор v имеет размерность, отличную от 2n , Mathcad выдает сообщение об ошибке: «неверный размер вектора».

Элементы вектора, возвращаемого fft, вычисляются по формуле

vn

=

1

2 N 1

 

n

 

n = 0,1,..., N +1, 2N = 2

n

.

2N

uk exp i

N

πk ,

 

 

 

k =0

 

 

 

 

 

Это первая формула в системе (3.14.1), отличающаяся от первоначальной только знаком мнимой единицы в показателе экспоненты. Элементы вектора, возвращенные функцией fft, соответствуют различным частотам. Чтобы восстановить фактическую частоту, необходимо знать частоту измерения исходного сигнала. Если частота измерения исходного сигнала ω, то частота, соответствующая vn равна:

ωn = 2nN ω.

Функция ifft(v) возвращает обратное дискретное преобразование Фурье; результат ее работы – вещественнозначный. Вектор v должен иметь 2n1 +1 элемент, размерность резуль-

тата 2n . Если размерности не совпадают со стандартом, выдается аналогичное сообщение об ошибке. Чтобы вычислить результат, Mathcad сначала создает новый вектор w , комплексно сопряженный с v, и присоединяет его к вектору v. Затем вычисляет вектор u по формуле

uk

=

1

2 N 1

~

 

π

 

~

= v + w.

2N

vn exp i

N

nk ,

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

 

 

n=0

 

 

 

 

 

Функции fft и ifft – точные обращения. Для всех вещественнозначных v справедливо ifft(fft(v))=v.

Данные выше определения преобразования Фурье не являются единственно возможными. Результат действия функций FFT, IFFT, CFFT и ICFFT отличается следующим.

1. Вместо коэффициента

1

перед обеими формулами в прямом преобразовании

 

2N

 

стоит коэффициент 21N и коэффициент единица в обратном преобразовании.

2. Знак минус появляется в показателе экспоненты прямого преобразования и исчезает в формуле обратного.

Таким образом, в этих функциях реализуется следующая система формул:

 

 

1

2 N 1

 

 

π

 

 

 

 

vn =

 

 

uk exp i

 

nk ,

n = 0,1,..., N = 1,

 

 

2N

N

 

 

 

 

n=0

 

 

 

 

 

 

 

 

 

2 N 1 ~

 

π

 

 

 

 

(3.17.1)

 

 

 

 

 

 

uk

= vn

exp i

 

nk ,

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

 

 

 

 

 

 

n=0

 

N

 

 

 

 

 

 

 

 

 

 

 

 

Приведенные формулы практически полностью аналогичны системе (3.14.1).

При практических вычислениях по формулам (3.17.1) следует помнить, что первый элемент векторов u и w должен иметь нулевой индекс, а не первый из-за разных значений комплексной экспоненты. В программах fft, ifft, FFT и IFFT это учтено, если элементы v0 и w0 не определены, Mathcad автоматически устанавливает их равными нулю. Неучет

этого обстоятельства может привести к искажению результата.

103

Вычислим дискретное преобразование Фурье непосредственно по формулам (3.17.1) и с помощью функций FFT и IFFT:

ORIGIN := 0 TOL :=10-9

 

1.000

 

3.897

 

 

1.803

 

 

 

 

 

 

 

 

2.381

 

 

3.085

 

 

1.347

 

 

 

 

 

 

7.422

 

 

 

4.778

 

 

pi := 3.14159 N := 8 ind := 2 * N 1 u := stack(X1, X 2)

X1 :=

6.434

 

X 2 :=

0.419

 

 

 

 

 

 

 

7.347

 

 

0.256

 

 

 

 

 

 

 

 

7.027

 

 

0.176

 

 

 

5.652

 

 

0.142

 

 

 

 

 

 

 

n := 0...ind

vn

k := 0...ind

xk

 

1

 

 

 

1.803

 

 

 

 

 

 

3.085

 

 

 

4.778

 

 

 

 

 

 

6.434

 

 

 

 

 

 

7.347

 

 

 

 

 

 

7.027

 

 

 

5.652

 

v

u =

3.897

 

 

 

 

 

2.381

 

 

 

 

 

 

1.347

 

 

7.422

 

 

 

 

 

 

0.419

 

 

 

 

 

 

0.256

 

 

 

0.176

 

 

 

0.142

 

 

 

 

 

 

1

 

 

 

ind

 

 

 

 

 

 

 

 

pi

 

 

 

 

 

 

=

 

 

 

 

 

u

k

exp

i

 

n k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ind +

1

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

k =0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ind

 

 

 

 

 

 

 

 

 

 

 

pi

 

 

 

 

 

 

 

 

 

=

v

n

exp

i

 

 

 

n k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

n=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.323

 

 

 

 

 

 

 

15.426 105 i

 

 

 

 

0.9911.13i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.803 4.544 105 i

 

0.556 +0.041i

 

 

 

3.085 3.663 105 i

 

 

0.4610.182i

 

 

 

 

 

4.778 2.781 105 i

 

 

 

 

 

 

 

 

 

7.181 10

3

 

 

 

 

 

 

 

 

 

6.434 1.899 10

5

i

 

 

 

+0.388i

 

 

 

 

 

 

0.372 0.175i

 

 

 

7.347 1.017 105 i

 

 

0.312 0.305i

 

 

 

 

 

7.027 1.356 106 i

 

 

 

 

 

 

 

 

 

0.177 +0.381i

 

 

 

 

 

5.652 +7.462 106 i

=

0.4 1.24 105 i

 

x =

 

 

 

 

 

 

 

 

 

 

 

3.897 +1.628 105 i

 

0.177 0.381i

 

 

 

 

 

2.381+ 2.51 105 i

 

 

0.312 +0.305i

 

 

 

 

 

1.347 +3.391 105 i

 

 

 

 

 

 

 

 

 

0.372 +0.175i

 

 

 

7.422 + 4.273 10

5

 

 

 

 

 

 

 

 

i

 

7.206 103 0.388i

 

 

0.419 +5.155 105 i

 

0.461+0.182i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.256 +6.037 105 i

 

0.556 0.041i

 

 

 

0.176 +6.918 105 i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

0.991+1.13i

 

 

 

 

 

0.142 +7.8 10

i

 

 

 

 

 

 

 

 

 

 

При наборе в пакете Mathcad формул для vn и xk следует помнить, что для ввода мнимого числа нужно вслед за его модулем ввести символ мнимой единицы i или j , например, 1i или 2.5 j . Нельзя использовать i или j сами по себе для обозначения мнимой единицы. Нужно всегда набирать 1i или 1 j , в противном случае Mathcad истолкует i или j как переменные. Когда курсор покидает выражение, содержащее 1i , Mathcad скрывает избыточную единицу.

104

Вычислим ДПФ теперь с помощью встроенных функций: v1:= FFT (u) x1:= IFFT (v1)

Значения векторов u, v1 и x1 приведены на следующей странице. Видно, что вторая половина вектора v является комплексно сопряженной с первой. Программа FFT учитывает это обстоятельство; у вектора v1 вторая половина уже отброшена. Ненулевая мнимая часть компонент вектора x объясняется лишь недостаточной точностью вычислений.

Программа, реализующая вычисление очередного m -го вектор–столбца Wm Wm1 ... W1 U по формулам (3.15.4) и ее блок-схема приводятся ниже. Комплексная экспонента в программе рассчитывается по формуле Эйлера eix = sin x +i cos x . В приведенной подпрограмме FourierTransform параметр v определяет исходный вектор данных длиной 2n элементов, параметр kind задает либо прямое преобразование (kind=-1), либо обратное

(kind=1).

 

1

 

 

 

 

 

1

 

 

1.803

 

 

 

 

 

1.803

 

 

 

 

 

 

 

 

 

3.085

 

 

 

 

 

3.085

 

 

4.778

 

 

 

 

 

4.778

 

 

 

 

3.323

 

 

 

 

6.434

 

 

6.434

 

 

0.9911.13i

 

 

 

 

 

 

 

 

 

 

7.347

 

 

0.556 +0.041i

 

 

7.347

 

 

 

 

 

 

7.027

 

 

0.4610.182i

 

 

7.027

 

 

5.652

 

 

 

 

5.652

 

v1 =

7.188 103 +0.388i

 

u =

 

x1 =

 

 

3.897

 

 

 

 

 

3.897

 

 

2.381

 

0.372 0.175i

 

 

2.381

 

 

 

 

 

 

0.312 0.305i

 

 

1.347

 

 

1.347

 

0.177 +0.381i

 

 

 

 

7.422

 

 

7.422

 

 

 

 

 

 

 

0.4

 

 

 

 

0.419

 

 

0.419

 

 

 

 

 

 

 

 

0.256

 

 

 

 

 

0.256

 

 

 

 

 

 

 

 

 

0.176

 

 

 

 

 

0.176

 

 

0.142

 

 

 

 

 

0.142

 

 

 

 

 

 

 

 

105

 

 

m =1

 

 

 

 

 

 

i = 0

 

 

 

 

 

 

μ = 0

 

 

 

 

Вычисление

 

δ(m)

иδ

(m)

 

m+1

 

2

m

i

2

m

i+2

 

 

 

 

 

μ = μ +1

 

 

нет

 

μ ≥ 2m1

 

да

 

 

 

 

 

 

 

 

i = i +1

 

 

 

нет

 

i 2nm

 

 

да

 

 

 

 

 

 

 

 

 

m = m +1

 

 

нет

 

m > n

 

 

 

 

 

 

 

 

 

 

 

да

 

 

 

 

вектор δ

 

 

106

Вычислим прямое и обратное преобразование Фурье для начального вектора u с

помощью данной подпрограммы.

 

 

 

 

 

 

 

 

v5 := FourierTransform(u, 1) v6 := FourierTransform(v5,1)

 

1

 

 

 

3.323

 

 

 

1

 

 

1.803

 

 

 

0.9911.13i

 

 

 

1.803

 

 

 

 

 

 

 

 

 

 

3.085

 

 

 

0.556 +0.041i

 

 

 

3.085

 

 

4.778

 

 

 

0.4610.182i

 

 

 

4.778

 

 

 

 

 

 

 

 

 

 

6.434

 

 

 

7.181 10

3

 

 

 

 

6.434

 

 

 

 

 

 

 

+0.388i

 

 

 

 

7.347

 

 

 

0.372 0.175i

 

 

 

7.347

 

 

 

 

 

 

 

 

 

 

7.027

 

 

 

0.312 0.305i

 

 

 

7.027

 

 

5.652

 

v5

 

0.177 +0.381i

 

v6

 

5.652

 

u =

3.897

 

=

0.4

 

=

3.897

 

 

 

 

 

 

 

 

 

 

2.381

 

 

0.177 0.381i

 

 

 

2.381

 

 

 

 

 

0.312 +0.305i

 

 

 

1.347

 

 

1.347

 

 

 

 

 

 

 

7.422

 

 

 

0.372 +0.175i

 

 

 

7.422

 

 

 

 

 

 

 

 

 

 

0.419

 

 

 

7.206 10

3

0.388i

 

 

 

0.419

 

 

 

 

 

 

 

 

 

 

 

0.256

 

 

 

0.461+0.182i

 

 

 

0.256

 

 

0.176

 

 

 

0.556 0.041i

 

 

 

0.176

 

 

0.142

 

 

 

0.991+1.13i

 

 

 

0.142

 

 

 

 

 

 

 

 

 

107

Задание № 1. При помощи любой программы, разобранной в этой лабораторной работе, вычислить прямое и обратное преобразование Фурье для заданного начального вектора.

 

№ варианта

 

Исходный

вектор u .

 

 

1

 

7.38; 6.76; 5.22; 3.47; 2.08; 1.16; 0.64; 0.36;

0.23; 0.16; 0.13; 0.13; 0.16; 0.25; 0.37; 0.71.

 

 

 

 

 

2

 

-1.24; -1.17; -1.08; -0.96; -0.84; -0.79;

-0.80; -0.90; -1.10; -1.21; -1.02; -1.28;

 

 

 

-1.32; -1.34;

-1.36; -1.37.

 

 

 

 

 

3

 

2.312; 2.251; 2.418; 2.752; 2.459; 2.700; 3.022;

3.079; 2.420; 2.669; 3.241; 3.615; 3.591; 4.103;

 

 

 

4.481;

4.492.

 

 

 

 

 

 

 

4

 

-3.00; -3.58; -4.12; -5.56; -4.86; -4.99;

-4.94; -4.73; -4.36; -3.86; -3.30; -2.70;

 

 

 

-2.13; -1.64; -1.26; -1.05.

 

 

 

 

5

 

1.03; 1.05; 90.60; 520.40; 1714.70; 2915.00; 2439.20; 1020.60; 230.70; 32.17; 3.29; 0.30; 0.03; 0.004;

 

 

 

0.001; 0.0003.

 

 

 

 

 

 

6

 

2980.10; 2089.30; 742.40; 146.60; 18.60; 1.80; 0.16; 0.02; 0.003; 0.001; 0.001; 0.001; 0.002; 0.003;

 

 

 

0.018; 0.90.

 

 

 

 

 

 

7

 

1.08; 1.34; 1.75; 2.18; 2.53; 2.71; 2.65; 2.37; 1.97; 1.54; 1.16; 0.86; 0.64; 0.50; 0.42; 0.37.

 

 

 

 

8

 

2.71; 2.60; 2.28; 1.86; 1.44; 1.07; 0.80; 0.46; 0.42; 0.40; 0.37; 0.37; 0.40; 0.48;

 

 

 

0.60; 0.80.

 

 

 

 

 

 

9

 

-1.32; -1.28; -1.26; -1.24; 1.25; -1.25; -1.29; -1.21; -1.26; -1.27; -1.29; -1.28;

 

 

 

-1.33; -1.34; -1.37; -1.39.

 

 

 

 

10

 

-4.09; -4.20; -4.50; -4.71; -4.93; -5.07; -4.92; -4.85; -4.60; -4.44; -4.12; -3.85;

 

 

 

-3.50; -3.01; -3.07; -3.10.

 

 

 

 

11

 

1.02; 2.44; 5.42; 10.41; 16.37; 19.92; 18.64; 13.43; 7.75; 3.61; 1.69; 0.64; 0.27;

 

 

 

0.10; 0.53; 1.04.

 

 

 

 

 

 

12

 

20.05; 17.50; 11.91; 6.43; 2.97; 1.25; 0.54; 0.29; 0.10; 0.06; 0.05; 0.10; 0.51;

 

 

 

1.12; 1.26; 2.92.

 

 

 

 

 

 

13

 

-1.11; -0.81; -0.33; 0.32; 0.75; 0.84; 0.71; 0.59; 0.04; -0.67; -0.92; -1.13; -1.27;

 

 

 

-1.32; -1.35; -1.37.

 

 

 

 

 

14

 

30.528; 34.221; 34.233; 34.114; 33.595; 34.058; 34.498; 35.822; 35.678; 37.442;

 

 

 

35.698; 36.742; 37.244; 38.884; 37.167; 38.696.

 

 

 

 

15

 

-2.07; -2.82; -3.71; -4.35; -4.76; -4.99; -4.90; -4.54; -4.10; -3.33; -2.47; -1.50;

 

 

 

-0.62; -0.04; -0.68; 0.92.

 

 

 

 

16

 

1.10; 3.28; 9.51; 22.80; 41.44; 53.96; 49.42; 31.97; 15.22; 5.70; 1.80; 0.55; 0.17;

 

 

 

0.06; 0.03; 0.02.

 

 

 

 

 

 

17

 

115.18; 115.28; 115.18; 116.01; 117.20; 119.04; 121.43; 119.35; 120.84; 121.58;

 

 

 

124.33; 125.96; 124.72; 127.26; 125.29; 126.04.

 

 

 

 

18

 

-0.78; -1.22; -1.34; -1.39; -1.42; -1.43; -1.42; -1.41; -1.37; -1.30; -1.10; -0.10;

 

 

 

1.12; 1.25; 1.33; 1.36.

 

 

 

 

19

 

54.50; 45.71; 27.27; 12.13; 4.32; 1.35; 0.44; 0.13; 0.05; 0.03; 0.02; 0.13; 0.41;

 

 

 

1.37; 4.38; 12.10.

 

 

 

 

 

 

20

 

2.00; -0.06; -1.90; -3.42; -4.91; -4.87; 4.06; -2.77; -1.10; 0.95; 3.12; 5.34; 6.79;

 

 

 

8.10; 8.91; 7.47.

 

 

 

 

 

 

21

 

-0.78; 0.18; 0.89; 1.13; 1.21; 1.24; 1.23; 1.18; 1.04; 0.63; -0.38; -1.01; -1.22;

 

 

 

-1.30; -1.35; -1.27.

 

 

 

 

 

22

 

1.10; 1.32; 1.40; 1.43; 1.45; 1.46; 1.44; 1.42; 1.37; 1.25; 0.76; -0.80; -1.22;

 

 

 

-1.33; -1.36; -1.29.

 

 

 

 

 

23

 

1.03; 4.36; 16.71; 49.87; 105.04; 146.33; 130.97; 75.98; 30.00; 8.75; 2.11; 0.47;

 

 

 

0.11; 0.03; 0.01; 0.24.

 

 

 

 

24

 

148.41; 118.86; 62.64; 22.52; 6.21; 1.45; 0.33; 0.08; 0.02; 0.01; 0.08; 0.32; 1.45;

 

 

 

6.27; 22.64; 62.25.

 

 

 

 

 

25

 

0.01; 0.97; 1.23; 1.32; 1.36; 1.28; 1.13; 0.64; -0.64; -1.13; -1.28; -1.34; -1.37;

 

 

 

-1.23; -0.91; -0.25.

 

 

 

 

 

26

 

1.03; 7.82; 51.55; 238.10; 675.94; 1075.48; 920.17; 429.33; 110.81; 20.86; 2.83;

 

 

 

0.35; 0.04; 0.01; -0.49; -3.68.

 

 

 

 

27

 

-0.01; -1.47; -2.82; -3.93; -4.65; -4.98; -4.87; -4.33; -3.47; -2.16; -0.74; 0.74;

 

 

 

2.17; 3.14; 4.33; 4.87.

 

 

 

 

28

 

1.17; 5.83; 29.38; 108.91; 266.47; 396.75; 347.18; 180.50; 59.21; 13.54; 2.44;

 

 

 

0.49; 0.07; 0.01; 0.03; 0.11.

 

 

 

 

29

 

1.05; -0.77; -2.31; -3.66; -4.64; -4.95; -4.80; -4.11; -3.08; -1.67; 0.12; 1.94; 3.66;

 

 

 

5.17; 6.29; 6.98.

 

 

 

 

 

 

30

 

0.78; 1.22; 1.34; 1.39; 1.42; 1.37; 1.30; 1.11; 0.18; -1.12; -1.27; -1.33; -1.36;

 

 

 

-1.28; 1.17; -0.65.

 

 

 

 

 

108

 

 

 

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