PhViewer 2.0

цифровая обработка сигналов

Классический спектр

Начать знакомиться с сущностью спектральных представлений лучше с разложения в ряд Фурье периодического сигнала. Всякая периодическая функция (с ограничениями, носящими абстрактный характер) может быть представлена в виде разложения в ряд по тригонометрическим функциям — суммой слагаемых, каждое из которых есть не что иное, как косинусоидальное колебание с амплитудой Ck и начальной фазой Wk.

Совокупность коэффициентов Ck называется амплитудным спектром сигнала, а  Wk— его фазовым спектром.

Частоты всех синусоидальных колебаний, из которых составляется периодическая функция s(t), кратны основной частоте F = 1/T. Отдельные составляющие называются гармониками. Колебание с частотой F называется первой гармоникой (к = 1), с частотой 2F— второй гармоникой (к = 2) и т. д.

Ряд Фурье дает разложение периодической функции по тригонометрическим функциям. Это разложение можно применить и к непериодической функции, которую рассматривают как предельный случай периодической функции при неограниченном возрастании периода. Если T стремится к бесконечности, то Fстремится к df, а 2Pi*k/T стремится к w (параметр w — круговая текущая частота, изменяющаяся непрерывно) и ряд Фурье превращается в интеграл Фурье. Непериодическая функция может быть представлена только суммой бесконечно большого числа бесконечно близких по частоте колебаний с бесконечно малыми амплитудами. Интеграл Фурье представляет непериодическую функцию суммой синусоид и косинусоид с непрерывной последовательностью частот. Иногда говорят, что в составе непериодического сигнала есть колебания всех частот. В случае непериодического сигнала говорить об амплитудах отдельных спектральных составляющих нет смысла, т. к. это бесконечно малые величины.

Текущий спектр

Классическое определение спектра основывается на преобразовании Фурье, причем интегрирование по времени выполняется в бесконечных пределах и спектр зависит только от частоты. Однако бесконечная длительность какого-либо процесса — это абстракция, не имеющая ничего общего с реальностью.

Если анализируемая функция есть отображение некоторого реального физического процесса, то сведения о спектре мы получаем лишь в результате наших наблюдений. Следовательно, при анализе спектра мы можем выполнить вычисления лишь от момента начала наблюдения до текущего момента времени t, а не до момента, устремленного в бесконечное будущее.

Текущий спектр определяется как результат преобразования Фурье, но с переменным верхним пределом интегрирования, в качестве которого фигурирует текущее время. Поэтому текущий спектр является функцией не только частоты, но и времени.

В начале раздела мы воспользовались понятием периодической функции. На самом деле периодическая функция — лишь весьма полезная математическая абстракция. Ведь всякий природный процесс имеет начало и конец.

Принято называть реальный циклический процесс периодическим, если он длится достаточно долго. Мерилом длительности служит число "периодов", которое должно быть намного больше единицы. Периодичность процесса проявляется лишь с течением времени, когда прорисовываются его характерные черты. Текущий спектр и отражает это развитие процесса. Таким образом, периодический процесс — это предел, к которому может стремиться с течением времени реальный повторяющийся процесс. Аналогично и спектр (в его классическом определении) такого процесса есть предел, к которому стремится текущий спектр при увеличении времени интегрирования до бесконечности. Например, при интегрировании в бесконечных пределах спектр синусоиды представляет собой единственную линию на частоте, равной частоте этой синусоиды.

Но как на практике измеряется текущий спектр, например, той же синусоиды? Мы включаем анализатор спектра, а спустя какое-то время выключаем его. Получается, что измеряется не спектр бесконечного синусоидального колебания, а спектр его более или менее протяженного отрезка. Это значит, что фактически исследуется спектр прямоугольного импульса с синусоидальным заполнением. Сказанное объясняет причину того, что даже для синусоидального колебания при уменьшении времени интегрирования спектральная линия расширяется, появляются боковые лепестки спектральной функции, ее нули все больше удаляются друг от друга. Ведь именно так и должен вести себя спектр прямоугольного импульса при уменьшении его длительности.

Таким образом, текущий спектр в большей степени отражает свойства сигналов, проявляющиеся в реальных условиях их генерирования и обработки, нежели спектр, полученный на бесконечном временном интервале.

Мгновенный спектр

Текущий спектр — только мостик от частотного к временному описанию процесса. Не только спектр, вычисленный на бесконечном временном интервале, но и текущий спектр — слишком грубый инструмент в тех случаях, когда анализируемый процесс не стационарен. Для того чтобы сблизить частотное и временное представления сигнала, было введено понятие мгновенного спектра. Мгновенный спектр — это спектр короткого отрезка процесса, непосредственно предшествующего данному моменту времени. В этом определении мы имеем дело со скользящим интегрированием: интервал интегрирования имеет постоянную длину, но перемещается по оси времени. А вот относительно текущего времени этот интервал расположен неизменно. Страшно далеко это определение спектра от того, что давно придумали великие математики! И все же в руках звукорежиссера именно мгновенный спектр является наиболее эффективным инструментом анализа свойств записываемого или уже записанного звука. Музыка, которую создают с помощью синтезатора, отличается особенно заметной нестационарностью тембра. Может быть, именно поэтому в звуковых редакторах уже давно используются средства анализа текущего и мгновенного спектра.

Взвешенный спектр

Вы познакомились с тремя подходами к вычислению спектра. Но это еще не финал. Продолжим погружение в спектральные преобразования. И вновь речь пойдет о влиянии времени на результаты спектрального анализа.

Как вычисляется одна-единственная точка графика спектра? Исчерпывающий ответ на этот вопрос дают формулы. Но прибегать к ним не хочется, лучше попытаемся разъяснить суть дела обычными словами.

Итак, сначала выбирается частота f0. Реальный или виртуальный генератор формирует синусоиду этой частоты и условно единичной амплитуды. Исследуемый сигнал нормируется по амплитуде. Начиная с какого-то определенного момента t0, с шагом dt (чем меньше dt, тем лучше) в моменты времени t0, t1, t2,...ti..tN-1 с этой синусоидой и исследуемым сигналом проделываются следующие операции:
  1. Берется отсчет синусоиды.
  2. Берется отсчет исследуемого сигнала.
  3. Эти отсчеты перемножаются.
  4. Результаты перемножения суммируются с накоплением.
В некоторый момент процесс измерения спектра на частоте f0 завершается. Накопленная сумма делится на общее число отсчетов. Вычисленное значение запоминается и, возможно, отображается как одна точка графика. Затем накопленная сумма обнуляется, значение частоты изменяется на величину df (выбирается новое значение частоты fi. И вся последовательность операций повторяется до тех пор, пока "пробежкой" по ряду частот f0,f1,f2,...fi...fN-1 не будет перекрыт весь заданный диапазон.

Описанная выше процедура вычисления спектрального коэффициента есть не что иное, как вычисление взаимокорреляционной функции исследуемого сигнала и синусоиды заданной частоты. Иными словами, в процессе вычисления спектральной составляющей выясняется степень сходства исследуемого сигнала со стандартным (базисным) сигналом, в данном случае — с синусоидой. Можно сказать и так: выясняется, в какой пропорции синусоида "содержится" в исследуемом сигнале.

Если исследуемый сигнал уже записан, и в нашем распоряжении есть цифровой анализатор спектра, способный сколь угодно долго хранить результаты промежуточных вычислений, то измерение текущего спектра и мгновенного спектра вполне осуществимо по описанной выше процедуре.

Уместен вопрос: вполне ли адекватен описанный математический алгоритм тому спектральному анализу, который проводят реальные анализаторы спектра, и тому, который выполняют органы слуха и мозг человека? Ответ: нет, не вполне.

Основная проблема состоит в том, что прибор, анализирующий спектр, и человек обладают конечной памятью. Былые события, подробности хода любого процесса постепенно стираются в ней. Это означает, что чем больше удалены в прошлое отсчеты анализируемого сигнала, тем меньший вклад они вносят в накопление той самой суммы произведений отсчетов, которая, в конце концов, определяет значение спектрального коэффициента.

Учет реальных свойств памяти анализаторов спектра осуществляется с помощью весовых функций. Весовая функция описывает зависимость вклада предшествующих отсчетов исследуемого сигнала в вычисляемый спектр. Наглядное представление о весовой функции дает форма так называемого спектрального окна.

Тот спектральный анализ, о котором мы вели речь до сих пор, соответствует спектральному окну прямоугольной формы: весовая функция равна единице в пределах спектрального окна и равна нулю вне его. При анализе текущего спектра начало спектрального окна совпадает с началом отсчета времени, а конец приходится на текущий момент времени. Текущее время идет вперед, правая граница спектрального окна смещается, поэтому каждому конкретному моменту времени завершения анализа соответствует своя ширина спектрального окна. Если вычисляется мгновенный спектр, то спектральное окно скользит вдоль оси времени, не изменяя своей ширины.

Однако в большей степени суть реального спектрального анализа отражает экспоненциальная весовая функция.

Прямоугольное и экспоненциальное спектральные окна используются при вычислении спектра наиболее часто. Первое соответствует идеальному анализатору с бесконечно большой памятью, второе удачно отражает свойства человеческого мозга и реальных анализаторов спектра на основе резонансных фильтров. Наряду с этими, хотя не столь широко, применяются и другие весовые функции. Трудно дать конкретные рекомендации по поводу предпочтительности использования той или иной из них. Пожалуй, единственный совет может состоять в том, что следует остановиться на какой-то одной весовой функции. Только тогда у вас будет уверенность в том, что различия результатов анализа обусловлены различием свойств сигналов, а не методов расчета. Целесообразно также выбирать одну и ту же весовую функцию, когда при работе с одним и тем же сигналом вы решаете несколько задач, в которых применяются спектральные преобразования.

Быстрое преобразование Фурье

До сих пор, знакомясь с сущностью спектральных представлений, мы предполагали, что сигнал является аналоговым, т. е. описывается непрерывной функцией. На самом деле компьютер способен обрабатывать только цифровые сигналы — дискретные во времени и квантованные по уровню. Поэтому аналоговый сигнал подвергается аналого-цифровому преобразованию (АЦП). Затем с сигналом в цифровой форме выполняются все необходимые операции, в частности, спектральный анализ, причем вместо обычного спектрального преобразования производится так называемое дискретное преобразование Фурье (ДПФ). Непрерывное время и непрерывная частота заменяются на соответствующие дискретные величины, а вместо интегрирования выполняется суммирование.

Чтобы провести дискретное преобразование Фурье для последовательности из >N элементов, требуется выполнить N2 операций с комплексными числами. Если длины обрабатываемых массивов цифровых отсчетов звуковых колебаний имеют порядок тысячи и больше, то использовать эти алгоритмы дискретного спектрального анализа затруднительно (особенно в реальном времени). Выходом из положения явился алгоритм быстрого преобразования Фурье (БПФ). Значительно сократить число выполняемых операций здесь удается за счет того, что обработка входного массива сводится к нахождению ДПФ массивов с меньшим числом элементов.

Приближенно можно считать, что объем вычислений по алгоритму БПФ пропорционален произведению N x log2>N, где N — количество отсчетов сигнала. А если решать задачу расчета спектра "в лоб", не пользуясь алгоритмами быстрых преобразований, то объем вычислений ориентировочно будет пропорционален произведению N x N. Если бы не БПФ, то для фильтрации, спектрального анализа и синтеза сигналов не хватило бы быстродействия самого современного компьютера.