ЭЭГ вейвлет анализ

Я хочу сделать частотно-временной анализ сигнала ЭЭГ. Я нашел вейвлет-функцию GSL для вычисления вейвлет-коэффициентов. Как я могу извлечь фактические полосы частот (например, 8 - 12 Гц) из этих коэффициентов? Руководство GSL гласит:

Для прямого преобразования элементы исходного массива заменяются дискретным вейвлет-преобразованием f_i -> w_{j,k} в упакованном треугольном макете хранения, где J это индекс уровня j = 0 ... J-1 а также K индекс коэффициента в пределах каждого уровня, k = 0 ... (2^j)-1, Общее количество уровней J = \log_2(n),

Выходные данные имеют следующую форму: (s_{-1,0}, d_{0,0}, d_{1,0}, d_{1,1}, d_{2,0}, ..., d_{j,k}, ..., d_{J-1,2^{J-1}-1})

Если я правильно понял выходной массив data[] содержит в положении 1 (например data[1]) амплитуда полосы частот 2^0 = 1 Гц, и

data[2] = 2^1 Hz  
data[3] = 2^1 Hz  
data[4] = 2^2 Hz  
until  
data[7] = 2^2 Hz  
data[8] = 2^3 Hz

и так далее...

Это означает, что у меня есть только амплитуды для частот 1 Гц, 2 Гц, 4 Гц, 8 Гц, 16 Гц,... Как я могу получить, например, амплитуду частотного компонента, колеблющегося при 5,3 Гц? Как я могу получить амплитуду всего частотного диапазона, например, амплитуду 8 - 13 Гц? Любые рекомендации, как получить хорошее частотно-временное распределение?

1 ответ

Решение

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

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

  • Разложить сигнал на низкочастотные (аппроксимация) и высокочастотные (детализация) составляющие
  • Возьмите низкочастотный компонент и выполните ту же обработку на этом
  • Продолжайте, пока вы не обработали необходимое количество уровней

Причина этого заключается в том, что вы можете затем уменьшить результирующий сигнал аппроксимации. Например, если ваш фильтр разделяет сигнал с частотой дискретизации (Fs) 48000 Гц - что дает максимальную частоту 24000 Гц по теореме Найквиста - на компонент приближения от 0 до 12000 Гц и компонент детализации от 12001 до 24000 Гц, вы можете затем взять каждая вторая выборка компонента аппроксимации без наложения, по существу, децимация сигнала. Это широко используется в сжатии сигнала и изображения.

Согласно этому описанию, на первом уровне вы разделяете свой частотный контент по центру и создаете два отдельных сигнала. Затем вы берете низкочастотный компонент и снова делите его на середину. Теперь вы получаете в общей сложности три компонента: от 0 до 6000 Гц, от 6001 до 12000 Гц и от 12001 до 24000 Гц. Вы видите, что оба новых компонента составляют половину полосы пропускания первого компонента детализации. Вы получаете такую ​​картину:

Это коррелирует с полосами пропускания, которые вы описали выше (2^1 Hz, 2^2 Hz, 2^3 Hz и так далее). Однако, используя более широкое определение банка фильтров, мы можем упорядочить приведенную выше древовидную структуру так, как нам нравится, и она все равно останется банком фильтров. Например, мы можем подать компонент аппроксимации и детализации для разделения на два высокочастотных и низкочастотных сигнала, например, так

Если вы внимательно посмотрите на это, вы увидите, что как высокочастотные, так и низкочастотные компоненты находятся посередине по своим частотам, и в результате вы получитеединый блок фильтров, частотное разделение которого выглядит примерно так:

Обратите внимание, что все группы имеют одинаковый размер. Построив единый банк фильтров с N уровнями, вы получите ответы 2^(N-1) полосовых фильтров. Вы можете точно настроить свой банк фильтров, чтобы в итоге получить желаемую полосу (8-13 Гц).

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

Другие вопросы по тегам