Как найти полосы частот преобразования сигнала DWT? - PullRequest
0 голосов
/ 20 марта 2020

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

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

1 Ответ

1 голос
/ 21 марта 2020

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

Краткий ответ: используйте встроенную функцию pywt scale2freq, чтобы вернуть частоту, связанную с данным вейвлетом в заданном масштабе. Например, приведенный ниже код возвращает частоту вейвлета Daubechies 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: Я предлагаю построить спектр восстановленного сигнала, чтобы убедиться, что центральная частота соответствует значению, выведенному вышеупомянутым аналитическим формула.

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