📄 yundong.m
字号:
clear;
close all;
clc;
f0=10e9; %载频10GHZ
ft=1.6e6;
T=5.12e-3;
t=(0:1/ft:(T-1/ft))-T/2;
M=8192;
B=1.57e9/4;%带宽
c=3e8;
R0=1e3; %目标中心点距离
k=B/T; %调频率k,调频带宽1.57GHZ;
Qa=B/f0;
K=menu('选择:','默认演示','自定义演示');
if K==2
disp('输入每一点位置,第一列为距离向y,第二列为方位向x:');
R=input('R=');
else
R=[0,0;5,-5;-5,5];
end
Q=0;
%回波信号形式
N=64;
tu=0;
w0=0.14*pi/180/T/4; %目标转动角速度
g=0;
%g=rand(1,1)/100;
v0=60; %目标径向速度
a0=0;
s=zeros(128,64);
for u=1:64
Q=Q+w0*T;
%a0=a0+0.05;;
%a0=(rand(1,1)-0.5); %目标径向加速
R0=R0+rand(1,1)-0.5;%+1/2*a0*(T.^2);
% R0>>xO,y0; 近似远场成像;Rt近似如下;
Rt=R0+R*[cos(Q),-sin(Q)]';
st=sum(exp(j*4*pi/c*Rt*(B*t/T+f0)));
%每一固定转角的信号采样1024点
%hanning
hn=hamming(M);
st1=st.*hn'; %加窗,压低旁瓣;
% figure(1);
%plot(st1);
%s1=fft(st1);
%figure(2);
%f=0:ft/M:(M-1)*ft/M;
%plot(f,abs(s1));
%加零拓展to 2048 points;
st2=zeros(1,8192);
st=[st,st2];
%st2 加零拓展后的信号序列;
L=2*M;
l=0:L-1;
s2=fft(st,L); %每一列进行傅立叶变换------实现距离向高分辨
%figure(1);
%plot(l,s2);
%identify the frequency index corresponding to the center of the
%object range field;
s3=zeros(1,128);
for i=1:128
s3(i)=s2(i+5168);
end %取128点,对应距离范围6m;
%64个不同角度所对应的数据阵
s(:,u)=s3';
end
l=0;
l=l+1;
julidb(s,l);
I=mat2gray(abs(s));
l=l+1;
figure(l);
imshow(I);
%contour(I);
title('未加补偿的距离像')
xlabel('距离向分辨单元 ');
ylabel('方位向分辨单元');;
%未补偿的距离象
%积累互相关运动补偿--------------------包络补偿--------------------------------------------
for r=2:64
ss=zeros(128,1);
for k=max(1,r-6):(r-1)
ss=ss+s(:,k);
end
ss=ss/(r-max(1,r-6));
b=zeros(128,128);
v=zeros(1,128);
b(:,1)=s(:,r);
v(1)=sum(abs((ss).*s(:,r)));
for i=2:128
c1=s(128,r);
for j=128:-1:2
s(j,r)=s(j-1,r);
end
s(1,r)=c1;
b(:,i)=s(:,r);
v(i)=sum(abs((ss).*s(:,r)));
end
x1=find(v==max(v));
a=x1+1;
b1=x1-1;
if a>128
a=a-128;
end
if b1<1
b1=b1+128;
end
%disp('a,b');
%disp(a);
%disp(b);
x=x1+round((abs(v(a))-abs(v(b1)))/2/(2*abs(v(x1))-abs(v(a))-abs(v(b1))));
if x<=0
x=128+x;
end
if x>128
x=x-128;
end
%disp('x');
%disp(x);
s(:,r)=b(:,x);
end
l=l+1;
julidb(s,l);
I=mat2gray(abs(s));
l=l+1;
figure(l);
contour(I);
%imshow(I);
title('包络补偿后的距离像');
%----------------------------------------------------------------------------------
%积累互相关运动补偿--------------------相位补偿--------------------------------------------
for r=2:64
ss=zeros(128,1);
for k=max(1,r-4):(r-1)
ss=ss+s(:,k);
end
ss=ss/(r-max(1,r-4));
v=sum(conj(ss).*s(:,r))/sum(abs(conj(ss).*s(:,r)));
v=v/abs(v);
s(:,r)=s(:,r)*conj(v);
end
l=l+1;
julidb(s,l);
I=mat2gray(abs(s));
l=l+1;
figure(l);
contour(I);
%imshow(I);
title('相位补偿后的距离像');
xlabel('距离向分辨单元 ');
ylabel('方位向分辨单元');
%---------------------------------------------------------
%-相位补偿后成的像------------------------------------------------------
%每一行加窗以压低方位向旁瓣
for v=1:128
s(v,:)=s(v,:).*hamming(64)';
end
%拓展到128列
s0=zeros(128,128);
s00=zeros(128,32);
s0=[s00,s,s00];
%对每一行进行128点傅立叶变换,实现方位向高分辨
Sw=zeros(128,128);
for d=1:128
Sw(d,:)=fftshift(fft(s0(d,:),128));
end
%点目标所成的二维像
z=0.1911*(-66):0.1911:0.1911*61;
f=0.1911*(-63):0.1911:0.1911*64;
l=l+1;
figure(l);
%surf(f,z,abs(Sw));
contour(f,z,abs(Sw));
xlabel('方位向(m)');
ylabel('距离向(m)');
% axis([-8 8 -8 8 0 3.5e4]);
%view([0,90]);
%axis([0.1911*(-63),0.1911*64,0.1911*(-66),0.1911*61]);
Sw=Sw';
I=mat2gray(abs(Sw));
l=l+1;
figure(l);
imshow(I);
title('相位补偿后的二维像');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -