资源简介

一个基础贝叶斯变换的压缩感知,包含一个源代码和一个一维信号处理的例子和两个二维图像的例子

资源截图

代码片段和文件信息

function [theta posterior bound]=BCSvb(Phi v hyperpara niter tol plotflag)
%BCSvb: Bayesian CS inversion implemented by variational Bayes.
%USAGE: [theta posterior bound]=BCSvb(Phi v hyperpara niter tol plotflag)
%INPUT (number in [] means default value):  
%   Phi: N x M CS projection matrix
%   v: N x 1 CS observation
%   hyperpara: VB hyperparameters
%       hyperpara.a0: scalar hyperparameter 1 for noise precision [1e-6]
%       hyperpara.b0: scalar hyperparameter 2 for noise precision [1e-6]
%       hyperpara.c0: scalar hyperparameter 1 for non-zero coefficients precision [1e-6] 
%       hyperpara.d0: scalar hyperparameter 2 for non-zero coefficients precision [1e-6] 
%   niter: scalar maximum number of VB iterations [100]
%   tol: scalar tolarance of relative change of VB lower bound for two consecutive steps [1e-4] 
%   plotflag: indicator one means plotting result for each iteration zero means no plot [0] 
%OUTPUT:
%   theta: M x 1 mean of reconstructed signal
%   posterior: hyperparameter for posterior distribution
%       posterior.MUtheta: M x 1 mean of inverted theta 
%       posterior.VARtheta_diag: M x 1 variance of inverted theta (for each coefficient)
%       posterior.a: scalar posterior hyperparameter 1 for noise precision
%       posterior.b: scalar posterior hyperparameter 2 for noise precision
%       posterior.c: M x 1 posterior hyperparameter 1 for coefficient precision
%       posterior.d: M x 1 posterior hyperparameter 2 for coefficient precision
%   bound: 1 x (number of VB iterations) VB lower bound for each iteration

%--------------------------------------------------------------------------
% References:
% S.Ji Y.Xue and L.Carin “Bayesian Compressive Sesning“ (2007).
% L.He and L.Carin “Exploiting Structure in Wavelet-based Bayesian Compressive Sensing“ (2008)  
%
% Lihan He ECE Duke University
% Created: Nov. 21 2008
% Last change: Mar. 3 2009 allowing [] for input arguments (using default value)
%--------------------------------------------------------------------------

% ---------------------
% check input arguments
% ---------------------

if nargin<6 plotflag=0; end
if nargin<5 tol=1e-4; end
if nargin<4 niter=100; end
if nargin<3
    hyperpara.a0=1e-6;
    hyperpara.b0=1e-6;
    hyperpara.c0=1e-6;
    hyperpara.d0=1e-6;
end

if isempty(hyperpara)
    hyperpara.a0=1e-6;
    hyperpara.b0=1e-6;
    hyperpara.c0=1e-6;
    hyperpara.d0=1e-6;
end
if isempty(niter) niter=100; end
if isempty(tol) tol=1e-4; end
if isempty(plotflag) plotflag=0; end

a0=hyperpara.a0;
b0=hyperpara.b0;
c0=hyperpara.c0;
d0=hyperpara.d0;

[NM] = size(Phi);  % N - number of CS measurements; M - sparse signal length

% --------------
% Initialization
% --------------

MUtheta=zeros(M1);
VARtheta_diag=d0/c0*ones(M1);

c=c0*ones(M1);
d=d0*ones(M1);

a=a0;
b=b0;

%---------------
% precomputation
%---------------
Phi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        4812  2009-03-03 15:02  BCSvb.m
     文件       65551  2002-12-03 07:45  cameraman.pgm
     文件        2215  2009-03-03 15:45  demo_BCSvb_1d.m
     文件        1778  2009-03-03 15:46  demo_BCSvb_2d.m
     文件        1786  2009-03-03 15:46  demo_BCSvb_2d_small.m
     文件       65610  2002-12-03 04:04  indor2.pgm
     文件         564  2009-03-03 16:53  readme.txt

评论

共有 条评论