这是目录

  • 1 原理介绍
    • 1.1 脉冲多普勒过程
    • 1.2 信号模型
    • 1.3 PD的实现
    • 1.4 相参和非相参累积
  • 2 实验内容
    • 2.1 参数
  • 3 MATLAB实现
  • 参考文献

1 原理介绍

1.1 脉冲多普勒过程

我们用脉冲多普勒处理回波信号,目的是测量径向速度,提高信杂比和噪声比

脉冲多普勒(pulse doppler, PD)处理是多普勒处理的第二大类。在MTI处理中,快时间/慢时间数据矩阵在慢时间维度中经过高通滤波,产生一个新的快时间/慢时间数据序列,其中杂波分量已被衰减。
下图说明了PD处理的原理。
下图显示了计算每个慢时间行数据的离散傅里叶变换(DFT)的每个慢时间行的频谱分析。
因此,PD处理的结果是一个数据矩阵,其维度分别表示快时间和多普勒频率。

1.2 信号模型

  1. 发送信号——Chirp信号
    S(tn)=g[tn,Tp]ejπβtn2S(t_n)=g[t_n,T_p]e^{j \pi \beta {t_n}^2}S(tn​)=g[tn​,Tp​]ejπβtn​2
    其中,TpT_pTp​为脉冲持续时间,β\betaβ为调频斜率,G[t,Tp]G[t,T_p]G[t,Tp​]为门宽为TpT_pTp​的门函数。
  2. 接受信号
    sb(m,t)=g[(t−τm)/Tp]ejπβ(t−τm)2e−j2πf0τms_b(m,t)=g[(t-\tau_m)/T_p]e^{j \pi \beta (t-\tau_m)^2}e^{-j2\pi f_0\tau_m}sb​(m,t)=g[(t−τm​)/Tp​]ejπβ(t−τm​)2e−j2πf0​τm​
    其中f0f_0f0​为载波频率,τm\tau_mτm​为第mmm个脉冲的时延τm=2∗(R0−mTrv)/c\tau_m=2*(R_0-mT_rv)/cτm​=2∗(R0​−mTr​v)/c

1.3 PD的实现

我们可以通过两个步骤实现PD处理。第一步是脉冲压缩,第二步是慢时间FFT。

  1. 步骤1:沿距离方向的脉冲压缩
    s1=Asinc(B(t−τ1))e−j2πfoτ1s_1=Asinc(B(t-\tau_1))e^{-j2\pi f_o\tau_1}s1​=Asinc(B(t−τ1​))e−j2πfo​τ1​ s1=Asinc(B(t−τ1))e−j2πfoτ1s_1=Asinc(B(t-\tau_1))e^{-j2\pi f_o\tau_1}s1​=Asinc(B(t−τ1​))e−j2πfo​τ1​ ............ sN=Asinc(B(t−τN))e−j2πfoτNs_N=Asinc(B(t-\tau_N))e^{-j2\pi f_o\tau_N}sN​=Asinc(B(t−τN​))e−j2πfo​τN​

  2. 步骤2:沿着慢时间做FFT
    spd=Asinc(B(t−τ))sinc(f−fd)s_{pd}=Asinc(B(t-\tau))sinc(f-f_d)spd​=Asinc(B(t−τ))sinc(f−fd​)

1.4 相参和非相参累积

  1. 相参积累
  • 没有信息丢失(振幅或相位)。
  • 增益是n,其中n是脉冲数。
  1. 非相参积累
  • 一些信息丢失(相位)
  • 增益约为KaTeX parse error: Expected '}', got 'EOF' at end of input: n^{0.8]
  • 在大多数情况下,相干积分比非相干积分更有效。

目标回波的波动会降低积分增益。

2 实验内容

2.1 参数

  1. PD 过程

步骤1:

步骤2:

2. 计算速度

根据上图2中最大值出现的位置,算得:

3 MATLAB实现

clear;
close all;
N = 4096;
fs = 100e6;
Ts = 1/fs;
R = 3000;
v = 60;
M = 64;    % PRT(脉冲重复周期)
f0 = 10e9;
Tp = 10e-6;
PRT = 100e-6;
PRF = 1/PRT;
B = 10e6;
c = 3e8;
lambda = c/f0;   % 波长
beta = B/Tp;     % 调频斜率SNR = [0 10 20]; % SNR dB
sigma2 = 1./(10.^(SNR/10));   % 噪声方差
noise_index = 1;echo = zeros(M,N);           % 回波
echo_noise = zeros(M,N);     % 回波+噪声
echo_fft = zeros(M,N);       % fft(回波)
echo_noise_fft = zeros(M,N); % fft 回波+噪声)% 每个脉冲的延迟
tau = zeros(1,M);
for m = 1:Mtau(1,m) = 2*(R-m*PRT*v)/c;
end
n = 0:N-1;
t = n*Ts;   % 时间范围
% 发送信号
x = rectpuls(t,Tp).*exp(1i*pi*beta*t.^2);
% 接收信号
y = zeros(M,N);
y_noise = zeros(M,N);
for m = 1:Mtm = tau(m);y(m,:) = rectpuls((t-tm),Tp).*exp(1i*pi*beta*(t-tm).^2)*exp(-1i*2*pi*f0*tm);y_noise(m,:) = y(m,:) + sqrt(sigma2(noise_index)/2)*(randn(1,N)+1j*randn(1,N));% 脉冲压缩X = fftshift(fft(x,N));Y = fftshift(fft(y(m,:),N));Y_noise = fftshift(fft(y_noise(m,:),N));S = conj(X).*Y;S_noise = conj(X).*Y_noise;s = ifft(S);s_noise = ifft(S_noise);echo(m,:) = s;echo_noise(m,:) = s_noise;
end
% coherent sum
% 慢时间FFT
for n = 1:Necho_fft(:,n) = fftshift(fft(echo(:,n),M));echo_noise_fft(:,n) = fftshift(fft(echo_noise(:,n),M));
end%% 画图
r = t*c/2;
f = linspace(-1*PRF/2,PRF/2,M);
v = f*c/f0/2;
xaxis = 1:M;
yaxis = r;
figure(1);
% mesh(t,xaxis,abs(echo));
% xlabel('range(m)'),ylabel('time'),zlabel('amplitude');
imagesc(r,(1:M),abs(echo));
title('Pulse Compression');
xlabel('range(m)');
ylabel('slow time');figure(2);
imagesc(r,v,abs(echo_fft));
% mesh(r,v,abs(echo_fft));
% xlabel('range(m)'),ylabel('doppler'),zlabel('amplitude');
% title('Range-Dopple Heat Map');
title('Pulse Doppler Processing');
xlabel('range(m)');
ylabel('velocity(m/s)');%% 计算过程
fft_num_m = M;
f_m = (0:fft_num_m-1)*(PRF/fft_num_m);
[column,row]=find(abs(echo_fft)==max(max(abs(echo_fft)))); %row->矩阵列值 column->矩阵行值,所以转置了一下
C = [];
D = [];
% 距离
for a = row-3:row+3amp = abs(echo_fft(column-1,a)); % 取幅度值C(a) = amp*t(a)*c/2;             %【sum(幅度(i)*距离(i))】D(a) = amp;% 幅度值
end
d0 = sum(C)/sum(D);
%Velocity
E = [];
F = [];
for a_v = column - 3:column + 3%doppler相上 最大值的左右各3个点共7点amp_v = abs(echo_fft(a_v,(row-1)));E(a_v) = amp_v*f_m(a_v)*lambda/2;F(a_v) = amp_v;
end
v0 = sum(E)/sum(F);
fprintf('无噪声时距离:%fm/s\n',d0);
fprintf('无噪声时速度:%fm/s\n',v0);
% 计算增益
% 1.相参积累
[~,index] = max(max(echo_noise));
P_noise = sum(sum(abs(echo_noise(index-10:index-1)).^2)+abs(echo_noise(index+1:index+10)).^2);
co_g = abs(max(max(echo_noise_fft)))^2/(P_noise);
fprintf('相参积累增益: %f dB\n',10*log10(co_g));
% 2.非相参积累
[~,index] = max(transpose(echo_noise));
P_n = sum(sum(abs(echo_noise(index-10:index-1)).^2)+abs(echo_noise(index+1:index+10)).^2);
nco_g = sum(abs(max(transpose(echo_noise_fft))).^2)/M/(P_n);
fprintf('非相参积累增益:%f dB\n',10*log10(nco_g));

参考文献

《雷达信号处理》

【雷达信号处理】脉冲多普勒PD及其MATLAB实现相关推荐

  1. 雷达信号处理脉冲压缩算法GPU实现及加速(含完整代码)

    下面展示GPU端完成雷达信号处理脉冲压缩算法加速. 为探索GPU部署雷达信号处理提供参考. 脉冲压缩算法 在GPU实现,模拟LFM线性调频信号,完成GPU端 cuda加速 最终与matlab答案进行正 ...

  2. 【读书2】【2014】基于MATLAB的雷达信号处理基础(第二版)——测量多普勒频移:空间多普勒(2)

    假设在距离Rs上,每个基带脉冲回波在发射后的2Rs/c秒进行采样. Assume each basebandpulse echo is sampled 2Rs/c seconds after tran ...

  3. 雷达信号处理算法:静态杂波滤除(附MATLAB代码和数据)

    本文编辑:调皮哥的小助理 本期文章将介绍三种雷达信号处理常用的静态杂波滤方法的基本原理,分别是零速通道置零法.动目标显示(MTI)以及相量均值相消算法(平均相消算法),并分析了静态杂波的滤除效果,以及 ...

  4. matlab连续波文件,radar_matlab 雷达信号处理M,线性调频连续波的,一切运行正常 非常好用。 271万源代码下载- www.pudn.com...

    文件名称: radar_matlab下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 224 KB 上传时间: 2014-12-30 下载次数: 109 提 ...

  5. 带有匹配滤波器的雷达信号调制和脉冲压缩技术的Matlab程序

    带有匹配滤波器的雷达信号调制和脉冲压缩技术的Matlab程序 clear all; %%%  parameters' definition c=3e+8;                       ...

  6. 【雷达与对抗】【2009.08】脉冲多普勒雷达系统的多普勒频率估计

    本文为土耳其比尔肯大学(作者:Hamza So˘gancı)的硕士论文,共77页. 脉冲多普勒雷达系统是最常见的雷达系统之一,尤其是在军事应用中.这些雷达主要用于估计目标的两个基本参数:距离和多普勒频 ...

  7. matlab雷达处理工具箱,GitHub - feng-zx/radar_tools: 雷达信号处理工具箱

    radar_tools工具箱 雷达信号处理MATLAB工具箱 2.0 直接将 "+rt"文件夹放在目录下即可 运行时命令直接输入 rt.[函数名] rt工具箱 数据进制转换函数 d ...

  8. 【运动学】基于matlab脉冲多普勒测距测速【含Matlab源码 1947期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[运动学]基于matlab脉冲多普勒测距测速[含Matlab源码 1947期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  9. 【雷达仿真 | FMCW TDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)】

    本文编辑:调皮哥的小助理 本文引用了CSDN雷达博主@XXXiaojie的文章源码(https://blog.csdn.net/Xiao_Jie1),加以修改和注释,全面地.详细地阐述了FMCW TD ...

最新文章

  1. android帧动画实现方法之一
  2. 使用plsql developer连接centos7上的oracle数据库
  3. 【Linux 经典面试题】
  4. 用相对路径有时居然是这样,,加上%=basePath%
  5. mac php 连接mysql数据库_Mac环境下php操作mysql数据库的方法分享
  6. 一个简单的socket程序-linux
  7. JavaWeb第四讲 会话跟踪技术HttpSession、Cookie、url、隐藏表单域
  8. 深入理解 Java 垃圾回收机制
  9. 查询mysql视图_MySQL数据库简介及常用命令
  10. GNU make manual 翻译( 一百零四)
  11. Linux系统编程(三)进程间的通信
  12. 解析MySQL基础架构及一条SQL语句的执行流程和流转
  13. thymeleaf 中 通用的分页方法
  14. mysql ssl编译_centos编译安装配置支持ssl加密的mysql replication
  15. 判断邮箱格式是否正确(C#实现正则表达式实现)
  16. 什么是V2X?如何通过V2X技术实现5G智慧交通?(一)
  17. bootstrap3 侧边导航栏
  18. mac如何显示隐藏文件
  19. 在Mac上使用android studio调试android手机
  20. (八)Python数据分析与挖掘实战(实战篇)——中医证型关联规则挖掘

热门文章

  1. delphi SysErrorMessage 函数和系统错误信息表 good
  2. Nano Measurer 1.2.5 for win 纳米颗粒粒度分析
  3. python中全局变量global的使用
  4. Java中的UTF-8、UTF-16编码字符所占字节数
  5. Android拉起拼多多
  6. [BUGKU] [PWN] PWN5
  7. IntelliJ idea2017 安装破解
  8. 用Python下载xkcd图片
  9. 京东模拟扫码登陆破解-爬虫
  10. java解析txt文本文件_java读取文本文件内容方法详解,java如何读取txt文件?