Ваш вопрос сложнее, чем кажется.
Короткий ответ: используйте встроенную функцию 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