资源简介
EXCOVapp算法是EXCOV的改进新,算法功能比EXCOV好,费了好久找到的
代码片段和文件信息
function [s_hatsigma2_hatA_indexCount]=ExCoVapp(Hyvarargin)
%Approx. ExCoV routine:
%Coded by Kun Qiu (kqiu@iastate.edu)
%updated Feb 14 2009
%Function usage
%=======================================================
%INPUT(compulsory):
%H: the sensing matrix
%y: the measurement column vector
%
%INPUT(optional):
%‘Noi_Cov‘: the N by N noise covariance structure matrix
% (default=eye(N))
%‘FIR_len‘: the size of moving average window
% (default=10)
%‘Init_mode‘: type of initial sparsity support (valued in {01})
% 0: initialize with empty set
% 1: initialize with a crude high level signal components support estimate
% (default=1)
%‘Visibility‘: Option to see visually the reconstrution process (valued in {01})
% 0: work silently
% 1: work openly
% (default=1)
%========================================================
%OUTPUT:
%s_hat: the signal esitmate
%sigma2_hat: the noise variance estimate
%A_index: the estimated set of high level signal components
%Count: Count of number of iterations
%========================================================
if (nargin-length(varargin))~=2
error(‘Missing required inputs!‘);
end
[Nm]=size(H);
%Setting default values for the optional inputs
C=eye(N);
FIR_len=10;
Init_mode=1;
Visibility=1;
%Read the optional inputs
if (rem(length(varargin)2)==1)
error(‘Optional inputs must go by pairs!‘);
else
for i=1:2:(length(varargin)-1)
switch upper(varargin{i})
case upper(‘Noi_Cov‘)
C=varargin{i+1};
case upper(‘FIR_len‘)
FIR_len=varargin{i+1};
case upper(‘Init_mode‘)
Init_mode=varargin{i+1};
case upper(‘Visibility‘)
Visibility=varargin{i+1};
otherwise
error([‘Unrecognized optional input: ‘‘‘ varargin{i} ‘‘‘‘]);
end
end
end
Inv_HH=inv(H*H‘);
C_inv=inv(C);
scale=sqrt(N/(y‘*C_inv*y));
y=scale*y;
%Initialization
if Init_mode
ma=floor(0.5*N/log(m/N));
else
ma=1;
end
mb=m-ma;
u=H‘*Inv_HH*y;
u_sort=sort(abs(u)‘descend‘);
A_index=find(abs(u)>=u_sort(ma))‘;
B_index=1:m;
B_index(A_index)=[];
HA=H(:A_index);
HB=H(:B_index);
s_A_init=u(A_index);
sigma2=(y-HA*s_A_init)‘*C_inv*(y-HA*s_A_init)/N;
delta2_a=10*sigma2*ones(ma1)./diag(HA‘*HA);
expand=1;
compress=0;
exit_flag=0;
Count=0;
p=0;
A_index_record_pre=[];
GML_star=-inf;
GML_record=-inf;
if Visibility
figure(1)
set(gcf‘color‘‘w‘);
subplot(211);
plot(-inf-inf);
axis([0N0500]);
xlabel(‘Sparsity‘‘Fontsize‘12);
ylabel(‘GL‘‘Fontsize‘12);
title(‘Now
相关资源
- 基于matlabGUI的小车倒立摆pid控制
-
同步发电机Matlab/simuli
nk仿真 - 经纬度转高斯平面坐标
- siftmatlab算法实现
- 竞争性自适应重加权
- 粒子群算法优化RBF网络matlab源码
- 基于MATLAB的N路信号频分复用系统的设
- 《信息隐藏技术实验教程》MATLAB源码
- MATLAB经典法功率谱密度估计
- PSAT工具软件
- MATLAB课程设计水果识别项目
- MATLAB信号处理EEMD工具箱
- VANET仿真,用matlab实现仿真测试的源码
- 针对栅格路径规划的蚁群算法MATLAB
- 基于傅里叶叠层的图像重建算法matl
- ieee14节点的潮流计算
- 四元数(quaternion)的Matlab工具箱
- madgwick_传感器融合算法_matlab
- 灰狼优化算法求解柔性作业车间问题
- 遗传算法GA车间调度Matlab代码
- EMD matlab实现源码
- 贝叶斯分类器Matlab实现113478
- matlab模板匹配车牌识别
- 刘慧颖 MATLAB R2007基础教程
- MATLAB电机仿真精华50例源代码
- zw_支持向量机与朴素贝叶斯算法matl
- 循环码编码
- jnd算法,最小可觉差
- 基于matlab的手势识别系统
- 空间面板计量
评论
共有 条评论