1壓縮感知理論基礎
壓縮感知(cs)技術處理訊號的過程一般分為以下三個步驟:①訊號的稀疏表示。cs要求訊號具有稀疏性,若原始訊號是稀疏的,則可直接用於後續操作;若原始訊號具有稀疏性但不是稀疏的,則利用稀疏基將其稀疏化;②觀測矩陣(也稱測量矩陣)。觀測矩陣用於對原始訊號進行壓縮取樣;③重構方法。重構是指從少量資訊中恢復出大量資料,cs具有多種重構方法。圖1是cs數學框架示意圖。
2 omp演算法原理
正交匹配跟蹤(omp)演算法是一種貪婪演算法,其基本思想是在迭代過程中,每一次從感知矩陣a選擇與殘差餘量最匹配的乙個原子(即與殘差最相關的列),來構建稀疏訊號,並計算出新的殘差餘量。由於每次只選擇乙個原子,因此被選擇的原子與殘差餘量幾乎正交,為保證不重複選擇此原子,需從感知矩陣中刪除這一列,然後再繼續挑選與訊號殘差最匹配的一列,迴圈迭代,直至殘差低於迭代停止條件。omp方法的具體流程圖如表1所示:
3 omp演算法**
function [ theta ] = cs_omp(y,a,t )
% detailed explanation goes here
% y = phi * x
% x = psi * theta
% y = phi*psi * theta
% 令 a = phi*psi, 則y=a*theta
% 現在已知y和a,求theta
[y_rows,y_columns] = size(y); %矩陣y的大小為y_rows,y_columns
if y_rows
y = y'; %y shouldbe a column vector
end
[m,n] = size(a); %感測矩陣a為m*n矩陣
theta = zeros(n,1); %用來儲存恢復的theta(一行n列向量,全0)
at = zeros(m,t); %用來迭代過程中儲存a被選擇的列
pos_theta = zeros(1,t); %用來迭代過程中儲存a被選擇的列序號
r_n = y; %初始化殘差(residual)為y
for ii=1:t %迭代t次,t為輸入引數
product = a'*r_n; %感測矩陣a各列與殘差的內積
[val,pos] = max(abs(product)); %找到最大內積絕對值,即與殘差最相關的列
at(:,ii) = a(:,pos); %儲存這一列
pos_theta(ii) = pos; %儲存這一列的序號
a(:,pos) = zeros(m,1); %清零a的這一列,其實此行可以不要,因為它與殘差正交
%y=at(:,1:ii)*theta,以下求theta的最小二乘解(least square)
theta_ls =(at(:,1:ii)'*at(:,1:ii))^(-1)*at(:,1:ii)'*y;%最小二乘解
%at(:,1:ii)*theta_ls是y在at(:,1:ii)列空間上的正交投影
r_n = y - at(:,1:ii)*theta_ls;%更新殘差
end
theta(pos_theta)=theta_ls;%恢復出的theta
end
4 實驗結果
實驗結果表明,omp演算法可以對稀疏訊號進行恢復並能達到較高的恢復精度。
王帥,重慶大學無線通訊技術實驗室碩士研究生,主研方向為智慧型訊號與資訊處理。
壓縮感知重構演算法之SP演算法python實現
壓縮感知重構演算法之omp演算法python實現 壓縮感知重構演算法之cosamp演算法python實現 壓縮感知重構演算法之sp演算法python實現 壓縮感知重構演算法之iht演算法python實現 壓縮感知重構演算法之ols演算法python實現 壓縮感知重構演算法之irls演算法python...
壓縮感知簡介
nyquist取樣定理 夏農取樣定理 指出,取樣速率達到訊號頻寬的兩倍以上時,才能由取樣訊號精確重建原始訊號。可見,頻寬是nyquist 取樣定理對取樣的本質要求。然而隨著人們對資訊需求量的增加,攜帶資訊的訊號頻寬越來越寬,以此為基礎的訊號處理框架要求的取樣速率和處理速度也越來越高。解決這些壓力常見...
壓縮感知介紹
說明 本文是根據壓縮感知討論群裡面 180291507感興趣的同學可以加下,裡面大牛很多,大家加入到那個群裡面去,你會從裡面的大神那裡學習到不少東西的。的大牛ammy講解整理的 最初的壓縮感知是由candes donoho他們提出來的問題 最初壓縮感知那幾篇文章裡的模型 y x 模型一 都是從純數學...