- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
压缩感知重构算法之正则化正交匹配追踪(ROMP)
“
正交匹配追踪算法每次迭代均只选择与残差最相关的一列,自然人们会想:每次迭代是否可以多选几列
”(RegularizedOMP)
呢,正则化正交匹配追踪就是其中一种改进方法。本篇将在上一篇《压缩感知重构算法之正交
匹配追踪(OMP)》的基础上给出正则化正交匹配追踪(ROMP)算法的MATLAB函数代码,并且给出单次测试例程
代码、测量数M与重构成功概率关系曲线绘制例程代码。
0、符号说明如下:
压缩观测y=Φx,其中y为观测所得向量M×1,x为原信号N×1(MN)。x一般不是稀疏的,但在某个变
换域Ψ是稀疏的,即x=Ψθ,其中θ为K稀疏的,即θ只有K个非零项。此时y=ΦΨθ,令A=ΦΨ,则y=Aθ。
(1)y为观测所得向量,大小为M×1
(2)x为原信号,大小为N×1
(3)θ为K稀疏的,是信号在x在某变换域的稀疏表示
(4)Φ称为观测矩阵、测量矩阵、测量基,大小为M×N
(5)Ψ称为变换矩阵、变换基、稀疏矩阵、稀疏基、正交基字典矩阵,大小为N×N
(6)A称为测度矩阵、传感矩阵、CS信息算子,大小为M×N
上式中,一般有KMN,后面三个矩阵各个文献的叫法不一,以后我将Φ称为测量矩阵、将Ψ称为稀疏矩
阵、将A称为传感矩阵。
1、ROMP重构算法流程:
正则化正交匹配追踪(ROMP)算法流程与OMP的最大不同之处:就在于从传感矩阵A中选
择列向量的标准,OMP每次只选择与残差内积绝对值最大的那一列,而ROMP则是先选出
内积绝对值最大的K列(若所有内积中不够K个非零值则将内积值非零的列全部选出),然后
再从这K列中按正则化标准再选择一遍,即为本次迭代选出的列向量(一般并非只有一
列)。
正则化标准:意思是选择各列向量与残差的内积的绝对值的最大值不能比最小值大两
倍以上(comparablecoordinates)且能量最大的一组(withthemaximalenergy),因为满足条
件的子集并非只有一组。似乎用叙述语言描述不清楚,下面给出一种实现第(2)(3)步的算法流程图(此算法并
非本人原创,参考网络代码[2][3],本人将代码中的思想进行整理,画出此流程图,方便初学者快速掌握学习
ROMP算法):
我将原子选择过程封装成了一个MATLAB函数,代码如下(Regularize.m):
1.function[val,pos]=Regularize(product,Kin)
2.%RegularizeSummaryofthisfunctiongoeshere
3.%Detailedexplanationgoeshere
4.%product=A*r_n;%传感矩阵A各列与残差的内积
5.%K为稀疏度
6.%pos为选出的各列序号
7.%val为选出的各列与残差的内积值
8.%Reference:NeedellD,VershyninR.Uniformuncertaintyprincipleand
9.%signalrecoveryviaregularizedorthogonalmatchingpursuit.
10.%FoundationsofComputationalMathematics,2009,9(3):317-334.
11.productabs=abs(product);%取绝对值
12.[productdes,indexproductdes]=sort(productabs,descend);%降序排列
13.forii=length(productdes):-1:1
14.ifproductdes(ii)1e-6%判断productdes中非零值个数
15.break
文档评论(0)