資源簡介
omp可運行程序(m格式)

代碼片段和文件信息
function?[y]?=?BCS(?xK?)
%BCS?貝葉斯壓縮感知法(Bayesian?Compressive?Sensing)
%???x:原始信號
%???K:稀疏度,從FFT可以看出
%???y:重構(gòu)信號
%??測量數(shù)M>=K*log(N/K)K是稀疏度N信號長度可以近乎完全重構(gòu)
NN?=?length(x);
%?M?=?K*log(N/k);
M?=?64;
PHI?=?randn(MNN);
fx?=?fft(x);????????%??求信號的頻譜
fx_r?=?real(fx);????%??頻譜的實部,幅頻信號
fx_i?=?imag(fx);????%??頻譜的虛部,相頻信號????
t?=?PHI*fx_r‘;
sigma2?=?std(t)^2/1e2;%標準差
eta?=?1e-8;
%?尋找初始值
[NM]?=?size(PHI);
PHIt?=?PHI‘*t;
PHI2?=?sum(PHI.^2)‘;
ratio?=?(PHIt.^2)./PHI2;
[maxrindex]?=?max(ratio);
alpha?=?PHI2(index)/(maxr-sigma2);
%?計算初始均值、方差
phi?=?PHI(:index);
Hessian?=?alpha?+?phi‘*phi/sigma2;
Sig?=?1/Hessian;
mu?=?Sig*PHIt(index)/sigma2;
left?=?PHI‘*phi/sigma2;
S?=?PHI2/sigma2-Sig*left.^2;
Q?=?PHIt/sigma2-Sig*PHIt(index)/sigma2*left;
%
for?count?=?1:10000
????s?=?S;?q?=?Q;
????s(index)?=?alpha.*S(index)./(alpha-S(index));
????q(index)?=?alpha.*Q(index)./(alpha-S(index));
????theta?=?q.^2-s;
????%?根據(jù)最大似然估計選擇下一次迭代的alpha
????ml?=?-inf*ones(1M);
????ig0?=?find(theta>0);
????%?重新估計的下標集
????[irefoowhich]?=?intersect(ig0index);
????if?~isempty(ire)
????????Alpha?=?s(ire).^2./theta(ire);
????????delta?=?(alpha(which)-Alpha)./(Alpha.*alpha(which));
????????ml(ire)?=?Q(ire).^2.*delta./(S(ire).*delta+1)-log(1+S(ire).*delta);
????end
????%?保留的下標集
????iad?=?setdiff(ig0ire);
????if?~isempty(iad)
????????ml(iad)?=?(Q(iad).^2-S(iad))./S(iad)+log(S(iad)./(Q(iad).^2));
????end
????is0?=?setdiff([1:M]ig0);
????%?去除的下標集
????[idefoowhich]?=?intersect(is0index);
????if?~isempty(ide)
????????ml(ide)?=?Q(ide).^2./(S(ide)-alpha(which))-log(1-S(ide)./alpha(which));
????end
????[ML(count)idx]?=?max(ml);
????%?檢查是否滿足停止迭代條件
????if?count?>?2?&?abs(ML(count)-ML(count-1))?????????break;
????end
????%?更新?alphas
????which?=?find(index==idx);
????if?theta(idx)?>?0
????????if?~isempty(which)?%?重新估計
????????????Alpha?=?s(idx)^2/theta(idx);
????????????Sigii?=?Sig(whichwhich);?mui?=?mu(which);?Sigi?=?Sig(:which);
????????????delta?=?Alpha-alpha(which);
????????????ki?=?delta/(1+Sigii*delta);
????????????mu?=?mu-ki*mui*Sigi;
????????????Sig?=?Sig-ki*Sigi*Sigi‘;
????????????comm?=?PHI‘*(phi*Sigi)/sigma2;
????????????S?=?S?+?ki*comm.^2;
????????????Q?=?Q?+?ki*mui*comm;
????????????%
????????????alpha(which)?=?Alpha;
????????else?%?保留
????????????Alpha?=?s(idx)^2/theta(idx);
????????????phii?=?PHI(:idx);?Sigii?=?1/(Alpha+S(idx));?mui?=?Sigii*Q(idx);
????????????comm1?=?Sig*(phi‘*phii)/sigma2;
????????????ei?=?phii-phi*comm1;
????????????off?=?-Sigii*comm1;
????????????Sig?=?[Sig+Sigii*comm1*comm1‘?off;?off‘?Sigii];
????????????mu?=?[mu-mui*comm1;?mui];
????????????comm2?=?PHI‘*ei/sigma2;
????????????S?=?S?-?Sigii*comm2.^2;
????????????Q?=?Q?-?mui*comm2;
????????????index?=?[index;idx];
????????????alpha?=?[alpha;Alpha];
????????????phi?=?[phiphii];
????????end
????else
????????if?~isempty(which)?%?去除
????????????Sigii?=?Sig(whichwhich);?mui?=?mu(which
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-06-17?21:27??可運行程序(m格式)\
?????文件???????19433??2017-06-17?21:32??可運行程序(m格式)\1.fig
?????文件??????186051??2017-06-17?21:32??可運行程序(m格式)\1.tif
?????文件???????20464??2017-06-17?21:32??可運行程序(m格式)\2.fig
?????文件??????178469??2017-06-17?21:32??可運行程序(m格式)\2.tif
?????文件???????28695??2017-06-17?21:32??可運行程序(m格式)\3.fig
?????文件??????186031??2017-06-17?21:32??可運行程序(m格式)\3.tif
?????文件???????20627??2017-06-17?21:32??可運行程序(m格式)\4.fig
?????文件??????189167??2017-06-17?21:32??可運行程序(m格式)\4.tif
?????文件???????28840??2017-06-17?21:32??可運行程序(m格式)\5.fig
?????文件??????186289??2017-06-17?21:32??可運行程序(m格式)\5.tif
?????文件???????16919??2017-06-17?21:32??可運行程序(m格式)\6.fig
?????文件??????108603??2017-06-17?21:32??可運行程序(m格式)\6.tif
?????文件????????3692??2017-01-15?11:03??可運行程序(m格式)\BCS.m
?????文件????????3527??2017-01-15?11:05??可運行程序(m格式)\BCS2.m
?????文件????????2154??2017-01-14?16:52??可運行程序(m格式)\OMP.m
?????文件????????2184??2017-01-14?21:43??可運行程序(m格式)\OMP2.m
?????文件?????????281??2017-01-10?19:28??可運行程序(m格式)\lfm_sign.m
?????文件?????????348??2017-01-11?00:04??可運行程序(m格式)\n_fre_sign.m
?????文件????????3149??2017-01-15?10:59??可運行程序(m格式)\rebuild.m
?????文件????????4784??2017-01-15?10:59??可運行程序(m格式)\rebuild_test.m
?????文件????????4773??2017-01-15?10:59??可運行程序(m格式)\rebuild_test2.m
評論
共有 條評論