小言_互联网的博客

信号处理之目标检测

318人阅读  评论(0)

一,脉冲多普勒(PD处理)

多普勒效应:fd=2v/c*f0,v为镜像速度;

慢时间维上的采样点做FFT可以测出目标的速度;

使用复信号:频率正负可测量目标速度的方向;


  
  1. clc;clear all;close all;
  2. f0= 10e9;%载频
  3. tp= 10e-6;%脉冲宽度
  4. B= 10e6;%带宽
  5. fs= 100e6;%采样频率
  6. R0= 3000;%初始距离
  7. c= 3e8;%光速
  8. R= 4500;%距离波门
  9. gate= R+tp*c/2;%距离波门加脉宽对应距离
  10. N= round(2*gate/c*fs);%波门内采样点个数
  11. fft_N= 2^nextpow2(N);
  12. t= 0:1/fs:tp;%信号长度
  13. echo_t= linspace(0,2*gate/c,N);%波门长度
  14. tau= 2*R0/c;
  15. k= B/tp;%调频系数
  16. Tr= 100e-6;%脉冲重复周期
  17. CPI= 64;%总脉冲个数
  18. v= 60;%目标速度,朝向雷达
  19. %发射信号
  20. s= exp(i*pi*k*t.^2);
  21. %回波信号
  22. for m=1:CPI
  23. sb(m,: )=rectpuls((echo_t-2*(R0-(m-1)*v*Tr)/c-tp/2)/(tp)).*exp(1i*pi*k*(echo_t-2*(R0-(m-1)*v*Tr)/c).^2-1i*pi*2*f0*round(2*R0/c*fs)+1i*2*pi*(2*f0*v/c)*(m-1)*Tr)+sqrt(0.1)*(randn(1,N)+1i*randn(1,N));
  24. end
  25. %脉压
  26. fft_n= 2^nextpow2(length(t)+N-1);
  27. fft_s= fft(s,fft_n);
  28. for m=1:1:CPI
  29. fft_sb(m,: )=fft(sb(m,:),fft_n);
  30. fft_ssb(m,: )=ifft(fft_sb(m,:).*conj(fft_s));
  31. z(m,: )=abs(fft_ssb(m,(1:N)));
  32. z1(m,: )=z(m,:)/max(z(m,:));
  33. z1(m,: )=20*log10(z1(m,:));
  34. [maxval,maxpo]= max(z1(m,:));
  35. end
  36. %FFT
  37. for fm=1:N
  38. dop(: ,fm)=fft(fft_ssb(:,fm));
  39. a_dop(: ,fm)=fftshift(abs(dop(:,fm)));
  40. end
  41. %求极大值对应的坐标
  42. [maxva,max_v]= max(a_dop(:,maxpo));
  43. %PD测速
  44. fd= (max_v-33)/CPI/Tr;
  45. v_pd= fd*c/2/f0
  46. %测速范围
  47. fd_max= 1/Tr/2;
  48. v_max= fd_max*c/2/f0
  49. %测速精度
  50. det_fd= 1/Tr/64;
  51. det_v= det_fd*c/2/f0
  52. figure;
  53. mesh(echo_t*c/2,linspace(-75,75,64),a_dop);
  54. axis tight;
  55. xlabel('距离:m');
  56. ylabel('速度:m/s');
  57. title('二维距离-多普勒平面');

v_pd =60.9375          v_max =75         det_v =2.3438 

二,形心法测距测速


  
  1. %%% %%% %%% %%% %%% %%% %%% %%% %%% %% 形心法 % %%% %%% %%% %%% %%% %%% %%% %%% %%% %%%
  2. clc;clear all;close all
  3. f 0= 10e9;%载频
  4. tp= 10e- 6;%脉冲宽度
  5. B= 10e6;%带宽
  6. fs= 100e6;%采样频率
  7. R 0= 3000;%初始距离
  8. c= 3e8;%光速
  9. N= 4096; %此为培训期间数据,实际情况可以根据波门和信号宽度求出N
  10. t=( 0 :N- 1)/fs;
  11. snr= 20;
  12. tau= 2*R 0/c;
  13. k=B/tp;%调频系数
  14. Tr= 100e- 6;%脉冲重复周期
  15. CPI= 64;%总脉冲个数
  16. v= 60;%目标速度,朝向雷达
  17. sigmaf= 1^ 2/( 10^(snr/ 10));
  18. s=rectpuls(t-tp/ 2,tp).*exp(j*pi*k*(t-tp/ 2).^ 2);%发射信号
  19. % figure;
  20. % plot(t,real(s))
  21. % xlabel( '时间 /s');
  22. % ylabel( '幅度');
  23. % title( '发射信号实部');
  24. % grid on
  25. for m= 1 :CPI
  26. taum= 2*(R 0-m*Tr*v)/c;
  27. sb=rectpuls(t-taum-tp/ 2).*exp(j*pi*k*(t-taum-tp/ 2).^ 2).*exp(- 2j*pi*f 0*taum);%回波信号
  28. sb_noise=sb+sqrt(sigmaf/ 2)*(randn( 1,N)+ 1i*randn( 1,N));%加噪声的回波信号
  29. fft_ssb=ifft(fft(sb).*conj(fft(s)));%脉压处理
  30. fft_ssb_snr=ifft(fft(sb_noise).*conj(fft(s)));
  31. Group(m, 1 :N)=fft_ssb;
  32. Group_snr(m, 1 :N)=fft_ssb_snr;
  33. end
  34. figure;
  35. imagesc(t*c/ 2, 1 :CPI,abs(fft_ssb))
  36. figure;
  37. imagesc(t*c/ 2, 1 :CPI,abs(fft_ssb_snr))
  38. for n= 1 :N
  39. Group2=fft(Group( 1 :CPI,n));%纵向做FFT
  40. Group2_2=fftshift(abs(Group2));
  41. Group3(n, 1 :CPI)=Group2_2;
  42. end
  43. for n1= 1 :N
  44. Group2_snr=fft(Group_snr( 1 :CPI,n1));%纵向做FFT
  45. Group2_2_snr=fftshift(abs(Group2_snr));
  46. Group3_snr(n1, 1 :CPI)=Group2_2_snr;
  47. end
  48. figure;
  49. mesh(abs(Group3))
  50. figure;
  51. mesh(abs(Group3_snr))
  52. [line,row]=find(abs(Group3)==max(max(abs(Group3))));
  53. [line_snr,row_snr]=find(abs(Group3_snr)==max(max(abs(Group3_snr))));
  54. Range=t*c/ 2;
  55. PRF= 1/Tr;
  56. fd=(-CPI/ 2 :CPI/ 2- 1)*PRF/CPI;
  57. v=fd*c/ 2/f 0;
  58. for Ra=line- 3 :line+ 3
  59. amp=abs(Group3(Ra,row));
  60. C(Ra)=amp*Range(Ra);
  61. D(Ra)=sum(amp);
  62. end
  63. sum(C)/sum(D)
  64. for V=row- 3 :row+ 3
  65. index=abs(Group3(line,V));
  66. E(V)=index*v(V);
  67. F(V)=sum(index);
  68. end
  69. sum(E)/sum(F)
  70. for Ra_snr=line_snr- 3 :line_snr+ 3
  71. amp_snr=abs(Group3_snr(Ra_snr,row_snr));
  72. C_snr(Ra_snr)=amp_snr*Range(Ra_snr);
  73. D_snr(Ra_snr)=sum(amp_snr);
  74. end
  75. sum(C_snr)/sum(D_snr)
  76. for V_snr=row_snr- 3 :row_snr+ 3
  77. index_snr=abs(Group3_snr(line_snr,V_snr));
  78. E_snr(V_snr)=index_snr*v(V_snr);
  79. F_snr(V_snr)=sum(index_snr);
  80. end
  81. sum(E_snr)/sum(F_snr)

运行结果:

ans =3.0000e+003

ans =60.3560

ans =3.0000e+003

ans =60.3533

三,信号检测

结果:

mean_noise =0.0010 + 0.0079i

var_noise = 1.0123

pf1 =1.0000e-003

四,单脉冲测角仿真

单脉冲跟踪雷达是通过比较来自两个或多个同时波束的信号获得目标角位置信息的一种雷达;

目前常用的单脉冲测角方法主要有幅度和差单脉冲测角和相位和差单脉冲测角。幅度和差单脉冲测角通过比较两个相位中心重合指向不同的波束得到目标角度信息;相位和差单脉冲测角则通过比较两个相位中心有一定距离波束指向相互平行的波束得到目标角度信息。

相位和差单脉冲与幅度和差单脉冲的相似之处在于:目标角度坐标都是由一个和通道和两个差通道来提取的。主要不同之处在是,幅度和差单脉冲产生的四个信号具有相同的相位但具有不同的幅度,而相位和差单脉冲信号具有相同的幅度但有不同的相位。相位和差单脉冲对每个坐标系(方位和俯仰坐标)使用最少由两个阵元组成的阵列天线。相位误差信号是由于不同天线阵元产生的信号之间的相位差来计算得出的。


  
  1. %%%%%%%%%%%%%%%%%%%%%%%% 单脉冲测角仿真 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. f0= 10e6;
  3. R0= 3e3;%目标距 0号阵元的距离
  4. d= 10;%阵列接收天线之间的距离
  5. theta0= 0.2* pi/ 180;%目标角度
  6. %R0=R0+d* sin(theta0)/ 2;
  7. c= 3e8;%光速
  8. lamda=c/f0;
  9. tau0= 2*R0/c;%到 0号阵元的时延
  10. theta=linspace( -1* pi/ 180, 1* pi/ 180, 1000);
  11. thetaP= 0.15* pi/ 180;%偏置角
  12. N= 4;%天线个数
  13. %% 幅度和差单脉冲测角
  14. %相同相位不同幅度
  15. %波束形成结果
  16. Y= exp( 2j* pi*f0*tau0)* exp(j* pi*(N -1)*d* sin(theta0)/lamda).*( sin(N* pi*d*( sin(theta0)- sin(theta))/lamda)./ sin( pi*d*( sin(theta0)- sin(theta))/lamda));
  17. thetaA=theta+thetaP;
  18. thetaB=theta-thetaP;
  19. %偏置波束A、B
  20. Y_thetaA= exp( 2j* pi*f0*tau0).* exp(j* pi*(N -1)*d* sin(theta0)/lamda).*( sin(N* pi*d*( sin(theta0)- sin(thetaA))/lamda)./ sin( pi*d*( sin(theta0)- sin(thetaA))/lamda));
  21. Y_thetaB= exp( 2j* pi*f0*tau0).* exp(j* pi*(N -1)*d* sin(theta0)/lamda).*( sin(N* pi*d*( sin(theta0)- sin(thetaB))/lamda)./ sin( pi*d*( sin(theta0)- sin(thetaB))/lamda));
  22. %差波束
  23. Y_delta=Y_thetaA-Y_thetaB;
  24. %和波束
  25. Y_sigma=Y;
  26. %复比
  27. Y_AB=Y_delta./Y_sigma;
  28. thetaAB=linspace( 0* pi/ 180, 0.35* pi/ 180, 1000);


  
  1. %% 相位和差单脉冲测角
  2. %相同幅度不同相位
  3. %第一种配相方法
  4. %波束 1
  5. beam1= exp( 2j* pi*f0*tau0)*[ exp( 2j* pi* 0*d*( sin(theta0)- sin(theta))/lamda)+ exp( 2j* pi* 1*d*( sin(theta0)- sin(theta))/lamda)];
  6. %波束 2
  7. beam2= exp( 2j* pi*f0*tau0)* exp( 2j* pi* 2*d* sin(theta0)/lamda)*[ exp( 2j* pi* 0*d*( sin(theta0)- sin(theta))/lamda)+ exp( 2j* pi* 1*d*( sin(theta0)- sin(theta))/lamda)];
  8. beam_sigma=beam1+beam2;%和波束
  9. beam_delta=beam1-beam2;%差波束
  10. beam_12=(beam1-beam2)./(beam1+beam2);%和差比


  
  1. %% 第二种配相方法
  2. %波束 1
  3. beam1_2= exp( 2j* pi*f0*tau0).*[ exp( 2j* pi* 0*d*( sin(theta0)- sin(theta))/lamda)+ exp( 2j* pi* 1*d*( sin(theta0)- sin(theta))/lamda)];
  4. %波束 2
  5. beam2_2= exp( 2j* pi*f0*tau0).* exp( 2j* pi* 2*d*( sin(theta0)- sin(theta))/lamda).*[ exp( 2j* pi* 0*d*( sin(theta0)- sin(theta))/lamda)+ exp( 2j* pi* 1*d*( sin(theta0)- sin(theta))/lamda)];
  6. beam2_sigma=beam1_2+beam2_2;%和波束
  7. beam2_delta=beam1_2-beam2_2;%差波束
  8. beam12_2=(beam1_2-beam2_2)./(beam1_2+beam2_2);%和差比


转载:https://blog.csdn.net/wangjie36/article/details/115803932
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场