LFM雷达及USRP验证【章节5:USRP实际测试】

news/2024/7/3 12:23:03 标签: USRP, matlab

1. 实验原理

 USRP发送200次LFM脉冲,对每次接收到的信号进行采样,每一采样点数为N,接收端将采样得到的离散回波信号构成200*N维矩阵,按照章节3的实现原理,对矩阵的每一行进行脉冲压缩,得到Range-FFT(距离幅度谱),在对Range-FFT进行傅里叶变换得到Speed-FFT,进而实现LFM雷达的测距测速,实验流程图如下:

2. USRP实验环境

2.1 USRP原生参数

参数名参数含义
Fc射频载波频率(4GHz)
fsUSRP采样率200MHz(这已经是最大采样率)
BB=0.4fs=80MHz(带通信号要满足带奎斯特采样定律)
PRFUSRP发射脉冲的速率,我们设置为一秒发射100次
N_Tx _samples发射一次脉冲的采样点数4096(必须为4096的整数倍)
N_Rx_samples接收一次脉冲的采样点数4096(必须为4096的整数倍)

单次采样点数会决定雷达的最大检测距离。 

2.2 LFM波形参数

参数设置参数含义
Tp一个Chrip信号的时宽1us,Tp=1e-6
PRF每秒脉冲重复频率为100
Tr脉冲重复周期等于1/PRF=10ms
Kr                    调频率Kr=B/Tp=4e14
t采样时间t=N_Tx_samples/fs=4096/200M=20.48us
Rmax最大检测距离(受到采样时间的限制)Rmax = c/2*t=3072m
R_resolution距离分辨率=c/2B=1.875m

3. 上位机matlab代码

3.1 发射机代码

%==========================================================================
%%  USRP_Tx
%   单个LFM
%%  USRP 参数
%   采样率200MHz,带宽80MHz,采样点数4096,采样时间20.48us
%%  LFM 参数
%   时宽1us,带宽80MHz,最大检测距离
%==========================================================================
clear;clc;close all;
%% LFM参数设置
fc = 4e9;                               %载波频率
PRF = 100;                              %脉冲重复频率
Tr = 1/PRF;                             %脉冲重复周期
Fs = 200e6;                             %采样频率
B = 0.4*Fs;                             %带宽
Ts = 1/Fs;                              %采样时间
Tp = 1e-6;                              %脉宽1000ns
c = 3e8;                                %光速
lamda = c/fc;                           %载波波长
Kr = B/Tp;                              %调频斜率
N_LFM = 100;
N_samples = 4096;                       %采样点个数
sample_t = N_samples/Fs;                %采样时间
Total_sample_t = sample_t*N_LFM;        %总发射时间
t = linspace(0,sample_t,N_samples);     %采样时间离散化
Rmax = c/2*sample_t;                    %最大检测距离(受到采样时间的限制)
R_resolution = c/(2*B);                 %距离分辨率
Vmax = lamda*PRF/2;                     %目标最大速度,最大测速范围满足在第一盲速之内

%% Tx LFM波形生成
LFM_Tx = rectpuls(t-Tp/2,Tp).*exp(1i*pi*Kr*(t-Tp/2).^2); %时域Tx

单个LFM波形仿真

 重复发射单个脉冲100次,一共得到4096*100个数据点 

3.2 接收机代码 

接收到100*4096个数据点后需要首先进行串并转换

%==========================================================================
%%  USRP_Rx
%   单个LFM
%%  USRP 参数
%   采样率200MHz,带宽80MHz,采样点数4096,采样时间20.48us
%%  LFM 参数
%   时宽1us,带宽80MHz,最大检测距离
%==========================================================================
clear;clc;close all;

%% LFM参数设置(与Tx保持一致)
fc = 4e9;                               %载波频率
PRF = 100;                              %脉冲重复频率
Tr = 1/PRF;                             %脉冲重复周期
Fs = 200e6;                             %采样频率
B = 0.4*Fs;                             %带宽
Ts = 1/Fs;                              %采样时间
Tp = 1e-6;                              %脉宽1000ns
c = 3e8;                                %光速
lamda = c/fc;                           %载波波长
Kr = B/Tp;                              %调频斜率
N_LFM = 100;
N_samples = 4096;                       %采样点个数
sample_t = N_samples/Fs;                %采样时间
Total_sample_t = sample_t*N_LFM;        %总发射时间
t = linspace(0,sample_t,N_samples);     %采样时间离散化
Rmax = c/2*sample_t;                    %最大检测距离(受到采样时间的限制)
R_resolution = c/(2*B);                 %距离分辨率
Vmax = lamda*PRF/2;                     %目标最大速度,最大测速范围满足在第一盲速之内
R_range = c*t/2;    %在采样时间内,距离的范围

%% 接收回波信号 100*4096个数据点
LFM_Rx = rand(1,N_LFM*N_samples);  %假设得到了串行数据流
LFM_s2p = reshape(LFM_Rx,N_samples,N_LFM).';  %串并转换(每一行表示一个LFM回波的4096个数据点,一共100行)
%% Rx 匹配滤波参考波形生成
LFM_reference = rectpuls(t-Tp/2,Tp).*exp(1i*pi*Kr*(t-Tp/2).^2); %时域Tx

%% 每一行进行匹配滤波
LFM_reference_f = conj(fft(LFM_reference));%匹配滤波器的频域特性
for i=1:N_LFM
    LFM_mf(i,:)=ifft(fft(LFM_s2p(i,:)).*LFM_reference_f);  %分别对每一行脉冲压缩 频域脉冲压缩(匹配滤波mf)          
end

%% 图像输出
%----------------------------测距(Range FFT)------------------------------
% 第一个回波信号的距离幅度谱
figure(1);
plot(t*c/2,abs(LFM_mf(1,:)))                       
title('第一个回波信号的距离幅度谱');
%----------------------------测速(Speed FFT)------------------------------
LFM_speed=fft(LFM_mf,[],1);
V=linspace(0,PRF,N_LFM)*lamda/2;
% 尝试着画一下三维图
figure(4)
mesh(R_range,V,abs(LFM_speed)/max(max(abs(LFM_speed))));
xlabel('距离/m'); 
ylabel('速度/(m/s)');
zlabel('幅度/db');
title('目标距离速度信息一览');

4. USRP收发测试

接收机参考电平Reference Level由下式计算

%% 弗里斯传输公式Lbs
%% 接收端信号强度dBm RSS
clear;clc;close all;
fc = 4000; %单位MHz
R = 0.1; %距离,单位km
c = 3e8;
lamda = c/fc;
Pt = 10;%dBm
Gt = 15.5;%dB
Gr = 15.5;
Lc = 0;
Lbf = 32.5+20*log10(fc)+20*log10(R);%单位dB
RSS = Pt + Gt + Gr - Lc - Lbf; %单位dBm

因此,我们检测范围在0.05km内,发射机功率为5dBm,天线增益为15.5dB时,接收机接收功率为-43dBm左右,因此我们可以将接收机电平设置为-45dbm。

  • IQ信号流盘

我们存100次LFM回波,每个LFM回波由4096个IQ数据点构成,一共409600个数据点

 4.1 USRP数据发射

外场测试环境 

 发射~~~biu~~~biu~~biu~

发射机幅度谱如下图所示

仿真得到的时域波形及幅度谱USRP发射信号的幅度谱【真实】

分析:从右图USRP实际发射的LFM波形的幅度谱可知,在中心频点(4GHz)两侧各有约40MHz左右的带宽,总带宽为80MHz,与我们设置参数一致。 

4.2 USRP接收机信号处理

将接收到的数据点进行串并转换,并对每一行进行脉冲压缩

  • 仿真结果
幅度谱距离速度谱

 在仿真中,我们假设在50m范围内存在4个目标物体,他们的距离和速度从图中易知。

  • 实际结果 

图中两个幅度接近0dB的脉冲可知,第一个尖峰属于约150米外的角反反射回来的回波,第二个回波与第一个角反回波相距约25米可能是后面约1.5米高的墙体反射回来的回波,再后面的两个幅度为-8dB左右的尖峰可能是更远处红色楼房的墙体反射回来的回波信号,但是,显而易见这些不同目标物体都能够被LFM雷达很好的探测。 


http://www.niftyadmin.cn/n/185230.html

相关文章

大数据分析工具Power BI(十四):制作相关性分析图表

制作相关性分析图表 相关性分析可以分析两个指标之间的关系,验证指标之间是否存在某种关系。可以使用散点图、气泡图来进行相关性分析。 一、散点图 需求:使用散点图展示"2022年点播订单表"每月订单量和营收金额相关性。 新建页面并命名为散点图,

LeetCode-72. 编辑距离

目录动态规划题目来源 72. 编辑距离 动态规划 1.确定dp数组(dp table)以及下标的含义 dp[i][j] 表示以下标i-1为结尾的字符串word1,和以下标j-1为结尾的字符串word2,最近编辑距离为dp[i][j]。 2.确定递推公式 在确定递推公式…

详解 Tree-structured Parzen Estimator(TPE)

Brief Introduction TPE(Tree-structured Parzen Estimator),是一种基于树结构的贝叶斯优化算法,用于解决黑盒函数的全局最优化问题。 在每次试验中,对于每个超参,TPE 为与最佳目标值相关的超参维护一个高…

Compose

一、概念1.1 解决的问题APP展示的数据绝大多数不是静态数据而是会实时更新,传统的命令式UI写法更新界面繁琐且容易同步错误。1.2 Compose优势由一个个可组合的Composable函数(可看作是一个容器)拼成界面,方便维护和复用。首先会生…

【Hello Linux】线程控制

作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:简单介绍linux中的线程控制 线程控制线程创建线程等待线程终止线程分离线程id和进程地址空间布局线程创建 我们可以通过下面pthread_c…

node-express框架

文章目录一.express二.初体验三.express路由四.获取请求报文参数五. express响应设置六.获取请求体数据一.express express是基于node.js平台的极简、灵活的WEB应用开发框架, 点击跳转官方网址 二.初体验 初始化项目 npm init 命名: express-learn 安装express: npm i expr…

锁策略相关知识

hi,大家好,今天为大家带来的知识非常重要也很多,我们一起加油呀,先来看看目录 目录 一:锁策略 1.乐观锁vs悲观锁 2.轻量级锁vs重量级锁 3.自旋锁vs挂起等待锁 4.互斥锁vs读写锁 5.可重入锁和不可重入锁 6.公平锁vs非公平锁 7.总结.synchronized的特点 二:CAS 1.什么是CAS 2.CAS…

visual studio 2019 调试驱动

搭建驱动开发环境 搭建环境需要两台机器,本地机器用来代码开发,一台虚拟机用来测试和安装驱动 ,搭建驱动开发环境参考。visual studio 添加调试机器 驱动工程的属性 -> Driver Installer -> Deployment, 点击…按钮添加目标机器用来安…