omp演算法:
% omp的函式
% s-測量;t-觀測矩陣;n-向量大小
function hat_y=omp_fun(s,t,k)
n = size(t,2);
size=size(t); % 觀測矩陣大小
m=size(1); % 測量
hat_y=zeros(1,n); % 待重構的譜域(變換域)向量
aug_t=; % 增量矩陣(初始值為空矩陣)
r_n=s; % 殘差值
for times=1:k % 迭代次數(稀疏度是測量的1/4)
for col=1: n % 恢復矩陣的所有列向量
product(col)=abs(t(:,col)'*r_n); % 恢復矩陣的列向量和殘差的投影係數(內積值)
end[~, pos]=max(product); % 最大投影係數對應的位置
aug_t=[aug_t,t(:,pos)]; % 矩陣擴充
t(:,pos)=zeros(m,1); % 選中的列置零(實質上應該去掉,為了簡單我把它置零)
aug_y=(aug_t'*aug_t)^(-1)*aug_t'*s; % 最小二乘,使殘差最小
r_n=s-aug_t*aug_y; % 殘差
pos_array(times)=pos; % 紀錄最大投影係數的位置
if sum(r_n.^2) < 1e-6 % 殘差足夠小
break;
endendhat_y(pos_array)=aug_y; % 重構的向量
end
OMP演算法筆記
1 數理知識基礎 投影矩陣 詳見 原文 結論假設 某空間中線性無關的向量組成的矩陣為a,則a的投影矩陣為 則,向量x在空間中的投影為 px px可以看做x在空間a上的投影係數,所以在omp中,將px視為稀疏表示的係數。通過與最小二乘的比較,發現,px與最小二乘解一致,此間聯絡,值得挖掘 2 omp演...
MP演算法與OMP演算法
稀疏編碼的一般最優化公式為 其中的零範數為非凸優化。那麼如何解這麼乙個非凸優化問題呢?其中乙個常用的解法就是mp演算法。mp演算法是一種貪心演算法 greedy 每次迭代選取與當前樣本殘差最接近的原子,直至殘差滿足一定條件。首先解決兩個問題,怎麼定義 最接近原子 怎麼計算殘差?選擇最接近殘差的原子 ...
OMP演算法學習筆記
參考文獻 介紹 omp演算法用於訊號恢復的稀疏近似,假設s rd的稀疏度為 k 是n 個測量向量,rn d 是乙個測量矩陣,測量值v s,也就是說 rn d 是字典矩陣的 m 個列向量的線性組合。演算法的思想是對於訊號s rd,我們要確定 rn d 的哪幾列參與到了 v 的測量中來,以貪婪迭代的方式...