威望0
积分7976
贡献0
在线时间763 小时
UID1
注册时间2021-4-14
最后登录2024-11-24
管理员
- UID
- 1
- 威望
- 0
- 积分
- 7976
- 贡献
- 0
- 注册时间
- 2021-4-14
- 最后登录
- 2024-11-24
- 在线时间
- 763 小时
|
[mw_shl_code=applescript,true]clc;
close all;
clear all;
%% 参数设置 %%
c=3e8; %光速
f0=10e6; %载频频率
lambda=c/f0; %波长
fs=500e3; %采样频率
B=250e3; %信号带宽
T=1e-3; %脉冲重复周期
PRF=fix(1/T); %脉冲重复频率 && %第一盲速对应多普勒频率 && PRF*c/(2*f0)=71.42m/s
vd=PRF*c/(2*f0)
taup=0.2*T; %脉宽
k=B/taup; %调制斜率
%目标速度
v=zeros(1,3);
v(1)=2000; v(2)=5000; v(3)=14000;
%fd=2*f0*v/c; %多普勒频率 2*f0/c=230 fd<=PRF/2=8500
d_max=(T-taup)*c/2 %测量最大距离
R_max=T*c/2
%目标距离
R=zeros(1,3);
R(1)=10e3; R(2)=50e3; R(3)=80e3;
Np=500; %脉冲数
Ns=fix(fs*T); %一个周期内采样点数
N_mainei=fs*taup; %脉冲内采样点数
t=linspace(0,T,Ns); %taup--T
%% 生成信号 %%
baseband=exp(1i*k*pi*(t-taup/2).^2).*rectpuls(t-taup/2,taup); %基带信号
x0=exp(1i*2*pi*f0*(t-taup/2)); %载波信号
x1=exp(1i*2*pi*(f0*(t-taup/2)+k./2*(t-taup/2).^2)).*rectpuls(t-taup/2,taup); %线性调频信号
for n=1:Np
s=zeros(1,Ns);
for m=1:3
t0=2*(R(m)+(n-1)*v(m)*T)/c;
y_dan(n,=rectpuls(t-t0-taup/2,taup).*exp(1i*(2*pi*(f0+2*v(m)/lambda)*(t-t0-taup/2)+pi*k.*(t-t0-taup/2).^2));
s=s+y_dan(n,;
end
y(n,=s;
end
%% 生成噪声 %%
rng default;
clutteri=10*randn(Np, Ns);
clutterq=10*randn(Np, Ns);
clutter=complex(clutteri,clutterq); %生成噪声
s0=0.001*clutter+y; %目标加噪声
%% 低通滤波器 %%
x2=ones(Np,1)*(conj(x0)).*s0; %混频:载波和回波进行相乘(下变频)
% %======低通滤波器======%%
% for i=1:Np
% LPF_out0(i,=lowpass(x2(i,,1.4*B,fs); %100个脉冲回波
% end
%% 脉冲压缩 %%
LPF_out1=fft(x2.').*(conj(fft((baseband.')))*ones(1,Np));
LPF_out2=(ifft(LPF_out1)).'; %反傅里叶变换后仍为时域信号
range=c*t/2;
%% 直接FFT进行积累 %%
FFT_Jilei=fft(LPF_out2);
%% MTI杂波抑制(双脉冲对消器) %%
for n=1:Np-1
mti(n,=LPF_out2(n+1,-LPF_out2(n,;
end
mti_out=fft(mti);
%% 画图 %%
%---混频与脉压---%
f=[0:Np-1]*PRF/Np;
v=f*lambda/2;
figure
mesh([-Ns/2:Ns/2-1]*fs/Ns,1:Np,abs(fftshift((LPF_out1).')));
title('混频过低通LPF_out1');
xlabel ('频率Hz')
ylabel('脉冲个数')
figure
mesh(range,1:Np,abs(LPF_out2));
title('脉压后的信号LPF_out2');
xlabel ('距离m')
ylabel('脉冲个数')
%---FFT进行积累---%
f1=[0:Np-1]*PRF/Np;
f2=[Np-1:-1:0]*PRF/Np;
v2=f2*lambda/2;
figure,
mesh(range,v2,abs(FFT_Jilei));
xlabel ('距离m')
ylabel('速度')
title('FFT积累')
%---mti与mtd---%
f=[0:Np-2]*PRF/(Np-1);
figure
mesh(range,1:Np-1,abs(mti));
title('对消');
xlabel ('距离m')
ylabel('脉冲个数')
figure
mesh(range,f,abs(mti_out));
title('mtd');
xlabel ('距离m')
ylabel('频率Hz')
%% RFT算法 %%
% rft(:,=exp((-1i*(2*pi)*[0:Np-1].'*[0:Np-1]/Np));
% g(:,=rft*LPF_out2(1:Np,:);
vmax=15e3; Nv=500; delta_v=vmax/Np;
rmax=120e3; Nr=500; delta_r=rmax/Np;
% t=2*(delta_r*r+delta_v*v*m*T+delta_a*a*(m*T)^2)/c; %round(2*(2500*Np*T+1000000)/c)
% o=round(t*fs);
for r=1:Nr
for v=1:Nv
RFT2(v,r)=0;
RFT(v,r)=0;
for m=1:Np
t=2*(delta_v*v*m*T+delta_r*r)/c; %round(2*(2500*Np*T+1000000)/c)
o=round(t*fs);
% if o==0
% o=1;
% end
RFT(v,r)=LPF_out2(m,o)*exp(1i*4*pi/lambda*delta_v*(v-1)*(m-1)*T)+RFT(v,r);
RFT2(v,r)=LPF_out2(m,o)*exp(1i*2*pi/Np*(v-1)*(m-1))+RFT2(v,r);
%%%%%%两个公式结果一样,为什么一样?
% o=round(2*B*(delta_v*v*m*T+delta_r*r)/c)*5;
% if o==0
% o=1;
% end
% RFT(r,v)=LPF_out2(m,o)*exp(1i*4*pi*(v-1)*(m-1)/(lambda*Np))+RFT(r,v);
MM(v,r)=LPF_out2(m,o);
end
end
end
v=f1*lambda/2;
range1=delta_r*(1:Nr);
figure,mesh(range1,v,abs(RFT));title('RFT');
xlabel ('距离m')
ylabel('速度')
figure,mesh(abs(RFT2)),title('RFT2')
%rft(:,:)=exp((1i*(2*pi)*[0:Np-1].'*[0:Np-1]/Np));
% for v=1:Np
% for r=1:Np
% o(r)=round(fs*2*(delta_r*r+delta_v*v*T)/c);
% MM(v,r)=LPF_out2(v,o(r));
% end
% end
% RFT1(:,:)=rft*MM.';
% figure,mesh(abs(MM)),title('MM')
%
%
%
%
% figure,mesh(abs(fft(MM.')))
% for n=1:Np
% g(n,:)=zeros(1,Ns);
% for k=1:Np
% g(n,:)=LPF_out2(k,:)*exp(-i*2*pi*(n-1)*(k-1)/Np)+g(n,:);
% end
% end
[/mw_shl_code] |
|