function [omp_result, support, residual_error] =StOMP(Sc, dictionary_matrix, S, Pfa)
% Sc表观测
% dictionary_matrix表超完备矩阵
% iteration表迭代次数
% S稀疏度
residual_error=Sc;%残差
support = [];
omp_result=zeros(size(dictionary_matrix,2),1);
Tfa = sqrt(2*log10(1/Pfa));
for k=1:10 %迭代10次
support_0 = [];
inner_product=dictionary_matrix'*residual_error;
nrm = norm(inner_product);
% nrm = norm(residual_error);
Threshold = Tfa*nrm/sqrt(length(inner_product));
amplitude = abs(inner_product);
for kk=1:length(amplitude)
if amplitude(kk) > Threshold
support_0 = union(support_0,kk);
end
end
support=union(support,support_0);
R = pinv(dictionary_matrix(:,support))*Sc;
residual_error=Sc-dictionary_matrix(:,support)*R;
if isempty(support_0)
break;
end
end
omp_result(support)=R;
%omp_result(support)=dictionary_matrix(:,support)'*Sc';
StOMP.zip_site:www.pudn.com_stOMP算法 MATLAB_stomp_stomp matlab_st
版权申诉
154 浏览量
2022-07-15
10:26:26
上传
评论
收藏 598B ZIP 举报
JaniceLu
- 粉丝: 78
- 资源: 1万+
最新资源
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- Docker在Ubuntu16.04上安装和部署Apache Storm
- test_kong.zip
- springboot权限验证学习-下
- SeetaFace6人脸质量评估C++代码实现Demo
- OCAuxiliaryTools
- 制药公司QC顶岗实习专题报告
- Rust 全面指南:从基础到高级,一网打尽 Rust 的编程知识
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0