資源簡介
動目標檢測matlab代碼,可以直接使用。
代碼片段和文件信息
clear?all
clc
close?all;
%脈沖多普勒信號=======================
f0=3e9;T=1e-5;Tr=1e-4;M=17;T0=M*Tr;%T0為總的信號長度%f0載頻%脈沖寬度T?%pulse?duration10us%脈沖重復周期Tr
v1=150;R01=7500;v2=0;R02=1250;c=3e8;B=3e7;%%==============
Fs=4.8e8;Ts=1/Fs;%Fs>=2Bfs=4f0/(2M0-1)
K=B/T;?%chirp?slope
fd1=2*v1/(c/f0);fd2=2*v2/(c/f0);%多普勒頻移fd1=fd2=0;
N=round(T/Ts);Nr=round(Tr/Ts);Na=round(T0/Ts);%(N0=M*Nr)
%=====產生回波脈沖
t=linspace(-T/2T/2N);
St1=2+2*exp(1i*(pi*K*t.^2+2*pi*f0*t+2*pi*3000*t));%1i前面是數字1
St2=4+4*exp(1i*(pi*K*t.^2+2*pi*f0*t));
%=======================
%======================產生回波脈沖串
m=1:M;
Rn1=ceil(2*(R01-v1*(m-1)*Tr)/c/Ts);Rn2=ceil(2*(R02-v2*(m-1)*Tr)/c/Ts);
y11=zeros(1Nr);
y12=zeros(1Nr);
%y13=zeros(1Nr);
y1=zeros(1Na);
for?m=1:M
????y11(Rn1(m):Rn1(m)+N-1)=St1(:)*exp(1i*(2*pi*fd1*(m-1)*Tr));
????y12(Rn2(m):Rn2(m)+N-1)=St2(:);
????y1((m-1)*Nr+1:m*Nr)=y12(:)+y11(:);
end
t=linspace(0T0Na);
figure(2);subplot(211);plot(treal(y1));xlabel(‘時間/s‘);title(‘不加噪聲回波‘);grid?on;axis?tight;
y2=wgn(1Na20)+1i*wgn(1Na20);
for?m=1:M
????for?n=1:Nr
???????y1(1(n-1)*M+m)=y1(1(n-1)*M+m)+y2(1(m-1)*N+n);%此語句用于添加噪聲,將此語句注釋后即可得在無噪聲情況下的處理結果
????end
end
subplot(212);plot(treal(y1));xlabel(‘時間/s‘);title(‘加噪聲的回波‘);grid?on;axis?tight;
%=========================產生IQ信號
t=linspace(-T/2T/2N);
St2=cos(pi*K*t.^2+2*pi*f0*t);
y12=zeros(1Nr);
y12(1:N)=St2(:);%仿真發射信號
t1=Ts:Ts:Tr;
z1=y1;
ri=cos(2*pi*f0*t1);
rq=-sin(2*pi*f0*t1);
ti1=ri.*y12;
tq1=rq.*y12;
[nWnbetaftype]=kaiserord([2*B?2.6*B][1?0][0.01?0.01]Fs);%得出濾波器的階數n,beta
%nbeta%Wnftype
w1=2.3*B/Fs;%?w2=2*fc2/Fs;%將模擬濾波器的技術指標轉換為數字濾波器的技術指標????
window=kaiser(n+1beta);%使用kaiser窗函數
[ba]=fir1(nw1window);%使用標準頻率響應的
評論
共有 條評論