一、簡介
案例1 某彈載雷達系統要求:不模糊探測距離80km;作業比不超過20%;波長=3cm;天線等效孔徑D=0.25m(直徑);噪聲系數F=3dB;系統損耗L=4dB;天線波束寬度θ3dB =6°;目標的RCS:=1500 m2,彈目之間的相對運動關系如圖,目標航速Vs=10~30m/s(任取一值),導彈運動速度Va=600m/s,目標航向與彈軸方向之間的夾角為α′=30°,目標偏離彈軸方向的角度為β=1°,則在艦船位置P,導彈對目標視線與目標航向的夾角α=α′+β,從t=0時刻開始,導彈從O向O’位置運動, 目標從P向P’位置運動,
案例2 針對某陣列雷達的實測資料,給出如下處理結果:
資料檔案:radar_data.mat,為三維陣列3000 × 20 × 12,3000為距離單元,20為天線單元數(天線間隔0.625m),12為一個波位的脈沖數,其它引數上課給出,
對資料依次進行DBF、脈壓、MTI、CFAR等處理,
1.給出波束指向為0°時的DBF處理結果,要求副瓣<-25dB,
2.給出脈壓后的原始視頻,要求副瓣<-35dB,(LFM信號: B=800KHz,Te=420us)
3.設計四/六脈沖MTI濾波器,給出MTI后的原始視頻,選擇2個目標估算對雜波的改善因子,估計雜波的譜中心和譜寬,(雷達為三變T:4100:4400:4700 us)
二、源代碼
% 引數定義
clc;clear all;close all;
FFTsize=4096;%FFT點數
d=0.65;%天線間隔0.65m
C=3e8;%光速
lamda=0.03;%波長
TimeWidth=160e-6;%脈沖寬度
BandWidth=1e6;%調頻帶寬
K=BandWidth/TimeWidth;%調頻斜率
D=0.25;%天線孔徑
Ae=0.25*pi*D^2;%天線有效面積
G=4*pi*Ae/lamda^2;%天線增益
RCS=1500;%目標RCS
k=1.38e-23;%玻爾茲曼常數
T=290;%標準噪聲溫度
F=3;%噪聲系數(dB)
L=4;%系統損耗(dB)
Lp=5;%信號處理損失(dB)
N_CI=64;%相干脈沖積累數
Pt_CI=30;%64脈沖相干積累時發射功率
Ru=80000;%不模糊探測距離(m)
theta_3dB=6;%天線波束寬度(角度)
PRT=800e-6;%搜索狀態脈沖重復周期
Fs=2e6;%采樣頻率
Ts=1/Fs;%采樣周期
Va=600;%導彈速度
Vs=20;%目標航速
alpha=30;%目標航向與彈軸方向夾角(角度)
beta=1;%目標偏離彈軸方向夾角(角度)
Rs=20000;%第七題中目標距離
nTr=fix(PRT*Fs);%每個脈沖重復周期采樣點
nTe=fix(TimeWidth*Fs);%匹配濾波點數
nTe=nTe+mod(nTe,2);
P_fa=10e-6;%虛警概率
% (1)模糊函式和-4dB等高線圖
eps=1e-10;%防止奇異點出現
tau=-TimeWidth:TimeWidth/1600:TimeWidth-TimeWidth/1600;
fd=-BandWidth:BandWidth/1000:BandWidth-BandWidth/1000;
[X,Y]=meshgrid(tau,fd);
temp1=1-abs(X)./TimeWidth;
temp2=pi*TimeWidth*(K*X+Y).*temp1+eps;
ambg=abs(temp1.*sin(temp2)./temp2);%模糊函式模值
figure;mesh(tau*1e6,fd*1e-6,ambg);%模糊函式圖
xlabel('\tau/us');ylabel('fd/MHz');title('模糊函式圖');grid on;
[m1,m2]=find(ambg==max(max(ambg)));%找到原點
figure;plot(tau*1e6,20*log10(abs(ambg(m1,:))));%畫出距離模糊函式圖
xlabel('\tau/us');ylabel('|X(\tau,0)|');title('|X(\tau,0)|距離模糊圖');grid on;axis([-100,100,-60,0]);
figure;plot((fd)*1e-6,20*log10(abs(ambg(:,m2))));%畫出速度模糊函式圖
xlabel('fd/MHz');ylabel('|X(0,fd)|');title('|X(0,fd)|速度模糊圖');grid on;axis([-1,1,-60,0]);
figure;contour(tau*1e6,fd*1e-6,ambg,'bl');%畫出模糊函式的等高線圖
xlabel('\tau/us');ylabel('fd/MHz');title('模糊函式的等高線圖');axis([-150,150,-1,1]);
figure;contour(tau*1e6,fd*1e-6,ambg,[10^(-4/20),10^(-4/20)],'bl');%畫出-4dB等高線圖
xlabel('\tau/us');ylabel('fd/MHz');title('模糊函式的-4dB切割等高線圖區域放大');axis([-2,2,-0.01,0.01]);
[I2,J2]=find(abs(20*log10(ambg)-(-3))<0.1);%計算-3dB時寬帶寬
tau_3db=abs(tau(J2(end))-tau(J2(1)))*1e6
B_3db=abs(fd(I2(end))-fd(I2(1)))*1e-6
% (2)(3)略
% (4)相干積累提升SNR
N_pulse=theta_3dB/60/PRT
R_max=100000;%測驗最大距離100km
R_CI=linspace(0+R_max/400,R_max,400);
SNR_1=10*log10(Pt_CI*TimeWidth*G^2*RCS*lamda^2)-10*log10((4*pi)^3*k*T.*(R_CI).^4)-F-L-Lp;
SNR_N=SNR_1+10*log10(N_CI);
figure;plot(R_CI*1e-3,SNR_1,'b-.',R_CI*1e-3,SNR_N,'r-');title('相干積累前后信噪比-距離關系曲線');
xlabel('R/km');ylabel('SNR/dB');legend('相干積累前','相干積累后');grid on;axis([30,100,-10,40]);
%%% (5)脈壓
t=(-nTe/2:(nTe/2-1))/nTe*TimeWidth;
f=(-256:255)/512*(2*BandWidth);
Slfm=exp(1j*pi*K*t.*t);%線性調頻信號
% figure;plot(t*1e6,real(Slfm),'r-',t*1e6,imag(Slfm),'b-.');title('線性調頻信號');
Ht=conj(fliplr(Slfm));%時域匹配濾波函式
Hf=fftshift(fft(Ht,512));
figure;plot(t*1e6,real(Ht),'r-',t*1e6,imag(Ht),'b-.');title('線性調頻信號匹配濾波函式h(t)');
xlabel('時延/us');ylabel('幅度');legend('實部','虛部');grid on;
figure;plot(f*1e-6,abs(Hf));title('線性調頻信號匹配濾波器H(f)');
xlabel('頻率/MHz');ylabel('幅度');grid on;
Echo=zeros(1,fix(PRT*Fs));DelayNumber=fix(2*Ru/C*Fs);%目標距離80km
Echo(1,(DelayNumber+1):(DelayNumber+length(Slfm)))=Slfm;%產生回波信號
% figure;plot((0:1/Fs:PRT-1/Fs)*C/2*1e6,real(Echo),'r-',(0:1/Fs:PRT-1/Fs)*C/2*1e6,imag(Echo),'b-.');
% title('回波信號');xlabel('距離/Km');ylabel('幅度');legend('實部','虛部');grid on;
Echo_fft=fft(Echo,2048);%要在頻域脈壓
Echo_s=repmat(Echo_fft,2,1).';%因為fft按列計算,因此資料按列放置
Ht_s=repmat(Ht,2,1).';%因為fft按列計算,因此資料按列放置
window=[ones(nTe,1),taylorwin(nTe,5,-35)];%窗函式,泰勒窗-35dB
Hf_s=fft(Ht_s.*window,2048);%脈壓和加窗的頻域
Echo_temp=ifft(Echo_s.*Hf_s);%脈壓后未去暫態點
Echo_pc=Echo_temp(nTe:nTe+fix(PRT*Fs)-1,:);%去掉暫態點
% figure;plot((0:fix(PRT*Fs)-1)*C/2/Fs*1e-3,20*log10(abs(Echo_pc(:,:))));%按列畫出
% xlabel('距離/Km');ylabel('幅度/dB');grid on;title('回波信號脈壓結果');legend('不加窗','加三角窗' ,'加漢明窗');
PC_max=max(20*log10(abs(Echo_pc)));%找出不同窗時的最大值
PC_lose=PC_max-PC_max(1)%顯示出加窗后的最大值損失
Slfm_pc=20*log10(abs(Echo_pc((DelayNumber-nTe/2+1):(DelayNumber+nTe/2),:)));%線性調頻信號的脈壓結果
figure;plot(Slfm_pc(:,1)-PC_max(1));hold on;%歸一化后結果
plot(Slfm_pc(:,2)-PC_max(1),'r');hold on;%歸一化后結果
xlabel('時延/us');ylabel('幅度/dB');grid on;title('回波信號歸一化脈壓結果');legend('不加窗','加泰勒窗');
axis([0,320,-60,0]);
% (6)搜索狀態仿真
V=Vs*cos((alpha+beta)/180*pi)%目標與導彈相對速度
Signal_ad=2^8*(Echo/max(abs(Echo)));%信號經過ad后
t_N=0:1/Fs:N_CI*PRT-1/Fs;
Signal_N=repmat(Signal_ad,1,N_CI);%64個周期回波(無噪聲)
Signal_N=Signal_N.*exp(1j*2*pi*(2*V/lamda)*t_N);%引入多普勒頻移
Noise_N=1/sqrt(2)*(normrnd(0,2^10,1,N_CI*nTr)+1j*normrnd(0,2^10,1,N_CI*nTr));% 噪聲信號
Echo_N=Signal_N+Noise_N;%加噪聲后的回波信號
Echo_N=reshape(Echo_N,nTr,N_CI);
figure;plot(abs(Echo_N));title('原始信號');%回波基帶信號影像
xlabel('時域采樣點');ylabel('幅度(模值)');grid on;
Echo_N_fft=fft(Echo_N,2048);%回波信號FFT
Hf_N=fft(Ht,2048);%頻域脈壓系數
Hf_N=repmat(Hf_N.',1,N_CI);%脈壓系數矩陣
Echo_N_temp=ifft(Echo_N_fft.*Hf_N);%頻域脈壓,未去暫態點
Echo_N_pc=Echo_N_temp(nTe:nTe+nTr-1,:);%去掉暫態點
figure;plot((0:nTr-1)/Fs*C/2*1e-3,20*log10(abs(Echo_N_pc.')));title('回波信號脈壓結果');
xlabel('距離單元/Km');ylabel('幅度/dB');grid on;
Echo_N_mtd=fftshift(fft(Echo_N_pc.'),1);%64脈沖相干積累和MTD
figure;mesh((0:nTr-1)/Fs*C/2*1e-3,(-32:31)/PRT/64,abs(Echo_N_mtd));
xlabel('距離/Km');ylabel('多譜勒頻率/Hz');zlabel('幅度');grid on;title('64脈沖相干積累結果');set(gcf,'color',[1,1,1])
figure;contour((0:nTr-1)/Fs*C/2*1e-3,(-32:31)/PRT/64,abs(Echo_N_mtd),'bl');%畫出相干積累的等高線圖
xlabel('距離/Km');ylabel('多譜勒頻率/Hz');zlabel('幅度');grid on;title('64脈沖相干積累等高線圖');
[index_i index_j]=find(abs(Echo_N_mtd)==max(max(abs(Echo_N_mtd))));%找最大值多普勒單元對應的重復周期進行CFAR處理
V_fd=2*V/lamda %多普勒素的對應的多普勒頻率
mtd_fd=(index_i-1)/PRT/64% 相參積累對應的多普勒頻率
SNR_echo=20*log10(2^8/2^10)%原始回波基帶信號信噪比
SNR_pc=SNR_echo+10*log10(BandWidth*TimeWidth)%脈壓后信噪比
SNR_ci=SNR_pc+10*log10(64)%64脈沖相干積累后信噪比
%恒虛警
N_mean=8;N_baohu=4;K0_CFAR=(1/P_fa)^(1/N_mean)-1%計算系數K
CFAR_data=abs(Echo_N_mtd(index_i,:));%信號
K_CFAR=K0_CFAR./N_mean.*[ones(1,N_mean/2) zeros(1,N_baohu+1) ones(1,N_mean/2)];%恒虛警系數向量
CFAR_noise=conv(CFAR_data,K_CFAR);%恒虛警處理
CFAR_noise=CFAR_noise(length(K_CFAR):length(CFAR_data));%去暫態點
figure;plot(((N_mean+N_baohu)/2:nTr-(N_mean+N_baohu)/2-1)/Fs*C/2*1e-3,20*log10(CFAR_noise),'r-.');%恒虛警電平
hold on;plot((0:nTr-1)/Fs*C/2*1e-3,20*log10(CFAR_data),'b-');%信號
xlabel('距離/Km');ylabel('幅度');grid on;title('恒虛警處理');legend('恒虛警電平','信號電平');hold off
% (7)單脈沖測角
theta=(-theta_3dB:theta_3dB/1200:theta_3dB-theta_3dB/1200)*pi/180;%波束寬度范圍內
Ftheta1=exp(-2.778*((theta-theta_3dB/2*pi/180).^2)/(theta_3dB*pi/180).^2);%波束1方向圖函式
Ftheta2=exp(-2.778*((theta+theta_3dB/2*pi/180).^2)/(theta_3dB*pi/180).^2);%波束2方向圖函式
Fsum=Ftheta1+Ftheta2;%和波束
Fdif=Ftheta1-Ftheta2;%差波束
Ferr=real(Fsum.*conj(Fdif))./(Fsum.*conj(Fsum));%歸一化誤差信號
figure;plot(theta*180/pi,Ftheta1,'r-.',theta*180/pi,Ftheta2,'b-.');
hold on;plot(theta*180/pi,Fsum,'r',theta*180/pi,Fdif,'b');
xlabel('角度/度');ylabel('幅度');grid on;title('和差波束');hold on;
plot(theta*180/pi,Ferr,'k');legend('波束1','波束2','和波束','差波束','誤差信號');
K_theta=polyfit(theta(1100:1300)*180/pi,Ferr(1100:1300),1);
fprintf('誤差信號斜率為 %5.4f\n',1/K_theta(1));
三、運行結果
















完整代碼添加QQ1575304183
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259566.html
標籤:其他
上一篇:藍橋杯基礎練習 楊輝三角形
