четверг, 14 июля 2011 г.

wavelet shrinkage: threshold level

Если дисперсия щума нам заранее известна, тогда уровень 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;

Комментариев нет:

Отправить комментарий