• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: Matlab
  • 标签: CS  MP  matlab  

资源简介

不错的学习资料,对刚接触压缩感知的人来说是很好的选择

资源截图

代码片段和文件信息

%%原理:目标是从y=Phi*x中重建稀疏的x,MP与OMP都是通过确定Phi的哪一列参与测量向量y
%中来确定x的支撑,运用贪婪模式去确定每一列。在每次迭代中,选择phi中与y的剩余部分最相关的列
%然后从y中抽取该列对y的贡献再对其冗余迭代。
%1-D信号压缩感知重建算法MP 

%测量数M>=K*log(N/K)K是稀疏度,N是信号长度

%输入:感知矩阵(测量矩阵)Phi测量向量y稀疏度K
%输出:x的k稀疏度的逼近signal_reconstruct误差向量r_n

%原来的程序没有考虑到观测矩阵的列向量相当于一个原子的时候,把残差值投影到原子上面的
%时候,原子是单位向量才能用内积大小来比较投影系数大小,所以观测矩阵要归一化,
%这个算法才是有效的。



clc;clear

%%  1. 时域测试信号生成
%产生长度为N=256的稀疏信号,其稀疏度K=23。且这23个非零值随机分布于信号256个位置
%观测向量y的长度M=80,即采样率M/N=0.3
N=256;
K=23;
M=80;

x = zeros(N1);
q = randperm(N);
x(q(1:K)) =randn(K1);    %原始信号

%% 2. 测量矩阵 及观测值获得
% Phi=DFTmatx(MN); %测量矩阵 %  感知矩阵(高斯分布白噪声)M*N
% matrixNorm = Phi.‘*Phi;
% matrixNorm = sqrt(diag(matrixNorm)).‘;
% Phi = Phi./repmat(matrixNorm [M1]);
Phi = sqrt(1/M) * randn(MN);
for i = 1:N
    Phi(:i) = Phi(:i) / norm(Phi(:i));
end
y=Phi*x ;    

评论

共有 条评论