clc; clear;
close all;
%% 参数设置
%-- --雷达系统参数------
a=1;
f0 = a*1.25e9; %工作频率
PRT = 500e-6; %脉冲重复周期
fr = 1/PRT; %脉冲重复频率
B = a*30e6; %带宽
tao =3e-6; %脉冲宽度
pulseN = 7; %相参脉冲数
%fs = 200e6; %采样频率
%fs = 200e7; %采样频率拟合用
%测主瓣宽度,1次谐波600e7,高次谐波增大采样率
fs = 450e6;
dt = 1/fs; %采样间隔
K = B/tao; %调频斜率
c = 3e8; %光速
lamda = c/f0; %工作波长
%速度分辨率
SR=lamda*fr/2/pulseN;
vmin_d=1;
pulseN1=lamda/3*fr/2/vmin_d;
% -----时间线生成-----
t_s = -tao/2:dt:tao/2-dt; % 脉宽时间线
N_s = length(t_s);
t_PRT = (0:dt:PRT-dt); % 脉冲重复间隔时间线
N_PRT = length(t_PRT);
t_CPI = (0:dt:pulseN*PRT-dt); % CPI时间线
N_CPI = length(t_CPI);
%% 发射信号生成
% -----快时间波形生成-----
st = exp(1i*pi*K*t_s.^2); %LFM信号
% energy_cont = sum(abs(st).^2) * dt;
% % 2. 平均功率
% power_avg = energy_cont / tao;
% -----波形脉间调制参数设置-----
a0 = ones(pulseN,1)*(1/sqrt(pulseN)); %幅值
fai0 = zeros(pulseN,1); %相位
R_f0 = zeros(pulseN,1); %载频
R_PRI0 = (0:PRT:PRT*(pulseN-1)).'; %PRT
% -----捷变f参数设置-----
der_f = B; %最小跳频间隔
% der_f = 30e6; %最小跳频间隔
%----分组捷变------
fm=[4,7,1,6,5,2,3].';
%fm=[1,2,3,4,5,6,7].';
%fm=[0,0,0,0,0,0,0].';
%fm=1;
%fm=[2, 9, 3, 10, 5, 8, 1, 6, 4, 7];
%fm=[2,6,14,30,62,59,53,41,17,36,7,16,34,3,8,18,38,11,24,50,35,5,12,26,54,43,21,44,23,48,31,64,63,61,57,49,33,1,4,10,22,46,27,56,47,29,60,55,45,25,52,39,13,28,58,51,37,9,20,42,19,40,15,32].';
%fm=[1:1:128].';
R_f = fm*der_f; %Costas编码f
%R_f = (fm-ones(1,length(fm)).')*der_f; %Costas编码f
% -----PRT参数设置-----
R_PRI = R_PRI0; %PRT
%-----初相设置-----
fai = fai0;%相位
% -----发射脉冲串信号生成-----
st_cpi1 = signal_generator(st.', fs, PRT, a0, fai, R_f, R_PRI); %捷变信号%变量未使用
%% 机载雷达回波生成
% -----噪声生成-----
SNR = 10; %信噪比
aa=-50;
if a==1
aa=0;
end
%Noise = (randn(1,N_CPI)+1j*randn(1,N_CPI))/sqrt(2);
% -----目标回波生成-----
Rt = 500;
vt = 10;
N0_t = round(2*Rt*fs/c);
fd_t = 2*vt/lamda;
pulse_group_N=30;
yt_allgroup=[];
for k=1:pulse_group_N
R_PRI = (PRT*pulseN*(k-1):PRT:PRT*(k*pulseN-1)).';
R_PRI1=R_PRI0;
[echom1,echombase] = echom_generator(aa,st.', fs, PRT, a0, fai, R_f, R_PRI, Rt, vt,f0,R_PRI1); %带载频
echom1=sqrt(10.^(SNR/10)).*echom1;
echo_power = sum(abs(echom1).^2)/pulseN/length(st); % 平均功率
% 根据目标SNR计算噪声功率
noise_power = echo_power / 10^(SNR/10);
Noise = sqrt(noise_power/2) * (randn(1, N_CPI) + 1j*randn(1, N_CPI));
% -----回波模式选择-----
% 1: 目标回波; 2: 目标回波+噪声;
Mode = 1;
switch(Mode)
case 1 %目标回波
echom_all1 = echom1;
case 2 %目标回波+噪声
echom_all1 = echom1 + Noise;
end
%% 信号处理
Nr = 1; %观测距离区间个数
Nv = 1; %观测速度区间个数
R0max = c*tao/2*Nr; %最大观测距离
R0max=600;
R0max=Rt+100;
v0 = lamda/4/(PRT)*Nv; %最大观测速度
N_D = pulseN*60*Nv+1; %多普勒维点数
N_D = pulseN*120*Nv+1; %多普勒维点数
% Nr = 1; %观测距离区间个数
% Nv = 1; %观测速度区间个数
% R0max = c*tao/2*Nr; %最大观测距离
% v0 = lamda/4/PRT*Nv; %最大观测速度
% N_D = pulseN*40*Nv+1; %多普勒维点数
yt_allgroup=[yt_allgroup,echom_all1];
end
R_PRI_g = pulseN*(0:PRT:PRT*(pulse_group_N-1)).'; %PRT
t_CPI_g = (0:dt:pulse_group_N*pulseN*PRT-dt); % CPI时间线
N_CPI_g = length(t_CPI_g);
R_f_g=ones(pulse_group_N,1)*pulseN*B;
%R_f_g=ones(pulse_group_N,1)*B;
% 回波信号处理
yt_PC1 = PC(st_cpi1,yt_allgroup,R_PRI_g,pulseN,fs,N_CPI_g,R_f); %脉压
% xt:回波信号; PRI:发射时序; pulseN:脉冲数; R:观测距离区间
% fs:采样率; N_CPI:脉冲串总点数
Yt2 = range_align(yt_PC1,R_PRI_g,pulse_group_N,fs,N_CPI_g,R0max); %距离门对齐
%Yt2 = f_tao_compensation(Yt2,fai, pulseN*B*ones(pulse_group_N,1), Rt); %频偏-时延相位补偿
%Yt1 = range_align(yt_allgroup,R_PRI_g,pulse_group_N,fs,N_CPI_g,R0max); %距离门对齐
%Yt1 = f_tao_compensation(Yt1,fai, R_f, Rt); %频偏-时延相位补偿
Ymtd1 = pulse_accumulation(Yt2, R_f_g, R_PRI_g/pulseN, v0, N_D,f0); %脉间积累
function yt = pulse_accumulation(xt, R_f, PRI, v, N_D,f0)
%% 脉间积累
% xt:回波矩阵; R_f:载频序列; PRI:发射时序;
% v:最大观测速度; N_D:多普勒维点数
% yt:R-D平面
%--------------------------
c = 3e8;
vl = linspace(-v,v,N_D);
% F = exp(-1j*2*pi*(2*vl/c).*R_f.*PRI); %滤波矩阵
%F = exp(-1j*2*pi*(2*vl/c).*(f0+R_f).*PRI); %滤波矩阵
fdd=(f0+R_f).*PRI;
F = exp(-1j*2*pi*(2*(vl.')/c)*(fdd.')); %滤波矩阵
yt = F*xt;
end
请问上述做慢时间fft的操作点数频率什么的有什么问题