% dstcpmss.m
% 距离压缩和相关法包络对齐
clear;
clc;
echo off;%Display statements during function execution显示程序运行过程状态
%% Parameter
C=3e8; % m/s, volecity of light;
j=sqrt(-1);
B=4e8; % Hz, Bandwidth of signal, 400MHz带宽;
Tao=2.5e-6; % s, pulse width, 10us脉宽;
Lambda=0.03; % m, wave length, correspond to 10GHz波长;
Kr=B/Tao;%K=B/tao调频斜率;
PRF=10000;%pulse repeat frequency脉冲重复频率;
PRT=1/PRF;
Fs=450e6;% Hz, Sampling frequency; 450MHz采样频率
Ts=1/Fs;
R0=2500;%the distance from radar to rotation axis;
%% 积累补偿参数
acc=1; %积累因子
N_prt=1000;%成像积累期间内所收到的回波脉冲数;
%% creat reference signal for distance compression
load rawdata.mat;
[N,M]=size(rawdata);
N=256;
rawdata=rawdata(1:N,:); % 提取若干数据
L=Tao/Ts;
t_fast=linspace(0,Tao,L);
N_acc=ceil(N_prt/(N*acc))%最佳脉冲积累数确定
%%
Sr_t=exp(-j*pi*Kr*t_fast.^2);% range domain reference function距离向参考函数
Sr_f=fft(Sr_t,L+M-1);
R_compress=(ifft(fft(rawdata.',L+M-1).*(Sr_f.'*ones(1,N)) ,L+M-1)).';% distance compression距离压缩
imwrite(mat2gray(abs(R_compress)),'R_compress.jpg'); %Write image to graphics file矩阵数据转化为图形文件
[Max,index]=max(abs(sum(R_compress)));%压缩后最大值的行列值
R_abs=R_compress(:,index-255:index+256);%割取矩阵512列
%col,row]=size(R_abs);%sum(abs(R_abs))
clear R_compress;
imwrite(mat2gray(abs(R_abs)),'absctract.jpg');
%% 限幅运动补偿
[N,M]=size(R_abs);
H=500*ones(M);%幅度
for k=1:N
for l=1:M
if(abs(R_abs(k,l))>=H(l))
R_abs(k,l)=R_abs(k,l)*H(l)/abs(R_abs(k,l));%回波限幅
end
end
end
%% envolop corelationship相关法包络对齐
R_refer=abs(R_abs(1,:));%取R_abs第一行为距离向参考回波
Acc_R_refer=R_refer;%积累脉冲
for k=1:N-1
peakvalue=0;
index=0;
for l=1:8%相邻一位像对准时,移位数
%向量矩阵移位/x = [1 2 3 4 5]; wshift('1D',x,1)returns [2 3 4 5 1]
% x = [1 2 3;5 6 7]; wshift('2D',x,[1 1])returns [6 7 5;2 3 1]
%wshift('2D',x,[-1,0]) % returns [5 6 7;1 2 3]
R_temp=abs(wshift(1,R_abs(k+1,:),l-1));%R_abs矩阵第k+1行左移l-1位,通过循环移动,为下面求互相关最大值准备
pdct=sum(abs(R_temp).*abs(Acc_R_refer));%相邻距离像互相关函数,sum求积分
%R(s)=∫conj(ei(r+s))*e(i+1)(r)dr,雷达成像技术p269,7-14
if(pdct>peakvalue)
peakvalue=pdct;%峰值
index=l-1;%峰值位置,即求目标运动delta(r)补偿距离
end
end
R_abs(k+1,:)=wshift(1,R_abs(k+1,:),index);%包络对准
%% 最佳积累脉冲
% if(k-N_acc-20<0)%直接对前几次进行积累
R_refer(k+1,:)=abs(R_abs(k+1,:));
Acc_R_refer=sum(R_refer(1:k+1,:));
% else if(k-N_acc-20>0)
% R_refer(k+1,:)=abs(R_abs(k+1,:));
% %参考积累,积累互相关运动补偿,雷达成像技术(7-40),p288
% Acc_R_refer=sum(R_refer(k-N_acc-20:k+1,:));%最佳积累脉冲数,否则随着积累数量增加,间隔增大,相关性变弱
% end
% end
end
%%
clear R_temp;
clear peakvalue;
clear pdct;
imwrite(mat2gray(abs(R_abs)),'envolop.jpg');%Convert matrix to grayscale image将矩阵转化为灰度图像之后保存到jpg文件中。
save R_evp.mat R_abs;
clear all;
- 1
- 2
- 3
- 4
前往页