function cs
clc;
clear
k=8; % 稀疏度
n=256; % 訊號長度
m=64; % 測量數
f1=50; % 訊號頻率1
f2=100; % 訊號頻率2
f3=200; % 訊號頻率3
f4=400; % 訊號頻率4
fs=800; % 取樣頻率
ts=1/fs; % 取樣間隔
ts=1:n; % 取樣序列
x=0.2*sin(2*pi*f1*ts*ts)+0.4*sin(2*pi*f2*ts*ts)+0.6*sin(2*pi*f3*ts*ts)+0.9*sin(2*pi*f4*ts*ts); % 完整訊號
phi=randn(m,n); % 測量矩陣(高斯分布白雜訊)
s=phi*x.'; % 獲得線性測量
m=2*k; % 演算法迭代次數(m>=k)
psi=fft(eye(n,n))/sqrt(n);
t=phi*psi';
hat_y=zeros(1,n); % 待重構的譜域(變換域)向量
aug_t=; % 增量矩陣(初始值為空矩陣)
r_n=s;
%% 重構
for times=1:m;
for col=1:n;
product(col)=abs(t(:,col)'*r_n);
end[val,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; % 紀錄最大投影係數的位置
endhat_y(pos_array)=aug_y; % 重構的譜域向量
hat_x=real(psi'*hat_y.'); % 做逆傅利葉變換重構得到時域訊號
figure(1);
hold on;
plot(hat_x,'.-') % 重建訊號
plot(x,'r'); % 原始訊號
legend('原始訊號','恢復訊號')
norm(hat_x.'-x)/norm(x) % 重構誤差
壓縮感知重構演算法之子空間追蹤 SP
題目 壓縮感知重構演算法之子空間追蹤 sp 如果掌握了壓縮取樣匹配追蹤 cosamp 後,再去學習子空間追蹤 subspace pursuit 是一件非常簡單的事情,因為它們幾乎是完全一樣的。sp的提出時間比cosamp提出時間略晚,首個 版本是參考文獻 1 後來更新了兩次,最後在ieee tran...
壓縮感知重構演算法之SP演算法python實現
壓縮感知重構演算法之omp演算法python實現 壓縮感知重構演算法之cosamp演算法python實現 壓縮感知重構演算法之sp演算法python實現 壓縮感知重構演算法之iht演算法python實現 壓縮感知重構演算法之ols演算法python實現 壓縮感知重構演算法之irls演算法python...
壓縮感知簡介
nyquist取樣定理 夏農取樣定理 指出,取樣速率達到訊號頻寬的兩倍以上時,才能由取樣訊號精確重建原始訊號。可見,頻寬是nyquist 取樣定理對取樣的本質要求。然而隨著人們對資訊需求量的增加,攜帶資訊的訊號頻寬越來越寬,以此為基礎的訊號處理框架要求的取樣速率和處理速度也越來越高。解決這些壓力常見...