Как найти пороговое значение и какое семейство вейвлетов использовать для сигнала фильтра нижних частот? - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь реализовать код на этом веб-сайте [http://ataspinar.com/2018/12/21/a-guide-for-using-the-wavelet-transform-in-machine-learning/], где рассматривается применение фильтра нижних частот для сигнала, однако я не могу понять, как он получил пороговое значение и вейвлет семьи. Можете ли вы объяснить, как он придумал значение и имя вейвлета?

Для кода:

def lowpassfilter(signal, thresh = 0.63, wavelet="db4"):
    thresh = thresh*np.nanmax(signal)
    coeff = pywt.wavedec(signal, wavelet, mode="per" )
    coeff[1:] = (pywt.threshold(i, value=thresh, mode="soft" ) for i in coeff[1:])
    reconstructed_signal = pywt.waverec(coeff, wavelet, mode="per" )
    return reconstructed_signal

С уважением

1 Ответ

0 голосов
/ 24 января 2020

В этом случае пороговое значение 0,63 означает, что он желает поддерживать только 63% более низких частот в сигнале. Поскольку более высокие частоты, как правило, не имеют решающего значения для общей энергии сигнала, вы можете поспорить за их удаление ради сжатия. В зависимости от сигнала, вы можете удалить до 99% и получить идеальное обратное преобразование.

Что касается его выбора вейвлета Daubech ie 4, я не знаю, что еще сказать кроме того факта, что это довольно распространенный вейвлет, чтобы увидеть. Он может довольно хорошо оценить полиномы степени 3, что обычно достаточно для большинства приложений.

...