Ответ 1
Чтобы понять функции окна и их использование, позвольте сначала взглянуть на то, что происходит, когда вы берете DFT проб конечной длины. Неявно в определении дискретного преобразования Фурье, является предположение, что конечная длина сигнала, который вы рассматриваете, является периодической.
Рассмотрим синусоидальную волну, отбираемую таким образом, чтобы фиксировался полный период. Когда сигнал реплицируется, вы можете видеть, что он периодически продолжается как непрерывный сигнал. В результате DFT имеет только одну ненулевую составляющую и находится на частоте синусоиды.
Теперь рассмотрим косинусоидальную волну с другим периодом, отобранную таким образом, чтобы фиксировался только частичный период. Теперь, если вы реплицируете сигнал, вы видите разрывы в сигнале, отмеченные красным. Теперь более не происходит плавного перехода, поэтому на других частотах будет возникать утечка, как показано ниже.
Эта спектральная утечка происходит через боковые лепестки. Чтобы узнать больше об этом, вы должны также прочитать функцию sinc и ее преобразование Фурье, функцию прямоугольника. Конечную выборочную последовательность можно рассматривать как бесконечную последовательность, умноженную на прямоугольную функцию. Происходящая утечка связана с боковыми лепестками функции sinc (sinc и прямоугольник принадлежат самодвойству и являются F.Ts друг от друга). Это объясняется более подробно в статье я спектральной утечки, связанной с выше.
Функции окна
Функции окна используются для обработки сигналов, чтобы минимизировать влияние спектральных утечек. В принципе, то, что делает оконная функция, состоит в том, что она сужает последовательность конечной длины на концах, так что, когда она черепична, она имеет периодическую структуру без разрывов и, следовательно, меньшую спектральную утечку.
Некоторые из обычных окон: Hanning, Hamming, Blackman, Blackman-Harris, Kaiser-Bessel и т.д. Вы можете прочитать больше о них по ссылке wiki, а соответствующие команды MATLAB: hann
, hamming
, blackman
, blackmanharris
и kaiser
. Здесь небольшой образец разных окон:
Вы можете удивиться, почему существует так много разных оконных функций. Причина в том, что каждый из них имеет очень разные спектральные свойства и имеет разную ширину основного лепестка и амплитуды боковых лепестков. Существует нет такой вещи, как бесплатный обед: если вы хотите хорошее частотное разрешение (основная доля тонкая), ваши боковые лепестки становятся больше и наоборот. У вас не может быть обоих. Часто выбор оконной функции зависит от конкретных потребностей и всегда сводится к компромиссу. Это - очень хорошая статья, в которой рассказывается об использовании оконных функций, и вы обязательно должны прочитать ее.
Теперь, когда вы используете функцию окна, у вас меньше информации на конических концах. Итак, одним из способов исправить это, является использование скользящих окон с перекрытием, как показано ниже. Идея состоит в том, что при объединении они максимально приближают исходную последовательность (т.е. Нижняя строка должна быть как можно ближе к плоскому значению 1). Типичные значения варьируются от 33% до 50%, в зависимости от приложения.
Использование спектрограммы MATLAB
Синтаксис spectrogram(x,window,overlap,NFFT,fs)
где
-
x
- ваш весь вектор данных -
window
- ваша функция окна. Если вы вводите только число, скажемW
(должно быть целым), тогда MATLAB отбирает ваши данные в кускиW
образцов каждый и формирует из него спектрограмму. Это эквивалентно использованию прямоугольного окна длинойW
образцов. Если вы хотите использовать другое окно, укажитеhann(W)
или любое другое окно, которое вы выберете. -
overlap
- количество образцов, которые вам нужно совместить. Итак, если вам нужно перекрытие 50%, это значение должно бытьW/2
. Используйтеfloor(W/2)
илиceil(W/2)
, еслиW
может принимать нечетные значения. Это всего лишь целое число. -
NFFT
- длина FFT -
fs
- частота выборки вашего вектора данных. Вы можете оставить это пустым, а MATLAB отображает цифру в терминах нормированных частот и временной оси как просто индекс данных. Если вы введете его, MATLAB масштабирует ось соответственно.
Вы также можете получить дополнительные выходы, такие как вектор вектора времени и частотный вектор, и вычислить спектр мощности, для использования в других вычислениях, или если вам нужно по-разному настроить свой сюжет. Подробнее см. В документации .
Здесь приведен пример с 1 секундой линейного сигнала чирпа от 20 Гц до 400 Гц, отбираемый при 1000 Гц. Используются две функции окна, Hanning
и Blackman-Harris
, с перекрытиями и без них. Длина окна составляла 50 выборок и перекрывалась на 50% при использовании. Графики масштабируются до того же диапазона 80 дБ на каждом графике.
Вы можете заметить разницу в цифрах (верхний нижний) из-за перекрытия. Вы получаете более чистую оценку, если используете перекрытие. Вы также можете наблюдать компромисс между шириной основного лепестка и амплитудой боковой доли, о которой я упоминал ранее. Хэннинг имеет более тонкий основной лепесток (видная линия по косой диагонали), что приводит к лучшему разрешению частоты, но имеет протекающие боковые лепестки, видимые яркими цветами снаружи. С другой стороны, у Blackwell-Harris есть более толстая основная лопасть (более толстая диагональная линия), но меньше спектральной утечки, о чем свидетельствует равномерно низкий (синий) внешний участок.