资源简介
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
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论