• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: Matlab
  • 标签: 基追踪  BP  

资源简介

该代码是压缩感知重构算法基追踪(BP),注释很详细,可以直接运行

资源截图

代码片段和文件信息

%一维信号BP重构算法
clc
clear all;
close all;
M = 256;   %观测信号长度
N = 512;  %稀疏信号长度
K = 30;   %稀疏度
%% -----1.生成稀疏度为K的稀疏信号-----
tic                         %计算程序运行的时间
x0 = zeros(N1);
p = randperm(N);
x0(p(1:K)1) = rand(K1)-0.5;%把rand(K1)-0.5的K个值赋给x0,这K个值对应于p的前K个值所对应的位置
%z=awgn(x020‘measured‘);
%SNR0 = 20 * log10( norm(x0)/norm(z-x0) );
%------  高斯感知矩阵Phi   -------------
%高斯随机测量矩阵可成为普适的压缩感知测量矩阵,当M>=4K,可高概率重建原始信号(RIP)
Phi = sqrt(1/M) * randn(MN);       %生成均值为0,方差为1的随机正态矩阵
for i = 1:N
    Phi(:i) = Phi(:i) / norm(Phi(:i));
end
%-------- 测量向量 y  ----------
y  = zeros(M1);
y = Phi * x0;
%%  -----2. 含高斯白噪声观测 SNR=40dB --------
ye2 = mean(y.^2);
SNR = 40;
sgmav = sqrt( ye2*10^(-SNR/10) );
noisev = sgmav*randn(M1);
y = y + noisev;
%% ------3.BP重构算法 ----------------
 %x=argmin||x||1 s.t. y=Φx (1)
 %x=argminCx  s.t. Ax=bx≥0  其中A=(Φ-Φ)

评论

共有 条评论