Как найти полосы частот преобразования сигнала ДВП?

Я новичок в обработке сигналов, я хочу узнать частоту каждого уровня, выдаваемого преобразованием вейвлета Добеши «db4». Преобразование выполняется с помощью PyWavelets. Я работаю на python, и приведенный ниже код выводит 5 уровней детализации и 1 приближение, однако я не уверен, какой частотный диапазон описывает каждый уровень.

data = pywt.wavedec(X_train_ch1_raw[0], 'db4', level=5)

person Zizi96    schedule 20.03.2020    source источник


Ответы (1)


Ваш вопрос сложнее, чем кажется.

Короткий ответ: используйте встроенную функцию scale2freq pywt, чтобы вернуть частоту, связанную с данным вейвлетом в заданном масштабе. Например, приведенный ниже код возвращает частоту вейвлета Добеши 4 в масштабе 5 (0,14285714285714285):

import pywt pywt.scale2frequency('db4',5)

Вы можете получить тот же результат, вычислив центральную частоту вашего вейвлета db4 (0,7142857142857143), а затем разделив на масштаб (5)

import pywt pywt.central_frequency('db4')/5

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

Чтобы восстановить центральную частоту сигнала, нужно псевдочастоту разделить на частоту дискретизации сигнала:

import pywt pywt.scale2frequency('db4',5)/dt

Где dt — ваша частота дискретизации.

Надеюсь, это поможет!

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

person Sheldon    schedule 20.03.2020
comment
Топовый парень! Центральной частоты будет достаточно для того, что мне нужно. - person Zizi96; 21.03.2020