壓縮感知OMP演算法 OMP演算法的Matlab版本

2021-09-22 17:42:12 字數 1288 閱讀 3958

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 的測量中來,以貪婪迭代的方式...