Анализируем спектр сигнала
Взвешенный спектр
Вы познакомились с тремя подходами к вычислению спектра. Но это еще не финал. Продолжим погружение в спектральные преобразования. И вновь речь пойдет о влиянии времени на результаты спектрального анализа.
Как вычисляется одна-единственная точка графика спектра? Исчерпывающий ответ на этот вопрос дают формулы. Но прибегать к ним не хочется, лучше попытаемся разъяснить суть дела обычными словами.
Итак, сначала выбирается частота . Реальный или виртуальный генератор формирует синусоиду этой частоты и условно единичной амплитуды. Исследуемый сигнал нормируется по амплитуде. Начиная с какого-то определенного момента , с шагом (чем меньше , тем лучше) в моменты времени с этой синусоидой и исследуемым сигналом проделываются следующие операции:
- Берется отсчет синусоиды.
- Берется отсчет исследуемого сигнала.
- Эти отсчеты перемножаются.
- Результаты перемножения суммируются с накоплением.
В некоторый момент процесс измерения спектра на частоте завершается. Накопленная сумма делится на общее число отсчетов. Вычисленное значение запоминается и, возможно, отображается как одна точка графика. Затем накопленная сумма обнуляется, значение частоты изменяется на величину (выбирается новое значение частоты . И вся последовательность операций повторяется до тех пор, пока "пробежкой" по ряду частот не будет перекрыт весь заданный диапазон.
Описанная выше процедура вычисления спектрального коэффициента есть не что иное, как вычисление взаимокорреляционной функции исследуемого сигнала и синусоиды заданной частоты. Иными словами, в процессе вычисления спектральной составляющей выясняется степень сходства исследуемого сигнала со стандартным (базисным) сигналом, в данном случае – с синусоидой. Можно сказать и так: выясняется, в какой пропорции синусоида "содержится" в исследуемом сигнале.
Если исследуемый сигнал уже записан, и в нашем распоряжении есть цифровой анализатор спектра, способный сколь угодно долго хранить результаты промежуточных вычислений, то измерение текущего спектра и мгновенного спектра вполне осуществимо по описанной выше процедуре.
Уместен вопрос: вполне ли адекватен описанный математический алгоритм тому спектральному анализу, который проводят реальные анализаторы спектра, и тому, который выполняют органы слуха и мозг человека? Ответ: нет, не вполне.
Основная проблема состоит в том, что прибор, анализирующий спектр, и человек обладают конечной памятью. Былые события, подробности хода любого процесса постепенно стираются в ней. Это означает, что чем больше удалены в прошлое отсчеты анализируемого сигнала, тем меньший вклад они вносят в накопление той самой суммы произведений отсчетов, которая, в конце концов, определяет значение спектрального коэффициента.
Учет реальных свойств памяти анализаторов спектра осуществляется с помощью весовых функций. Весовая функция описывает зависимость вклада предшествующих отсчетов исследуемого сигнала в вычисляемый спектр. Наглядное представление о весовой функции дает форма так называемого спектрального окна.
Тот спектральный анализ, о котором мы вели речь до сих пор, соответствует спектральному окну прямоугольной формы: весовая функция равна единице в пределах спектрального окна и равна нулю вне его. При анализе текущего спектра начало спектрального окна совпадает с началом отсчета времени, а конец приходится на текущий момент времени. Текущее время идет вперед, правая граница спектрального окна смещается, поэтому каждому конкретному моменту времени завершения анализа соответствует своя ширина спектрального окна. Если вычисляется мгновенный спектр, то спектральное окно скользит вдоль оси времени, не изменяя своей ширины.
Однако в большей степени суть реального спектрального анализа отражает экспоненциальная весовая функция.
Прямоугольное и экспоненциальное спектральные окна используются при вычислении спектра наиболее часто. Первое соответствует идеальному анализатору с бесконечно большой памятью, второе удачно отражает свойства человеческого мозга и реальных анализаторов спектра на основе резонансных фильтров. Наряду с этими, хотя не столь широко, применяются и другие весовые функции. Трудно дать конкретные рекомендации по поводу предпочтительности использования той или иной из них. Пожалуй, единственный совет может состоять в том, что следует остановиться на какой-то одной весовой функции. Только тогда у вас будет уверенность в том, что различия результатов анализа обусловлены различием свойств сигналов, а не методов расчета. Целесообразно также выбирать одну и ту же весовую функцию, когда при работе с одним и тем же сигналом вы решаете несколько задач, в которых применяются спектральные преобразования.
Быстрое преобразование Фурье
До сих пор, знакомясь с сущностью спектральных представлений, мы предполагали, что сигнал является аналоговым, т. е. описывается непрерывной функцией. На самом деле компьютер способен обрабатывать только цифровые сигналы – дискретные во времени и квантованные по уровню. Поэтому аналоговый сигнал подвергается аналого-цифровому преобразованию (АЦП). Затем с сигналом в цифровой форме выполняются все необходимые операции, в частности, спектральный анализ, причем вместо обычного спектрального преобразования производится так называемое дискретное преобразование Фурье (ДПФ). Непрерывное время и непрерывная частота заменяются на соответствующие дискретные величины, а вместо интегрирования выполняется суммирование.
Чтобы провести дискретное преобразование Фурье для последовательности из N элементов, требуется выполнить N2 операций с комплексными числами. Если длины обрабатываемых массивов цифровых отсчетов звуковых колебаний имеют порядок тысячи и больше, то использовать эти алгоритмы дискретного спектрального анализа затруднительно (особенно в реальном времени). Выходом из положения явился алгоритм быстрого преобразования Фурье (БПФ). Значительно сократить число выполняемых операций здесь удается за счет того, что обработка входного массива сводится к нахождению ДПФ массивов с меньшим числом элементов.
Приближенно можно считать, что объем вычислений по алгоритму БПФ пропорционален произведению N x log2 N, где N – количество отсчетов сигнала. А если решать задачу расчета спектра "в лоб", не пользуясь алгоритмами быстрых преобразований, то объем вычислений ориентировочно будет пропорционален произведению N x N. Если бы не БПФ, то для фильтрации, спектрального анализа и синтеза сигналов не хватило бы быстродействия самого современного компьютера.