MATLAB产生雷达脉冲信号,一些有关雷达的程序 另外求有关单脉冲雷达信号产生的程序...
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
小女子 路遇強悍的畢業設計 來到貼吧 求大神們 出手相助 感激不盡!!
在此給出一點程序 看可不可以幫助到大家
線性調頻信號的產生程序
T=10e-6; %pulse duration10us
B=30e6; %chirp frequency modulation bandwidth 30MHz
K=B/T; %chirp slope
Fs=2*B;Ts=1/Fs; %sampling frequency and sample spacing
N=T/Ts;
t=linspace(-T/2,T/2,N);
St=exp(j*pi*K*t.^2); %generate chirp signal
subplot(211)
plot(t*1e6,real(St));
xlabel('Time in u sec');
title('Real part of chirp signal');
grid on;axis tight;
subplot(212)
freq=linspace(-Fs/2,Fs/2,N);
plot(freq*1e-6,fftshift(abs(fft(St))));
xlabel('Frequency in MHz');
title('Magnitude spectrum of chirp signal');
grid on;axis tight;
線性調頻信號的壓縮
T=10e-6; %pulse duration10us
B=30e6; %chirp frequency modulation bandwidth 30MHz
K=B/T; %chirp slope
Fs=10*B;Ts=1/Fs; %sampling frequency and sample spacing
N=T/Ts;
t=linspace(-T/2,T/2,N);
St=exp(j*pi*K*t.^2); %chirp signal
Ht=exp(-j*pi*K*t.^2); %matched filter
Sot=conv(St,Ht); %chirp signal after matched filter
subplot(211)
L=2*N-1;
t1=linspace(-T,T,L);
Z=abs(Sot);Z=Z/max(Z); %normalize
Z=20*log10(Z+1e-6);
Z1=abs(sinc(B.*t1)); %sinc function
Z1=20*log10(Z1+1e-6);
t1=t1*B;
plot(t1,Z,t1,Z1,'r.');
axis([-15,15,-50,inf]);grid on;
legend('emulational','sinc');
xlabel('Time in sec \times\itB');
ylabel('Amplitude,dB');
title('Chirp signal after matched filter');
subplot(212) %zoom
N0=3*Fs/B;
t2=-N0*Ts:Ts:N0*Ts;
t2=B*t2;
plot(t2,Z(N-N0:N+N0),t2,Z1(N-N0:N+N0),'r.');
axis([-inf,inf,-50,inf]);grid on;
set(gca,'Ytick',[-13.4,-4,0],'Xtick',[-3,-2,-1,-0.5,0,0.5,1,2,3]);
xlabel('Time in sec \times\itB');
ylabel('Amplitude,dB');
title('Chirp signal after matched filter (Zoom)');
雷達的目標跟蹤源程序
clc;
clear;
T=2;%雷達掃描周期
num=100;%濾波次數
%*******************************產生真實軌跡**********************************
N=800/T;
x=zeros(N,1);y=zeros(N,1);
vx=zeros(N,1);vy=zeros(N,1);
x(1)=-2000;
y(1)=1000;
vx=15;vy=0;
ax=0;ay=0;
var=100;
%產生真實軌跡
for i=1:N-1
x(i+1)=x(i)+vx*T+0.5*ax*T^2;
y(i+1)=y(i)+vy*T+0.5*ay*T^2;
end
nx=zeros(N,1);ny=zeros(N,1);
nx=100*randn(N,1);
ny=100*randn(N,1);
zx=x+nx;zy=y+ny;
%濾波50次
for m=1:num
z=2:1;
xks(1)=zx(1);
yks(1)=zy(1);
xks(2)=zx(2);
yks(2)=zy(2);
o=4:4;g=4:2;h=2:4;q=2:2;xk=4:1;perr=4:4;
o=[1,T,0,0;0,1,0,0;0,0,1,T;0,0,0,1];
h=[1 0 0 0;0 0 1 0];
g=[T/2,0;T/2,0;0,T/2;0,T/2];
q=[10000 0;0 10000];
perr=[var^2 var^2/T 0 0
var*var/T 2*var^2/(T^2) 0 0
0 0 var^2 var^2/T
0 0 var^2/T 2*var^2/(T^2)];
vx=(zx(2)-zx(1))/2;
vy=(zy(2)-zy(1))/2;
xk=[zx(1);vx;zy(1);vy];
%卡爾曼濾波開始
for r=3:N;
z=[zx(r);zy(r)];
xk1=o*xk;
perr1=o*perr*o';
k=perr1*h'*inv(h*perr1*h'+q);
xk=xk1+k*(z-h*xk1);
perr=(eye(4)-k*h)*perr1;
xks(r)=xk(1,1);
yks(r)=xk(3,1);
vkxs(r)=xk(2,1);
vkys(r)=xk(4,1);
xk1s(r)=xk1(1,1);
yk1s(r)=xk1(3,1);
perr11(r)=perr(1,1);
perr22(r)=perr(2,2);
rex(m,r)=xks(r);
rey(m,r)=yks(r);
end %結束一次濾波
end
ex=0;ey=0;
eqx=0;eqy=0;
ey1=0;
ex1=N:1;ey1=N:1;
%計算濾波的均值
%計算濾波誤差的均值
for i=1:N
for j=1:num
ex=ex+x(i)-rex(j,i);
ey=ey+y(i)-rey(j,i);
end
ex1(i)=ex/num;
ey1(i)=ey/num;
ex=0;eqx=0;ey=0;eqy-0;
end
%繪圖
figure(1);
plot(x,y,'k-',zx,zy,'b:',xks,yks,'r-.');
legend('真實軌跡','觀測樣本','估計軌跡')'
figure(2);
plot(ey1);
legend('x方向平均誤差');
總結
以上是生活随笔為你收集整理的MATLAB产生雷达脉冲信号,一些有关雷达的程序 另外求有关单脉冲雷达信号产生的程序...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业常见的纳税信用等级失分项有哪些?
- 下一篇: 脉冲雷达数据采集基础