Как получить конкретные коэффициенты полосы частот из 1D дискретного вейвлет-преобразования? - PullRequest
1 голос
/ 07 марта 2019

Мне нужно суммировать спектральную информацию сигнала из окон 30 с в спектральные полосы.Дельта (1-4 Гц), Тета (5-8 Гц), Альфа (9-12 Гц) и т. Д. При использовании непрерывного вейвлет-преобразования (CWT), я бы получить обратно коэффициенты, которые соответствуют определенным частотам, которые я мог бы суммировать, чтобы получить среднюю мощностьза группу

Дискретное вейвлет-преобразование (dwt) вместо этого возвращает «приближения» и «детали».Я не понимаю, как сопоставить эти коэффициенты с моими спектральными полосами.Я знаю, что с увеличением количества уровней разрешение по частоте увеличивается, поэтому, если моя частота дискретизации равна 512, коэффициенты должны отображаться следующим образом.

Detail lvl 1: 256hz - 512hz
Detail lvl 2: 128hz - 256hz
Detail lvl 3:  64hz - 128hz
Detail lvl 4:  32hz -  64hz
Detail lvl 5:  16hz -  32hz
Detail lvl 6:   8hz -  16hz
Detail lvl 7:   4hz -   8hz
Approx lvl 7:   0hz -   4hz

Я могу просто суммировать коэффициенты аппроксимации или детализации влюбая из этих групп, но что если мне понадобятся конкретные группы, такие как 6hz - 20hz?Если я знаю, какие коэффициенты соответствуют какой частоте, я могу быстро отобразить это.

Я использую PyWavelets в python, мой код cwt ниже

scale = np.arange(1, 150)
f = pwt.scale2frequency(wavelet='more', scale=scale) * 512
coefficients, frees = pewit.cwt(sig, f, 'morl')
delta = np.mean(amp[1:5, :])
theta = np.mean(amp[5:9, :])
...

Я думаю, что вейвлет Daubechies - самый близкийдискретный вейвлет Морле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...