資源簡介
一份很好的ISAR目標識別的代碼,參考意義很大,其中包括了OMP BP方法

代碼片段和文件信息
clc
clear?all;
close?all;
load?D:\matlabdata\VCCHEN\MIG25.MAT
tempp=fft(X);
range=myfftshit(tempp);
data7=range(:385:512);
%?data7=range(:1:128);
%?%
mm=64;
for?n=1:mm
????bb=fix(rand(1)*128)+1;
????cc(n)=bb;
end
for?i=1:mm
????for?j=i+1:mm
????????if?cc(i)==cc(j)
????????????cc(j)=cc(j)+1;
????????????if?cc(j)>128
????????????????cc(j)=cc(j)-128;
????????????end
????????end
????end
end
data7(:cc)=0;
%?%
data7=awgn(data710);
K=8;?????%??稀疏度
N=128;????%??信號長度
M=128;????%??測量數(M>=K*log(N/K)但有出錯的概率)
for?coll=1:64
????mmm=data7(coll:);
????%?時域信號壓縮傳感
????Phi=randn(MN);???????????????????????????????????%??測量矩陣(高斯分布白噪聲)
????s=Phi*mmm‘;???????????????????????????????????????%??獲得線性測量
????%?正交匹配追蹤法重構信號(本質上是L_1范數最優化問題)
????m=2*K;??????????????????????????????????????????????%??算法迭代次數(m>=K)
????Psi=fft(eye(NN))/sqrt(N);????????????????????????%??傅里葉正變換矩陣
????T=Phi*Psi‘;???????????????????????????????????????%??恢復矩陣(測量矩陣*正交反變換矩陣)
????hat_y=zeros(1N);?????????????????????????????????%??待重構的譜域(變換域)向量
????Aug_t=[];?????????????????????????????????????????%??增量矩陣(初始值為空矩陣)
????r_n=s;????????????????????????????????????????????%??殘差值
????for?times=1:m;????????????????????????????????????%??迭代次數(有噪聲的情況下該迭代次數為K)
????????for?col=1:N;??????????????????????????????????%??恢復矩陣的所有列向量
????????????product(col)=abs(T(:col)‘*r_n);??????????%??恢復矩陣的列向量和殘差的投影系數(內積值)
????????end
????????[valpos]=max(product);???????????????????????%??最大投影系數對應的位置
????????Aug_t=[Aug_tT(:pos)];???????????????????????%??矩陣擴充
????????T(:pos)=zeros(M1);??????????????????????????%??選中的列置零(實質上應該去掉,為了簡單我把它置零)
????????aug_y=(Aug_t‘*Aug_t)^(-1)*Aug_t‘*s;???????????%??最小二乘使殘差最小
????????r_n=s-Aug_t*aug_y;????????????????????????????%??殘差
????????pos_array(times)=pos;?????????????????????????%??紀錄最大投影系數的位置
????end
????hat_y(pos_array)=aug_y;???????????????????????????%??重構的譜域向量
????data8(coll:)=hat_y;
end
im=myfftshit(data8);
imm=fftshift(im);
g=imm(:end:-1:1);
figure;
imshow(1-flipud(log10(20*(g/max(max(g))))));
%?title(‘ISAR?IMAGING?USING?CS‘);
axis?on;
%?grid?on;
%?axis([0?7680?150]);
xlabel(‘方位向‘);
ylabel(‘距離向‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-03-15?15:36??matlab\
?????文件????????1817??2012-11-25?08:50??matlab\MIG25N.m
?????文件????????2513??2013-03-10?21:35??matlab\OMPN.m
?????文件????????4006??2013-03-10?21:57??matlab\OMPsin.m
?????文件????????1538??2013-03-10?10:48??matlab\Yake.m
?????文件????????1972??2013-03-10?23:31??matlab\YakeBP.m
?????文件????????2519??2013-03-10?23:01??matlab\YakeBP2.m
?????文件????????3558??2013-03-10?23:30??matlab\YakeOMP.m
?????文件????????3812??2013-03-10?22:59??matlab\YakeOMP2.m
?????文件????????2418??2012-11-25?08:47??matlab\mig25cs.m
?????文件?????????156??2012-05-14?17:59??matlab\myfftshit.m
評論
共有 條評論