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

Численные методы. В 2 частях. Ч.1. Учебное пособие

.pdf
Скачиваний:
5
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Рис. 12. Дискретный сигнал, N = 10
Таблица 2
DFT-преобразование сигнала z(n) = cos(2n/10)
ˆ
m Re(z)
0 1 -3.33067e-16 0 3.33067e-16 0
1 0.809017 5 -3.33067e-16 5 -6.66134e-17
2 0.309017 -2.8901e-16 -1.30679e-16 3.17181e-16 0
3 -0.309017 -1.30147e-16 -5.18035e-16 5.34133e-16 0
4 -0.809017 -4.44089e-16 -4.996e-16 6.68443e-16 0
5 -1 -1.11022e-16 0 1.11022e-16 0
6 -0.809017 4.44089e-16 1.11022e-16 4.57757e-16 0
7 -0.309017 3.44521e-16 7.51678e-17 3.52626e-16 0
8 0.309017 8.51792e-16 -3.70143e-16 9.28739e-16 0
9 0.809017 5 2.60902e-15 5 5.21805e-16
ˆ
Re(
) Im(
z
ˆ
)
z
Амплитуда,
z||
Фаза, φ
Первый столбец соответствует номеру частоты, которая отвечает каждому из N отсчётов сигнала. Второй столбец – вещественный сиг­нал
. Два следующих – вещественные и мнимые компоненты дискрет-
z
ˆ
ного преобразования Фурье и фазы
ˆ
z , см. формулы (73) и (74).
Наблюдаются два пика амплитуды
z . Два последних столбца – амплитуды
ˆ
z
5
: частоты при m = 1 и 9. Это
означает, что сигнал описывается двумя низкочастотными векторами
1
2/10
in
10
и
9
ne
F
()
1
только вещественные компоненты. Значения
жены к
()nF (см. раздел «Интерпретация частотного базиса Фурье»),
1
1
29/10
in
ne
F
()
10
. Заметим, что вектор z содержит
1
29/
in N
ne
()
9
F сопря-
10
51
поэтому в сумме IDFT (81) будут обнулены мнимые компоненты Сделаем проверку:
1
N
zn zme N e e
 
11

() ( ) 10 5 5
11
22
N
0
n
2/10 2/10 2/10
in in in

ee ee n
2/ 2/10 29/10
imn N in i n

ˆ
22/10
in in





10
cos(2 / 10).
()nF .
1
ˆ
Замечание. Амплитуды
z и
значение 10. При IDFT это значение нормируется величиной
ˆ
z равны 5, что в сумме даёт
(1)
(9)
1/ N
, по-
этому обратное преобразование Фурье всегда позволит восстановить исходный сигнал, если он точно раскладывается на гармоники.
Замечание. Ряды Фурье не всегда имеют равномерную сходи­мость. Это означает, что существуют сигналы, которые не могут быть точно представлены в виде разложения на гармоники (например, ку­сочно-постоянные функции).
Вывод. В примере удалось
сократить объём данных в 5 раз. Это означает, что для хранения 10 отсчётов сигнала достаточно хранить всего два значения
ˆ
. Так реализуется решение задачи о сжатии данных.
z
Пример. Рассмотрим 10 отсчётов сигнала вида () cos(2 /10)zn n 
1
, на рис. 13 он показан точками.
Рис. 13. Дискретный сигнал, N = 10
Выполним DFT этого сигнала по формуле (78). Результаты приве-
дены в следующей табл. 3.
ˆ
Наблюдается пик амплитуды
сигнал содержит постоянную составляющую
10z
при
. Это означает, что
0m
F . Вектор
()10n
0
1
ˆ
z
(0)
52
F показывает, на какую величину смещён каждый отсчёт сигнала от-
0
носительно оси абсцисс. В примере сигнал
ˆ
щён на 1, поэтому
zF .
(0) ( ) 1n
0
() cos(2 /10) 1zn n  сме-
Таблица 3
DFT-преобразование сигнала z(n) = cos(2n/10) + 1
ˆ
m
Re(
) Re(
z
0 2 10 0 10 0
1 1.80902 5 2.22045e-16 5 4.44089e-17
2 1.30902 -7.02146e-16 -4.38759e-16 8.27961e-16 0
3 0.690983 -9.02456e-16 -5.34233e-16 1.04873e-15 0
4 0.190983 -8.88178e-16 -1.11022e-15 1.42178e-15 0
5 0 0 0 0 0
6 0.190983 -4.44089e-16 -2.22045e-16 4.96507e-16 0
7 0.690983 7.02146e-16 -4.4942e-16 8.33659e-16 0
8 1.30902 1.34655e-15 -7.98035e-16 1.56526e-15 0
9 1.80902 5 2.44249e-15 5 4.88498e-16
ˆ
) Im(
z
ˆ
)
z
Амплитуда,
z
Фаза, φ
Пример. Рассмотрим 10 отсчётов сигнала вида () cos(2 /10zn n
, на рис. 14 он показан точками.
)
Рис. 14. Дискретный сигнал, N = 10
Выполним DFT этого сигнала по формуле (78). Результаты приве-
дены в следующей табл. 4.
Наблюдаются два амплитудных пика частот: при m = 1 и 9. При этом
в столбце фазового спектра можно видеть два отличных от 0 значения,
53
которые в машинной арифметике соответствуют числу π. Фаза не вли­яет на амплитуду сигнала.
Таблица 4
DFT-преобразование сигнала z(n) = cos(2n/10 + )
ˆ
z
m
0 -1 5.55112e-16 0 5.55112e-16 0
1 -0.809017 -5 5.55112e-16 5 3.14159
2 -0.309017 2.11177e-16 2.62905e-16 3.37216e-16 0
3 0.309017 2.9668e-16 3.23746e-16 4.39125e-16 0
4 0.809017 4.44089e-16 7.21645e-16 8.47341e-16 0
5 1 1.11022e-16 0 1.11022e-16 0
6 0.809017 -4.44089e-16 1.11022e-16 4.57757e-16 0
7 0.309017 -2.11177e-16 1.25673e-16 2.45743e-16 0
8 -0.309017 -6.85259e-16 1.75854e-16 7.07463e-16 0
9 -0.809017 -5 -3.27516e-15 5 3.14159
Re(
) Re(
z
ˆ
) Im(
z
ˆ
)
z
Амплитуда,
Фаза, φ
Вывод. Амплитудный спектр показывает амплитуду гармоник, ко­торые присутствуют в исходном сигнале. Фазовый спектр показывает начальный угол, на который сдвинута соответствующая гармоника.
Пример. Для
числить
ˆ
z
z
n



2cos 2 sin 2

512 512

.
2
,
lz

512
вы-
78
nn
Решение. Заметим, что сигнал состоит из двух вещественных гар­моник. Значит, компоненты вектора и 8, а также сопряжённых частотах
ˆ
отличны от 0 на частотах
z
и 504 относительно сере-
505m
7m
дины спектра. Исходный вектор сигнала раскладывается по базису Фурье
1
N
zn zme
1
() ( )
N
0
m
ˆ
2/
imn N
,
где N = 512 – количество отсчётов.
54
Имеем
zn z e z e z e
() (7) (505) (8)
1

512
ˆˆˆ
ze ze ze
 
2 504 /512 2 7 /512 2 7 /512
(504) (7) (505)
Применим формулу Эйлера
2 7 /512 2 505 /512 2 8 /512
in i n in

ˆˆ ˆ
in in in

ˆˆ
(8) (504)
ze z e

1
512
2 8 /512 2 8 /512
in in

i
cos sin
ei
 
.
и запишем следую-
щее равенство:
78
2cos 2 sin 2



512 512

()
zn
177

512 512 512

ˆ
(505) cos 2 sin 2
zi
 
  
sin 2 (504) cos 2 sin 2
iz i
81 8 8
512 512 512 512
nn
nnn

nn

177
=
512 512 512

ˆ

ˆ
(7) cos 2 sin 2
zi
 
nn
 
18
512 512
ˆ
(8) cos 2
z
 

откуда после группирования подобных слагаемых находим
ˆ
(505) 512z
ˆ
,
(8) 256zi
и
ˆ
(504) 256zi
.
+
n

,
ˆ
(7) 512z
,
БЫСТРОЕ ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ
Дискретное преобразование Фурье реализуется как матрично-век­торное произведение
ˆ
где столбцы матрицы
zWz, (88)
N
W определяются базисными векторами
N
Фурье (79).
Замечание. При программной реализации матрицу
N
нят, а используют непосредственно формулу (78).
55
Матрично-векторное произведение при обработке вектора z
j
2
длины N отсчётов требует
умножений комплексных чисел. Приме-
N
нение быстрого дискретного преобразования Фурье (FFT – Fast Fourier Transform) позволяет значительно сократить число действий.
Идея. Предположим, что число отсчётов является чётным N = 2M.
2
():
Рассмотрим два вектора
lu, v
M
Найдём DFT
() (2), () (2 1), 0, 1kkkkkMuz vz
2
ˆˆ
lu, v
()
в M = N / 2 точках отсчёта
N
ˆˆ
uWuvWv, (90)
,
MM
. (89)
тогда
2/
im N
ˆˆ ˆ
mme mmM
 zu v
Для
() () (), 0, 1
в силу условия периодичности сигнала
,1mMN
ˆˆ ˆ ˆ
mlM le llM
    zz u v
() ( ) () (), 0, 1
Замечание. Хранить векторы должны производиться при использовании вектора

. (91)
2/
il N

и v не нужно. Все вычисления
u
.
z
. (92)
Замечание. Описанный алгоритм FFT сокращает число действий в 2 раза.
Замечание. Рекурсивно алгоритм FFT можно повторить для век-
ˆ
ˆ
u
торов
и v при вычислении их DFT
u
и
v
.
Замечание. В работе [10] есть примеры алгоритмов, когда число отсчётов N является степенью двойки или составным числом. Алго­ритмы FFT неприменимы, если N – простое число.
Обратное дискретное преобразование Фурье (IDFT) также можно реализовать через алгоритм FFT:
z
11
()
ˆˆ
() ( )jNj
 zz, (93)
NN
ˆ
где
вычисляется с помощью алгоритма FFT.
z
56
Пример. Рассмотрим
(1,1,1, ,1, 1,1, )iiz
T
, вычислим
щью FFT. Сформируем два вектора по формуле (89): и и
ˆ
(1, , 1, )iiv
v
(0,4,0,0)
T
. Вычислим их DFT по формуле (78):
T
. По формуле (91) имеем набор:
20/8
i
ˆˆ ˆ
 zu v
(0) (0) (0) 4 0 4
ˆˆ ˆ
  zu v
(1) (1) (1) 2 2 2 2
ˆˆ ˆ
 zu v
(2) (2) (2) 0
ˆˆ ˆ
 zu v
(3) (3) (3) 0

e
21/8
i

ei
22/8
ie
23/8
i

e
,
.
ˆ
u
,
,
ˆ
z
(1,1,1,1)u
(4,0,0,0)
По формуле (92) дополняем набор значений:
20/8
ˆˆ ˆ
 zu v
(4) (0) (0) 4 0 4
ˆˆ ˆ
  zu v
(5) (1) (1) 2 2 2 2
ˆˆ ˆ
 zu v
(6) (2) (2) 0
ˆˆ ˆ
 zu v
(7) (3) (3) 0
ie
21/8
i

ei
22/8
i

e
23/8
ie
,
.
,
,
Замечание. Обратите внимание, что при программной реализа-
ˆ
ции
z и
итерации цикла
ˆ
z и
()l
ˆ
z можно вычислять вместе. Таким образом, на каждой
(0)
(4)
0, 1lM
ˆ
z . Графически такой алгоритм можно изобразить в виде
()lM
по набору N / 2 точек вычисляются значения
диаграммы бабочки (рис. 15).
с помо-
T
T
Рис. 15. Диаграмма FFT – бабочка
57
Алгоритмы FFT используются для исследования производительно-
R
R
R
R
сти CPU и GPU: оценивается количество бабочек, вычисленных за одну секунду машинного времени.
ПРЕОБРАЗОВАНИЯ, ИНВАРИАНТНЫЕ ОТНОСИТЕЛЬНО СДВИГА
22
() ():
Оператор сдвига
Пример. Рассмотрим в пространстве ℝ
Rl l
kN N
() ( )
zn zn k
k
определяется как
k
ே
вектор
. (94)
(1, 0,..., 0)e
1
T
С помощью оператора сдвига можно построить базисную систему
211
(0,1, ..., 0)Ree
T
,
312 21
Линейное преобразование
(0,0,1,...0)RRee e
22
() ():
Tl l
NN
T
и т. д.
инвариантно отно-
сительно сдвига, если
2
()
TR R Tzz
kk
lz
, (95)
N
.
т. е. операторы T и
Матрица такого преобразования
перестановочны (их матрицы коммутируют).
k
T
всегда циркулянтная.
Определение. Матрица линейного преобразования T в евклидо­вом базисе
Матрица
T
матрицы
e
называется циркулянтной, если
k
203
 
320
 
032

(2,3, 0)b
циркулянтна при
T
является порождающим, так как из него можно
 
. Первый столбец этой
1k
TT
,,mn m kn k
получить второй и третий столбец с помощью оператора сдвига как и
b .
2
Утверждение. Произведение циркулянтной матрицы на вектор
2
()
l z
реализуется как оператор свёртки
N
1
N
() ( )( ) ( )()
Tmzmnbn

zzb
b
n
0
58
,()
2
lzb
. (96)
N
1
.
b
T
Пример. Пусть
2
( )(0) (0 )() (0)(0) (1)(1) (2)(2) (0)(0)
    
zb
z nbn zb z b z b zb
n
0
(1, 1, 1)z
и N = 3, тогда (5,5,5)Tz . Или
(2 )(1) (1 )(2)zNb zNb  (0) (0) (2) (1)zb zb(1) ( 2) 5zb  .
По аналогии
()(1)5zb , ()(2)5zb .
Вывод. Линейное преобразование, инвариантное относительно сдвига, есть оператор свёртки.
Для вычисления свёртки можно использовать DFT
Пример. Пусть
ˆ
(5,0, 5 2, 6 , 0,5 2, 6 )
и
()
лучаем
zb

ˆˆ
() ()()()mmmzb z b
(1, 1, 1)z
ii b
˅
zb
(5,5,5)
ˆ
T
и
T
. По формуле (97) вычитаем
T
(2,3, 0)b
. Сравните с произведением
2
lzb
T
), (
. (97)
N
Tz
T
, по-
.
, тогда
ˆ
z
(3,0,0)
()
zb
Мультипликаторным оператором Фурье называется
()
m
где умножение векторов
˅
() ( )T
zmz
mz
ˆ
ˆ
выполняется покомпонентно.
2
),(
lz m
, (98)
N
Замечание. Мультипликаторный оператор Фурье используется для моделирования графического стабилизатора, который усиливает или ослабляет отдельные частоты сигнала.
Утверждение. Если в мультипликаторном операторе Фурье
ˆ
mb, то
ˆ
ˆˆ

zmzbzzb z
() ( ) ( ) = ()TT
()
mb

.
Вывод. Линейное преобразование, инвариантное относительно сдвига, есть мультипликаторный оператор Фурье.
Всякое линейное преобразование T, инвариантное относительно сдвига, в базисе Фурье имеет диагональную матрицу. На главной диа­гонали находятся собственные значения циркулянтной матрицы
ˆ
Собственные значения совпадают с элементами вектора
59
T
.
первый столбец циркулянтной матрицы
mb, где
T
b
.
–
Утверждение. Каждый базисный вектор Фурье (79) является собственным вектором линейного преобразования, инвариантного от­носительно сдвига.
Пример. Найдём собственные значения циркулянтной матрицы
203
 
320
T
 
032

члена
det( ) det 3 2 0 0
13
ii   . Сравните с ранее полученным вектором
. Необходимо найти корни характеристического много-
203


T
E
 
 

032


, откуда
1
30,52,6
5 ,

1, 2
22
ˆ
(5; 0,5 2;6 ; 0,5 2,6 )
ii b
T
.
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]