• 大小: 896B
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: 其他
  • 标签: 压缩感知  

资源简介

关于分布式压缩感知算法代码,很实用的算法,对于研究压缩感知的人很有用

资源截图

代码片段和文件信息

%%%%%%%%%%%%%DCS SOMP算法来考虑是否可以实现麦克风阵列增强
%%%%%%%这个程序有问题,重构结果不对
clear;
clc;
close all;
J=20;%%%
load signal_shift_noise.mat
signal=signal_shift_noise‘;
[mn1]=size(signal);
N=m;
M=400;
for kk=2:N
    for nn=1:N
        dctbasis(kknn)=(2/N)^0.5*cos((2*(nn-1)+1)*(kk-1)*pi/2/N);
    end
end
for nn=1:N
    dctbasis(1nn)=(1/N)^0.5*cos((2*(nn-1)+1)*(1-1)*pi/2/N);
end
idctbasis=dctbasis‘;
for j=1:J
    measurementmatrix=randn(MN);
    y(:j)=measurementmatrix*signal(:j);
    w(j)={measurementmatrix*idctbasis};
end
sign=[];%%%%%分解系数下标的位置
r=y;%%%%余部,并且这一部分需要迭代更新
for l=1:M     %%%%最外面的一层迭代
   for n=1:N
       for j=1:J
           k(j)=abs(r(:j)‘*w{j}(:n)/(norm(w{j}(:n))^2));
       end
       kl(n)=sum(k);
   end
   [CI]=max(kl);
   sign(l)=I;
   for j=1:J
       sum1=zeros(M1);
       if l==1
           w1{j}(:l)=w{j}(:sign(l));
       else
           for ii=1:l-1
               vector_multiply(ii)=w{j}(:sign(l))‘*w1{j}(:ii)/(norm(w1{j}(:ii))^2);
               sum1=sum1+vector_multiply(ii)*w1{j}(:ii);
           end
           w1{j}(:l)=w{j}(:sign(l))-sum1;
       end
   end
   for j=1:J
       coeff(lj)=r(:j)‘*w1{j}(:l)/(norm(w1{j}(:l))^2);
       r(:j)=r(:j)-coeff(lj)*w1{j}(:l);
   end
end

for j=1:J
    [QR]=qr(w{j}(:sign));
    coeff_dec(:j)=inv(R)*coeff(:j);
    coeff_1(:j)=zeros(N1);
    coeff_1(signj)=coeff_dec(:j);
    signal_rec(:j)=idctbasis*coeff_1(:j);
end
 signal_sub=signal-signal_rec;
 for j=1:J
     snr(j)=10*log10((norm(signal_rec(:j))^2)/(norm(signal_sub(:j))^2));
 end
 figure(1)
 plot(signal(:1)‘r‘);
 hold on
plot(signal_rec(:1)‘b‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1740  2010-10-21 12:45  DCS_SOMP.m

----------- ---------  ---------- -----  ----

                 1740                    1


评论

共有 条评论