snr=-15;%信噪比
%----------------511位m序列产生---------------------%
fbconnection=[000100001];
n=length(fbconnection);
m=2^n-1;
register=[101010101];%定义移位寄存器的初始状态
mseqmatrix
(1)=register(n);
fori=2:
m
newregister
(1)=mod(sum(fbconnection.*register),2);
forj=2:
n
newregister(j)=register(j-1);
end
register=newregister;
mseqmatrix(i)=register(n);
end
m_511=2*mseqmatrix-1;
%------------------0延时,0多普率的回波--------------------------%
hb=repmat(m_511,1,N);
hb=awgn(hb,snr,'measured');
hb1=hb;
%------------------脉压————————————%
pipei=fliplr(m_511);
hbb1=conv(pipei,hb1);
figure;plot(hbb1);
%-----------------距离门重排------------------%
forr=1:
N
forh=1:
m
s_hb1(h,r)=hbb1((r-1)*m+h);
end
end
figure;mesh(1:
N,1:
511,s_hb1);
%%------------------------------------------------
forh=1:
m
r_fft(h,:
)=abs(fft(s_hb1(h,:
)));
end
figure;
mesh(1:
N,1:
511,r_fft);
%-------------------------------------------------
%fora=1:
10
%fd=a*1e3;
fd=5e6/511/4;
i=1:
511*N;
duopule=cos(2*pi*fd/fm*i);
hb2=hb.*duopule;
%------------------脉压————————————%
pipei=fliplr(m_511);
hbb2=conv(pipei,hb2);
m_hb1=abs(hbb2);
m_hb=abs(hbb2)/max(m_hb1);
m_hb=10*log(m_hb);
figure;plot(m_hb);
%-----------------距离门重排------------------%
forr=1:
N
forh=1:
m
s_hb2(h,r)=hbb2((r-1)*m+h);
end
end
figure;mesh(1:
N,1:
511,s_hb2);
%-------------------------------------------
forh=1:
m
r_fft2(h,:
)=abs(fft(s_hb2(h,:
)));
end
figure;
mesh(1:
N,1:
511,r_fft2);
%---------------------------------------------------
%end
二:
仿真线性调频连续波雷达的信号处理。
设线性调频带宽为5MHz,时宽为102.2us,雷达载频为10GHz,输入输出为高斯白噪声,视频输入信噪比为-15dB,相干积累总时宽不大于10ms,给出回波视频表达式,脉压和FFT后的表达式;仿真给出脉压和FFT后的输出图形;通过仿真说明各级处理的增益,与各级时宽和带宽的关系;仿真说明脉压时多卜勒敏感现象。
线性调频信号:
LFM信号的数学表达式:
式中
为载波频率,
为矩形信号,
线性调频信号回波表达式
设输入信号为:
sf=A*exp(j*2*pi*f0*t+j*pi*K*t.*t);
则回波信号为:
SR=A*exp(j*2*pi*f0*(t-t_yc)+j*pi*K*(t-t_yc).*(t-t_yc));
其中t_yc=2*(R+t*V)/C,R为发射机到目标的距离,C为光速。
图1:
发射信号的时域波形
图2:
上图为回波信号的时域波形
下图为回波信号FFT后的频域波形
由于相干积累的时宽不大于10ms,所以取20个时宽为T的线性调频脉冲做相干积累。
图3:
脉压后的时域波形
LFM信号的压缩前脉冲宽度T和压缩后的脉冲宽度
之比通常称为压缩比D,
上式表明,压缩比也就是LFM信号的时宽频宽积。
脉压时多卜勒敏感现象:
回波信号通过一个匹配滤波器就能对所有多普勒信号同时进行压缩,所以线性调频信号是多卜勒不敏感信号。
附:
MATLAB程序
clc;
clearall;
closeall;
%%%%%%%%%%%%%%参数设定%%%%%%%%%%%%%%%%%%%%%%%%%
C=3e8;
bw=5e6;%线性调频带宽
T=1.022e-4;%信号脉冲宽度
f0=10e9;%载波频率
A=1;%信号幅度
N=512;%采样点数
K=bw/T;%调频斜率
Ts=T/N;%采样间隔
Fs=1/Ts;%采样频率
SNR=-15;
TT=2.044e-3;%相干积累总时间
Numpulse=TT/T;%脉冲数
R0=0;
para=[10001500-15];%距离,速度,方位,信噪比
Num=1;%目标个数
%%%%%%%%%%%%%%%%%%%%%%回波信号%%%%%%%%%%%%%%%%%%%%%%%
t_yc0=2*R0/C;
Rec=zeros(Num,Numpulse*N);
t=0:
Ts:
(N*Numpulse-1)*Ts;
sf=A*exp(j*2*pi*f0*(mod(t,T)-t_yc0)+j*pi*K*(mod(t,T)-t_yc0).*(mod(t,T)-t_yc0));%产生线性调频信号
t_yc=2*(1000+t*150)/C;
Rec=A*exp(j*2*pi*f0*(mod(t,T)-t_yc)+j*pi*K*(mod(t,T)-t_yc).*(mod(t,T)-t_yc));
SR=Rec*10^(SNR/20);
figure
(1)
subplot(2,1,1);
plot(t,sf);axis([02e-4-11]);xlabel('时间t/s');ylabel('幅度');
figure
(2)
subplot(2,1,1);
plot(t,SR);axis([02.044e-4-0.20.2]);xlabel('时间t/s');ylabel('幅度');
S=(abs(fft(SR)));
subplot(2,1,2);
f=(1:
length(S))/length(S)*Fs;
plot(f,S/max(S));axis([05e601]);xlabel('频率f/Hz');ylabel('归一化幅度');
%%%%%%%%%%%%%%%%%%%%%%%回波信号脉压%%%%%%%%%%%%%%%%%%%%
Srw=fft(SR);
Sw=fft(sf);
Sot=fftshift(ifft(Srw.*conj(Sw)));
figure(3)
subplot(2,1,1);
plot(t*C/2,Sot);axis([03e40140]);xlabel('距离');ylabel('幅度');
subplot(2,1,2);
plot(t*C/2,Sot);xlabel('距离');ylabel('幅度');
三:
假设有一个二坐标雷达对一平面上运动目标的进行观察,目标在t=0~400s沿y轴做恒速直线运动,运动速度为-15m/s,目标的起点为(2000m,10000m)雷达扫描周期为2s,x和y独立的进行观察,观察噪声的标准差均为100m。
试建立雷达对目标的跟踪算法,并进行仿真分析,给出仿真结果,画出目标真实轨迹,对目标的观察和滤波曲线。
仿真结果:
三种曲线比较显示:
附matlab程序:
clc;
clear;
T=2;%雷达扫描周期
t=0:
T:
400;%目标运动时间
%目标起点
x0=2000;y0=10000;
%目标速度
vx=0;
vy=-15;
x=x0+vx.*t;
y=y0+vy.*t;
figure;
plot(x,y);axis([1000,3000,3000,11000]);xlabel('x(单位:
m)');ylabel('y(单位:
m)');title('目标真实轨迹');
x_noise=x+normrnd(0,100,1,length(t));
y_noise=y+normrnd(0,100,1,length(t));
figure;
plot(x_noise,y_noise);axis([1000,3000,3000,11000]);xlabel('x(单位:
m)');ylabel('y(单位:
m)');title('对目标的观察曲线');
A=[1T;01];%状态转移矩阵
C=1;
K=0.2*(1.8-2*sqrt(0.8))/T;
X=zeros(2,length(t));
Y=zeros(2,length(t));
Sx=zeros(2,length(t));
Sy=zeros(2,length(t));
%X
fork=1:
length(t)
X(:
k)=[x_noise(k);vx];
end
Sx(:
1)=X(:
1);
fork=2:
length(t)
Sx(:
k)=A*Sx(:
k-1)+K*(X(:
k)-C*A*(A*Sx(:
k-1)));
end
%Y
fork=1:
length(t)
Y(:
k)=[y_noise(k);vy];
end
Sy(:
1)=Y(:
1);
fork=2:
length(t)
Sy(:
k)=A*Sy(:
k-1)+K*(Y(:
k)-C*A*(A*Sy(:
k-1)));
end
x_k=zeros(1,length(t));
y_k=zeros(1,length(t));
fork=1:
length(t)
x_k(k)=Sx(1,k);
y_k(k)=Sy(1,k);
end
figure;
plot(x_k,y_k);axis([1000,3000,3000,11000]);xlabel('x(单位:
m)');ylabel('单位:
m)');title('滤波后的曲线');
figure;
plot(x,y,':
r',x_noise,y_noise,'--g',x_k,y_k,'-b');axis([1000,3000,3000,11000]);xlabel('x(单位:
m)');ylabel('y(单位:
m)');