資源簡介
自適應貝葉斯算法matlab源碼

代碼片段和文件信息
%閾值用bayes+比例參數k小于1的自適應
clear?all;
sig=imread(‘GOLDHILL.bmp‘);%miss2;BOAT
[M_sig?N_sig]=?size(sig);
sig=double(sig)/double(max(max(sig)));
sig_n=imnoise(sig‘gaussian‘);
title(‘圖1?含噪圖像‘);
%?%平穩小波分解,分解層
[sign1_ll?sign1_lh?sign1_hl?sign1_hh]=SWT2(sig_n3‘db4‘);
%?%?%求取HH1中的噪聲方差
for?n=1:3
delta(n)=0?;
delta(n)=median(median(abs(sign1_hh(::n))))/0.6745;
delta(n)=delta(n)^2;
end
%%求各層信號的方差
for?n=1:3
????sum_ll(n)=0;
????????sum_lh(n)=0;
????????????sum_hl(n)=0;
????????????????sum_hh(n)=0;????????????????
????
????for?i=1:M_sig
????????for?j=1:N_sig
????????????sum_hh(n)=sum_hh(n)+sign1_hh(ijn)^2;
????????????sum_lh(n)=sum_lh(n)+sign1_lh(ijn)^2;
????????????sum_hl(n)=sum_hl(n)+sign1_hl(ijn)^2;
????????????sum_ll(n)=sum_ll(n)+sign1_ll(ijn)^2;
????????end
????end
????sum_ll(n)=sum_ll(n)/(M_sig*N_sig);
????????sum_lh(n)=sum_lh(n)/(M_sig*N_sig);
????????????sum_hl(n)=sum_hl(n)/(M_sig*N_sig);
????????????????sum_hh(n)=sum_hh(n)/(M_sig*N_sig);
????????????????
????????????????sigdelta_ll(n)=sqrt(max(sum_ll(n)-delta(n)1e-6));%%各層信號方差
????????????????sigdelta_lh(n)=sqrt(max(sum_lh(n)-delta(n)1e-6));
????????????????sigdelta_hl(n)=sqrt(max(sum_hl(n)-delta(n)1e-6));
????????????????sigdelta_hh(n)=sqrt(max(sum_hh(n)-delta(n)1e-6));
end
%%
%求取各個小波系數的比例gama
p=1;
for?n=1:3
????max_ll(n)=max(max(abs(sign1_ll(::n))));
????max_lh(n)=max(max(abs(sign1_lh(::n))));
????max_hl(n)=max(max(abs(sign1_hl(::n))));
????max_hh(n)=max(max(abs(sign1_hh(::n))));????
?????
????for?i=1:M_sig
????????for?j=1:N_sig????????????
?????????????k_ll(ijn)=abs(sign1_ll(ijn)/max_ll(n))^p;
?????????????k_lh(ijn)=abs(sign1_lh(ijn)/max_lh(n))^p;
?????????????k_hl(ijn)=abs(sign1_hl(ijn)/max_hl(n))^p;
?????????????k_hh(ijn)=abs(sign1_hh(ijn)/max_hh(n))^p;
????????????
????????????%各個小波系數的閾值閾值隨小波系數的變化而變化,小波系數大,閾值小,反之閾值大
????????????Tgama_ll(ijn)=1/sqrt(1+k_ll(ijn));
?????????????Tgama_lh(ijn)=1/sqrt(1+k_lh(ijn));
?????????????Tgama_hl(ijn)=1/sqrt(1+k_hl(ijn));
????????????Tgama_hh(ijn)=1/sqrt(1+k_hh(ijn));???
?????????????Tgama_ll(ijn)=0;
????????????T_ll(ijn)=Tgama_ll(ijn)*delta(n)/sigdelta_ll(n);
????????????T_lh(ijn)=Tgama_lh(ijn)*delta(n)/sigdelta_lh(n);
????????????T_hl(ijn)=Tgama_hl(ijn)*delta(n)/sigdelta_hl(n);
????????????T_hh(ijn)=Tgama_hh(ijn)*delta(n)/sigdelta_hh(n);
????????????
???????????????
????????????
??????????
????????end
????end
end
%計算不同層次,不同小波系數的閾值
scale=1;
for?n=1:3
????for?i=1:M_sig
????????for?j=1:N_sig
???????????????%閾值處理
???????????????if?sign1_ll(ijn)==0
???????????????????sign1_ll(ijn)=0;
???????????????else
???????????????????sign1_ll1(ijn)=(sign1_ll(ijn)/abs(sign1_ll(ijn)))*max((abs(sign1_ll(ijn))-?scale*T_ll(ijn))0);
???????????????????
???????????????
???????????????end
???????????????
????????????????if?sign1_lh(ijn)==0
???????????????????sign1_lh(ijn)=0;
?????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4097??2010-03-28?11:12??scadaptiveBay.m
-----------?---------??----------?-----??----
?????????????????4097????????????????????1
- 上一篇:自適應小波閾值算法matlab源碼
- 下一篇:無線傳感器網絡定位算法matlab代碼
評論
共有 條評論