Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Численные методы. В 2 частях. Ч.1. Учебное пособие
.pdf
Рис. 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, 1kkkkkMuz 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, )iiz
T
, вычислим
щью FFT. Сформируем два вектора по формуле (89):
и
и
ˆ
(1, , 1, )iiv
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)Ree
T
,
312 21
Линейное преобразование
(0,0,1,...0)RRee e
22
() ():
Tl l
NN
T
и т. д.
инвариантно отно-
сительно сдвига, если
2
()
TR R Tzz
kk
lz
, (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
lzb
. (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)5zb , ()(2)5zb .
Вывод. Линейное преобразование, инвариантное относительно
сдвига, есть оператор свёртки.
Для вычисления свёртки можно использовать DFT
Пример. Пусть
ˆ
(5,0, 5 2, 6 , 0,5 2, 6 )
и
()
лучаем
zb
ˆˆ
() ()()()mmmzb z b
(1, 1, 1)z
ii b
˅
zb
(5,5,5)
ˆ
T
и
T
. По формуле (97) вычитаем
T
(2,3, 0)b
. Сравните с произведением
2
lzb
T
), (
. (97)
N
Tz
T
, по-
.
, тогда
ˆ
z
(3,0,0)
()
zb
Мультипликаторным оператором Фурье называется
()
m
где умножение векторов
˅
() ( )T
zmz
mz
ˆ
ˆ
выполняется покомпонентно.
2
),(
lz 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
