Пороги для вейвлет- 1-D с использованием стратегии Бирже-Массарта
[THR,NKEEP] = wdcbm(C,L,ALPHA,M)
wdcbm(C,L,ALPHA)
wdcbm(C,L,ALPHA,L(1))
[THR,NKEEP] = wdcbm(C,L,ALPHA,M)
возвращает зависящие от уровня пороги THR
и количества коэффициентов, подлежащих сохранению NKEEP
, для шумоподавления или сжатия. THR
получен с использованием правила выбора коэффициентов вейвлета на основе стратегии Бирже-Массара.
[C,L]
- структура разложения вейвлет сигнала, подлежащего деноизации или сжатию, на уровне j = length(L)-2
. ALPHA
и M
должны быть вещественными числами больше 1.
THR
является вектором длины j
; THR(i)
содержит порог для уровня i.
NKEEP
является вектором длины j
; NKEEP(i)
содержит количество коэффициентов, сохраняемых на уровне i.
j, M
и ALPHA
определить стратегию:
На уровне j + 1 (и более грубых уровнях) все сохранено.
Для уровня i от 1 до j, ni самые большие коэффициенты сохраняются с ni = M
/ (j + 2-i)ALPHA.
Как правило ALPHA
= 1,5 для сжатия и ALPHA
= 3 для шумоподавления.
Значение по умолчанию для M
является M
= L
(1), количество коэффициентов самого грубого приближения, поскольку предыдущая формула приводит для i = j + 1, к nj + 1 = M
= L
(1). Рекомендуемые значения для M
являются от L
(1) к 2 * L
(1).
wdcbm(C,L,ALPHA)
эквивалентно wdcbm(C,L,ALPHA,L(1))
.
% Load electrical signal and select a part of it. load leleccum; indx = 2600:3100; x = leleccum(indx); % Perform a wavelet decomposition of the signal % at level 5 using db3. wname = 'db3'; lev = 5; [c,l] = wavedec(x,lev,wname); % Use wdcbm for selecting level dependent thresholds % for signal compression using the adviced parameters. alpha = 1.5; m = l(1); [thr,nkeep] = wdcbm(c,l,alpha,m) thr = 19.5569 17.1415 20.2599 42.8959 15.0049 nkeep = 1 2 3 4 7 % Use wdencmp for compressing the signal using the above % thresholds with hard thresholding. [xd,cxd,lxd,perf0,perfl2] = ... wdencmp('lvd',c,l,wname,lev,thr,'h'); % Plot original and compressed signals. subplot(211), plot(indx,x), title('Original signal'); subplot(212), plot(indx,xd), title('Compressed signal'); xlab1 = ['2-norm rec.: ',num2str(perfl2)]; xlab2 = [' % -- zero cfs: ',num2str(perf0), ' %']; xlabel([xlab1 xlab2]);
Бирге, Л.; P. Massart (1997), «От выбора модели до адаптивной оценки», D. Pollard (ed), Festchrift for L. Le Cam, Springer, pp. 55-88.