正交匹配追蹤 OMP 算法原理分析

小序           

           最近研究OMP貪婪迭代算法找了Rachel-Zhang的一篇博客“壓縮感知” 之 “Hello World”     裏面講到了作者對OMP算法的理解,看完之後有所啓發但是有些地方依然不理解,畢竟大牛作者不喜說的很詳細,菜鳥看不懂也很常見,所以自己查了一些資料,這裏做個更詳細的分析,僅供菜鳥分享。

        上文地址爲:http://blog.csdn.net/abcjennifer/article/details/7775284    

        另外本人碩士課題方向爲壓縮感知框架下多模板的超寬帶信道估計,有同道的朋友可以共同交流

 

正文:

           代碼作者爲香港大學電子工程系沙威,發送信號x爲若干個不同週期的正弦波的線性疊加,且假定了接收端與發射端之間無噪聲

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

程序運行結果:  藍色爲原始信號,紅色爲恢復信號,可見該算法可以高精度的恢復原始信號。

 

   

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

下面介紹Orthogonal Matching Pursuit 算法:

        正交匹配追蹤算法迭代的基本思想就是每次迭代過程中從全息矩陣T中選出與測量信號s相關度(內積)最大的那一列,然後從T中去掉該列並加入到擴充矩陣Aug_t中,然後利用最小二乘法原理求出使殘差r_n=s-Aug_t*aug_y最小的一個估計aug_y,然後不斷的從T中減去相關列重複以上過程,直到達到迭代次數m結束。

        本人開始不理解爲什麼最小二乘法的求出的估計量就會使殘差最小,於是查閱最小二乘法原理如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

     

 

 

 

 

 

 

 

 

 

仔細看過推到那想必就會理解式aug_y=(Aug_t'*Aug_t)*Aug_t'*s爲什麼能得到最優解了,那麼我們所說的最小殘差r_n=s-Aug_t*aug_y  也就合理了       

          下面OMP代碼的按行分析

 for times=1:m;                                         

    for col=1:N;                                             搜尋恢復矩陣的所有列向量
        product(col)=abs(T(:,col)'*r_n)/(T(:,col)'*T(:,col));           找出該矩陣中與殘差相關度最大的那一列

    end
     [val,pos]=max(product);                        
  最大投影係數對應的位置

    Aug_t=[Aug_t,T(:,pos)];                           相關度最大的那一列加入到擴充矩陣Aug_t   

    T(:,pos)=zeros(M,1);                                選中的最大列置零  

   aug_y=(Aug_t'*Aug_t)*Aug_t'*s;               最小二乘,使殘差最小  該處假設正在迭代第k次那麼  

                                                                                     aug_y(k*1維)=(Aug_t'(k*N維) * Aug_t(N*k維))*  Aug_t'(k*N維) *   s(N*1維)

     r_n=s-Aug_t*aug_y;                              殘差 

    pos_array(times)=pos;                            紀錄最大投影係數的位置
end
hat_y(pos_array)=aug_y;                            重構的譜域向量       最後一次迭代生成的aug_y(m*1維)按照 pos_array排列之後就是想到的恢復信號hat_y
hat_x=real(Psi'*hat_y.');                             
 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章