Подтвердить что ты не робот

Параметры спектрометра MATLAB '

Я новичок в MATLAB, и я должен выполнить спектральный анализ сигнала ЭЭГ, рисуя графики спектральной плотности мощности и спектрограммы. Мой сигнал 10 секунды и частота дискретизации 160 Hz, всего 1600 samples, и у вас есть некоторые вопросы о том, как найти параметры функций в MATLAB, включая:

pwelch (x, window, noverlap, nfft, fs);

spectrogram (x, window, noverlap, F, fs);

Мой вопрос: где найти значения для параметров window и noverlap Я не знаю, для чего они предназначены.

4b9b3361

Ответ 1

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

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

enter image description here

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

enter image description here

Эта спектральная утечка происходит через боковые лепестки. Чтобы узнать больше об этом, вы должны также прочитать функцию sinc и ее преобразование Фурье, функцию прямоугольника. Конечную выборочную последовательность можно рассматривать как бесконечную последовательность, умноженную на прямоугольную функцию. Происходящая утечка связана с боковыми лепестками функции sinc (sinc и прямоугольник принадлежат самодвойству и являются F.Ts друг от друга). Это объясняется более подробно в статье я спектральной утечки, связанной с выше.

Функции окна

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

Некоторые из обычных окон: Hanning, Hamming, Blackman, Blackman-Harris, Kaiser-Bessel и т.д. Вы можете прочитать больше о них по ссылке wiki, а соответствующие команды MATLAB: hann, hamming, blackman, blackmanharris и kaiser. Здесь небольшой образец разных окон:

enter image description here

Вы можете удивиться, почему существует так много разных оконных функций. Причина в том, что каждый из них имеет очень разные спектральные свойства и имеет разную ширину основного лепестка и амплитуды боковых лепестков. Существует нет такой вещи, как бесплатный обед: если вы хотите хорошее частотное разрешение (основная доля тонкая), ваши боковые лепестки становятся больше и наоборот. У вас не может быть обоих. Часто выбор оконной функции зависит от конкретных потребностей и всегда сводится к компромиссу. Это - очень хорошая статья, в которой рассказывается об использовании оконных функций, и вы обязательно должны прочитать ее.

Теперь, когда вы используете функцию окна, у вас меньше информации на конических концах. Итак, одним из способов исправить это, является использование скользящих окон с перекрытием, как показано ниже. Идея состоит в том, что при объединении они максимально приближают исходную последовательность (т.е. Нижняя строка должна быть как можно ближе к плоскому значению 1). Типичные значения варьируются от 33% до 50%, в зависимости от приложения.

enter image description here

Использование спектрограммы 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 дБ на каждом графике.

enter image description here

Вы можете заметить разницу в цифрах (верхний нижний) из-за перекрытия. Вы получаете более чистую оценку, если используете перекрытие. Вы также можете наблюдать компромисс между шириной основного лепестка и амплитудой боковой доли, о которой я упоминал ранее. Хэннинг имеет более тонкий основной лепесток (видная линия по косой диагонали), что приводит к лучшему разрешению частоты, но имеет протекающие боковые лепестки, видимые яркими цветами снаружи. С другой стороны, у Blackwell-Harris есть более толстая основная лопасть (более толстая диагональная линия), но меньше спектральной утечки, о чем свидетельствует равномерно низкий (синий) внешний участок.

Ответ 2

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

Скажите, что упомянутый выше сигнал является нестационарным (какие сигналы ЭЭГ). Также предположите, что он неподвижен только около 10 мс или около того. Чтобы надежно измерить статистику, например, PSD or energy, вам необходимо измерить эти статистические данные 10 мс за раз. Функция window-ing - это то, что вы умножаете сигнал, чтобы изолировать это 10 мс сигнала, на котором вы будете вычислять PSD и т.д. Итак, теперь вам нужно пройти по длине сигнала. Вам нужно сдвинуть окно (чтобы окончить весь сигнал 10 мс за раз). Перекрытие окон дает более достоверную оценку статистики.

Вы можете представить это так:
1. Возьмите первые 10 мс сигнала.
2. Окончите его с помощью функции окна.
3. Вычислить статистику только на этой части 10 мс.
4. Переместите окно на 5 мс (предположите длину перекрытия).
5. Окончите сигнал снова.
6. Вычислить статистику снова.
7. Перемещение по всей длине сигнала.

Существует множество различных типов оконных функций - Blackman, Hanning, Hamming, Rectangular. Это и длина окна и перекрытие действительно зависят от приложения, которое у вас есть, и от частотных характеристик самого сигнала.

В качестве примера, при обработке речи (где сигналы нестационарны, а окна очень часто используются), наиболее популярными вариантами для оконных функций являются Хэмминг/Ханнинг длины 10ms (320 samples at 16 kHz sampling) with an overlap of 80 samples (25% of window length). Это работает достаточно хорошо. Вы можете использовать это как отправную точку для своего приложения, а затем работать над тонкой настройкой его немного больше с разными значениями.

Вы также можете взглянуть на следующие функции в MATLAB:
1. hamming
2. hanning

Надеюсь, вы знаете, что вы можете вызвать тонну помощи в MATLAB, используя команду help в командной строке. MATLAB является одним из лучших документальных программ. Использование команды справки для pwelch также вытягивает определения размера окна и перекрытия. Это тоже поможет вам.

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

НТН,
Шриры.

Ответ 3

Для последнего параметра fs, то есть частоты частотного сигнала необработанного сигнала, в вашем случае X, когда вы извлекаете X из аудиоданных, используя функцию

[X,fs]=audioread('song.mp3')

Вы можете получить fs из него.

Ответ 4

Изучите, как следующие параметры изменяют производительность функции Sinc:

  • Длина коэффициентов
  • Следующие функции окна:
    • Блэкмен Харрис
    • Хеннинга
    • Bartlett