Если дисперсия щума нам заранее известна, тогда уровень threshold'а вычисляется довольно просто (см. предыдущий пример). В противном случае существует методика оценки дисперсии из высокочастотной части первого уровня разложения:
#вычисляем коэффициенты разложения coeffs = pywt.wavedec(data, 'coif3', 'cpd', dec_level); #оценка шумовой дисперсии из высокочастотной части первого уровня разложения #как median absolute deviation (MAD) деленное на 0.6745 MAD = abs(max(coeffs[dec_level]) - median(coeffs[dec_level])); sigma = MAD/0.6745; #вычисление уровень threshold'а из шумовой дисперсии tr_level = sigma*sqrt(2*log(len(data))); print tr_level;
Комментариев нет:
Отправить комментарий