ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.12.2023
Просмотров: 236
Скачиваний: 7
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
40
Аналогично
0 2
0 0
sin[(
)
]
(
1)
2
exp[
(
)
]
2
sin[(
)
]
2
N
t
N
j
t
t
ω ω
ω ω
ω ω
+
Δ
−
Σ =
−
+
Δ ⋅
Δ
+
. (2.21)
Из (2.17) с учетом (2.20) – (2.21) получим выражение для модуля ПФ дискретизированного гармонического сигнала:
0 0
0 0
0
sin[(
)
]
2
sin[(
)
]
2
|
( ) |
2
si n[(
)
]
2
exp[
(
1) ]
sin[(
)
]
2
d
N
t
t
A
X
N
t
j
N
t
t
ω ω
ω ω
ω
ω ω
ω
ω ω
−
Δ
+
Δ
−
=
+
Δ
+
−
− Δ ⋅
Δ
+
. (2.22)
Вводя безразмерные переменные
0 0
0 0
;
r
f
f
f T
f N t
r
f
f
f T
f N t
=
Δ =
=
Δ
=
Δ =
=
Δ , (2.23) получаем удобное для построения графиков выражение
0 0
0 0
s i n [ (
) ]
(
)
s i n
|
( ) |
2
s i n [ (
) ]
1
e x p
2 1
(
)
s i n
r
r
r
r
N
A
X
r
d
r
r
j
r
r
r
N
N
π
π
π
π
π
−
+
−
⎡
⎤
⎢
⎥
⎣
⎦
=
+
⎡
⎤
⎛
⎞
+
−
−
⋅
⎜
⎟
⎢
⎥
+
⎡
⎤
⎝
⎠
⎣
⎦
⎢
⎥
⎣
⎦
. (2.24)
Приведем примеры графиков функции ( )
X r при 1;
8
A
N
=
= и
0 0, 1, 1, 5
r
=
(рис. 2.4).
Рисунки 2.4, а, б носят более общий характер: наличие на этих ри- сунках координатной сетки, вертикальные линии которой соответствуют целочисленным значениям
r
f
f
=
Δ
, позволяет легко объяснить ситуацию на рис. 2. 4, в с дробным значением относительной частоты
0 0
r
f
f
=
Δ гармонического сигнала. Спектральный пик в последнем случае располо- жен в промежутке между узлами сетки частот, образованной целочислен- ными значениями r
f
f
=
Δ . Это значит, что ДПФ гармонического сигнала с дробным значением относительной частоты
0 0
r
f
f
=
Δ
состоит из множества отсчетов. Максимальные отсчеты при этом, как и следовало ожидать, соответствуют ближайшим (слева и справа) целым значениям
r
f
f
=
Δ
41
в)
1,5 0
r
=
Рис. 2.4. График функции
( )
X r
1 2 3 4 5 6 7 8 9 ... 13
2.1.6. Быстрое преобразование Фурье
Пару ДПФ часто записывают в виде
1
,
0, ,
1,
0 1
1
,
0, ,
1,
0
N
kn
A
X W
k
N
k
n
n
N
kn
X
A W
n
N
n
k
N k
−
⎧
=
=
−
∑
⎪
⎪
=
⎨
−
⎪
−
=
=
−
∑
⎪
=
⎩
…
…
(2.25) где
(
)
exp
2
,
(
)
W
j N
X
rep X n t
n
N
=
−
=
Δ
π
– отсчеты сигнала,
(
)
A
rep F k f
t
k
N
=
Δ
Δ
– коэффициенты ДПФ.
Для вычисления одного элемента последовательности
,
0, ,
1,
k
A k
N
=
−
…
необходимо примерно
2
N операций комплексных ум- ножений и сложений. Число операций возрастает пропорционально квад- рату размерности ДПФ [43]. Однако если N не является простым числом и может быть разложено на множители, процесс вычислений можно уско- рить, разделив анализируемый набор отсчетов на части, вычислив их ДПФ и объединив результаты. Такие способы вычисления ДПФ называются бы-
стрым преобразованием Фурье (БПФ; Fast Fourier Transform, FFT). Пре-
10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 0
8
X r
( ) r
а)
0 0
r
=
10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 0
4.09
X r
( ) r
б)
1 0
r
=
10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 0
4
X r
( ) r
42
имущества алгоритма БПФ особенно проявляются с ростом N , что суще- ственно при обработке массивов большой размерности [38].
Существует несколько разновидностей алгоритма БПФ. Изложим две модификации: с прореживанием по времени и по частоте.
Прореживание по времени
Разделим последовательность Xn , состоящую из N отсчетов, на две подпоследовательности Yn и Zn, каждая из которых включает 2
N
отсче- тов (рис. 2.5).
Рис. 2.5. График последовательностей
Xn
,
Yn
и
Zn
Отсчеты
Yn
образованы из четных отсчетов исходной последова- тельности Xn , а отсчеты Zn – из нечетных:
2 2
1
,
,
0,1, 2,
,
1 2
n
n
N
Y
X
Z
X
n
n
n
+
=
=
=
−
…
. (2.26)
Поскольку подпоследовательности
Yn
и
Zn
состоят из
2
N
отсчетов каждая, ДПФ для них имеет вид
2 2
(
2) 1
,
0 0,1,
,
1
(
2) 1
,
0
k n
k n
N
B
Y W
k
n
n
k
N
N
C
Z W
k
n
n
−
⎫
=
⎪
∑
⎪
=
=
−
⎬
−
⎪
=
∑
⎪
=
⎭
…
. (2.27)
43
Необходимо найти последовательность Ak , которую можно предста- вить через четные и нечетные элементы исходной последовательности Xn:
(
2) 1
(2 1)
2
(
)
0
,
0 1.
2
N
k n
kn
A
Y W
Z W
k
n
n
n
N
k
B
W C
при
k
k
k
−
+
=
+
=
∑
=
=
+
≤ ≤
−
(2.28)
Поскольку Bk и Ck периодичны с периодом 2
N
, можем записать
2
п р и 0 1.
2 2
N
k
N
k
A
B
W
C
B
W C
k
k
N
k
k
k
k
+
=
+
=
−
≤ ≤
−
+
(2.29)
Таким образом, первые
2
N
и последние
2
N
отсчетов ДПФ от
Xn
могут быть получены комбинацией отсчетов ДПФ двух подпоследователь- ностей Yn и Zn. На рис. 2.6 показан сигнальный граф, наглядно представ- ляющий процедуру конструирования отсчетов
Ak
из отсчетов
Bk
и
Ck
для случая
8
N
= .
Рис. 2.6. Сигнальный граф, представляющий процедуру конструирования отсче- тов
Ak
из отсчетов
Bk
и
Ck
для случая
8
N
=
6 3
x
y
=
ДПФ
(N=4)
y
x2
1
=
y
x4
2
=
ДПФ
(N=4)
x
z0
1 =
x
z1
3 =
x
z2
5 =
y
x7
3
=
B0
B1
B2
B3
C0
C1
C2
C3
A0
A1
A2
A3
A4
A5
A6
A7
0
W
1
W
2
W
3
W
4
W
5
W
6
W
7
W
y
x2
1
=
44
Поскольку удалось задачу вычисления N-точечного ДПФ редуциро- вать к задаче вычисления двух
2
N
-точечных ДПФ, естественно попы- таться «развить» успех в данном направлении. На рис. 2.7 показаны два следующих аналогичных шага, после которых отсчеты сигнала Xn оказы- ваются связанными с коэффициентами ДПФ Ak своеобразными нитями- операциями, похожими на «бабочку».
Итак, для случая
3 2
8
N
=
= вычисления совершаются в три этапа.
На первых двух этапах находят некие «промежуточные» массивы из вось- ми точек каждый. На третьем этапе вычисляется «окончательный» восьми- точечный массив. Для определения каждого элемента из этих трех масси- вов необходимо выполнить одно комплексное умножение и одно ком- плексное сложение. Итого получается 3 8 24
⋅ =
комплексных умножений и сложений вместо 8 8 64
⋅ =
при «лобовых» вычислениях.
Обобщая рассуждения на случай N -точечных массивов, заключаем, что для вычислений в соответствии с алгоритмом БПФ необходимо log2
N
N комплексных умножений и сложений, тогда как при прямых вы- числениях требуется
2
N операций.
Прореживание по частоте
Как и прежде, разделим последовательность
Xn
на две подпосле- довательности Yn и Zn, каждая из которых включает 2
N
отсчетов. Од- нако теперь
Yn
будет состоять из первых
2
N
отсчетов, а
Zn
– из по- следних
2
N
отсчетов
,
,
0, 1, 2, ,
1 2
2
N
Y
X
Z
X
n
n
n
n
n N
…
=
=
=
−
+
. (2.30)
Тогда
(
)
(
2) 1 2
0
N
k n
N
k n
A
Y W
Z W
k
n
n
n
⎛
⎞
+
− ⎜
⎟
=
+
=
∑
⎜
⎟
=
⎜
⎟
⎝
⎠
(
2) 1 2
, 0 1
0
N
k
N
k n
Y
Z W
W
k
N
n
n
n
⎛
⎞
− ⎜
⎟
=
+
≤ ≤
−
∑
⎜
⎟
=
⎜
⎟
⎝
⎠
. (2.31)
45
Рис. 2.7. Связь отсчетов сигнала
Xn
с коэффициентами ДПФ
Ak
X0
X4
X2
X6
X1
X5
X3
X7
ДПФ (
N=2)
ДПФ (
N=2)
ДПФ (
N=2)
ДПФ (
N=2)
B0
B1
B2
B3
0
W
2
W
4
W
6
W
A0
A1
A2
A3
A4
A5
A6
A7
0
W
1
W
2
W
3
W
4
W
5
W
6
W
7
W
C0
C1
C2
C3
0
W
2
W
4
W
6
W
X0
X4
X2
X6
X1
X5
X3
X7
0
W
4
W
0
W
4
W
0
W
4
W
0
W
4
W
0
W
2
W
4
W
6
W
0
W
2
W
4
W
6
W
0
W
A0
1
W
2
W
3
W
4
W
5
W
6
W
7
W
A1
A2
A3
A4
A5
A6
A7
46
Теперь рассмотрим четные и нечетные отсчеты массива Ak , т.е. осуществим прореживание по частоте:
,
,
0, 1, 2, ,
1 2
2 1
2
N
R
A
S
A
k
k
k
k
k
=
=
=
−
+
…
. (2.32)
Тогда для четных отсчетов
(
)
(
2) 1 2
, 0 1
2 2
0
N
N
k n
R
A
Y
Z
W
k
k
k
n
n
n
−
=
=
+
≤ ≤
−
∑
=
. (2.33)
Соотношение (2.33) есть
2
N
-точечное ДПФ массива Y
Z
n
n
+
, пред- ставляющего собой сумму первых
2
N
и последних
2
N
отсчетов исход- ного временного массива Xn . Аналогично для нечетных спектральных от- счетов
(
)
(
2) 1 2
, 0 1 .
2 1
2 0
N
N
n
k n
S
A
Y
Z
W
W
k
k
k
n
n
n
− ⎡
⎤
=
=
−
≤ ≤
−
∑
+
⎢
⎥
⎣
⎦
=
(2.34)
Соотношение (2.34) есть
2
N
-точечное ДПФ массива
(
) n
Y
Z W
n
n
−
, представляющего собой взвешенную разницу первых
2
N
и последних
2
N
отсчетов исходного временного массива Xn .
Итак, задача вычисления N -точечного ДПФ снова была редуцирова- на, хотя и несколько иным способом, к задаче вычисления двух
2
N
- точечных ДПФ. Сигнальный граф для этого случая показан на рис. 2.8.
Таким образом, при прореживании по частоте и по времени проце- дуру вычислений делят на log2 N этапов. При этом на каждом этапе на определение элементов N-точечного массива затрачивается N комплекс- ных сложений и умножений. В результате вычисления производятся при- мерно за log2
N
N комплексных сложений и умножений против
2
N – при «лобовых» вычислениях.
47
Рис. 2.8. Сигнальный граф редуцирования задачи вычисления
N
-точечного ДПФ к задаче вычисления двух
2
N
-точечных ДПФ
2.1.7. Вычисление спектрограммы
Спектрограммой сигнала называется его мгновенный спектр, зави- сящий от времени:
( , )
( )
t
j
t
F
t
X t e
d t
t
T
ω
ω
−
= ∫
−
. (2.35)
Для вычисления спектрограммы дискретного сигнала его разбивают на сегменты (возможно, с перекрытием). Для каждого сегмента находят его спектр в виде коэффициентов ДПФ. Набор спектров и образует спек- трограмму (рис. 2.9) [38].
Разрешающая способность по частоте такого спектрального анализа определяется величиной
1 1
f
T
Δ =
, а разрешающая способность по време- ни – величиной
1
T , если сегменты анализируемого процесса не перекры- ваются. Если же сегменты перекрываются, то разрешение по времени мо- жет быть равным даже
1 1
t T N
Δ =
, где 1
N – число отсчетов сегмента, под- вергаемого преобразованию Фурье (поэтому число 1
N часто называют па- раметром БПФ и принимают равным степени «2»). Однако на практике
X0
X1
X2
X3
X4
X5
X6
X7
0
W
0
W
−
1
W
1
W
−
2
W
2
W
−
3
W
3
W
−
A0
A1
A2
A3
A4
A5
A6
A7
ДПФ
(
N=4)
ДПФ
(
N=4)
48
степень перекрытия выбирают из неких «разумных» предпосылок, по- скольку при чересчур высокой степени перекрытия объем вычислений мо- жет стать неприемлемо высоким.
Рис. 2.9. Спектрограмма сигнала
( )
X t
:
A
– амплитуда,
f
– частота,
t
– время
Один и тот же термин «спектрограмма» применяют как к комплекс- ной функции частоты и времени, так и к ее модулю (набору амплитудных спектров).
В программе MATLAB для получения комплексного массива B ис- пользуют функцию specgram c синтаксисом
B = specgram(x, Nfft, Fs, window, numoverlap), где x – массив отсчетов исходного сигнала; Nfft – параметр ДПФ, вы- числяемого с помощью алгоритма БПФ; Fs – частоты дискретизации сиг- нала; window – окно для взвешивания сегментов сигнала; numoverlap – ко- личество перекрывающихся отсчетов сегментов. Таким образом вычисля- ется и строится модуль массива B, т.е. набор амплитудных спектров, уро- вень значений которых кодируется цветом.
Рассмотрим пример вычислений спектрограммы из командного окна.
После указания пути к папке по имени \toolbox\signal\signal, где на- ходятся необходимые для работы исходные данные и программы, откройте файл mtlb.mat, в рабочем пространстве при этом появится информация о считывании в среду MATLAB двух переменных – одномерного вещест- венного массива по имени mtlb из 4001 отсчета и числа Fs = 7418 Гц.
A
f
1
T
1
T
1
T
1
T
t
T
t
49
Сигнал mtlb (слово “MATLAB”) можно прослушать с помощью ко- манды wavplay(mtlb, Fs, 'async'). Можно построить график сигнала mtlb
(рис. 2.10) с помощью следующих команд:
>> t=1:4001;
>> plot(t,mtlb).
Рис. 2.10. График речевого сигнала: слово «MATLAB»
Теперь сформируем окно Бартлетта протяженностью 512 отсчетов:
>> win = bartlett (512), график которого можно просмотреть с помощью команд
>> x=1:512; plot(x,win).
Наконец, выполним команду
>> specgram(mtlb, 512, Fs, win, 256).
При этом будем наблюдать спектрограмму, состоящую (при данных значениях параметров) из 14 спектров сегментов (рис. 2.11).
Нетрудно подсчитать, что длительность анализируемого сигнала со- ставляет
4001/ 7418 0,54
T
=
=
с, диапазон анализируемых частот равен
[0, Fs/2], т.е. [0, 3709] Гц.
Для Nfft=512 получаем, что длительность сегмента равна
512 / 7418 0,069 1
T
=
= −
с, разрешающая способность по частоте
7418/ 512 14,5 1
f
F N
s
Δ =
=
=
Гц. Для степени перекрытия 256 отсчетов разрешение по времени составляет 256 / 7418 0,035
=
с.
50
Рис. 2.11. Спектрограмма сигнала в окне Бартлетта
2.2. Корреляционная обработка сигналов. Процедура
и примеры применения
Задача выявления периодических колебаний на фоне шумов встреча- ется практически повсеместно. Периодически меняется интенсивность из- лучения такого космического объекта, как Солнце. Планетные системы, вращаясь вокруг единого центра, периодически заслоняют друг друга, что позволяет астрономам обнаруживать объекты и измерять их характеристи- ки. Наконец, все земные явления и процессы несут на себе «печать» пе- риодичности вследствие вращения Земли вокруг Солнца и собственной оси, а также вращения Луны вокруг Земли. Выявление периодичности присутствует в задачах прогнозирования погоды и климата, тенденций развития растительного и животного мира, социальной и экономической активности людей [38, 43].
Разумеется, периодичность свойственна не только явлениям косми- ческого и планетарного масштаба. Анализ шумов и вибраций механизмов позволяет осуществлять раннее выявление неисправностей при техниче- ской диагностике. Анализ шумов сердца и легких – хорошо известные примеры медицинской диагностики. А задачи шумопеленгования либо ак- тивной локации объектов являются базовыми при обнаружении, слежении и классификации объектов-целей в военном деле.
Зачастую периодический характер явлений и процессов замаскирован шумами, порой весьма интенсивными. В этой связи становится понятной ак- туальность задачи выявления «скрытых периодичностей». Одним из эффек- тивных методов решения такой задачи является корреляционный анализ.