Birge_Massart.m
上传用户:lcj80317
上传日期:2007-01-26
资源大小:625k
文件大小:1k
- function thr = Birge_Massart(c, s)
- %用Birge-Massart策略估计阈值
- % 给定分解层数j,对j+1及更高层,所有系数保留
- % 对第i层(1<=i<=j),保留绝对值最大的n_i个系数,n_i由下式确定
- % n_i = M/(j+2-i)^alpha
- % 其中M和alpha为经验系数,缺省情况下M取第一层分解后的系数长度L(1)
- % 一般情况下,M满足 L(1)<=M<=2L(1)
- % alpha的取值因用途不同,压缩情况下一般取alpha=1.5,降噪一般取alpha=3
- %设定alpha、M和j的值
- alpha = 3;
- M = prod(s(1, :));
- j = size(s, 1) - 2;
- %计算每层的阈值
- for i = 1:j
- n = round( M/(j+2-i)^alpha ); %每层保留的系数个数
- D = detcoef2('compact', c, s, i); %提取第i层的所有细节系数
- if n >= size(D)
- thr(:, i) = zeros(3, 1);
- else
- D = sort(abs(D)); %排序
- thr(i) = D(end-n); %设置第i层的阈值
- end
- end