采用中国剩余定理 (CRT) 实现 FMCW COTS 毫米波雷达速度模糊度解析:应用教程(附带MATLAB代码和数据集)

1) 本文档包含关于在应用中国剩余定理 (CRT) 解决调频连续波 (FMCW) 雷达速度模糊问题研究中收集的实时现场数据集的信息。该数据用于题为“在 FMCW COTS 毫米波雷达中使用 CRT 解决速度模糊问题:应用教程”的论文中提出的教程学习。

2) 鼓励研究人员、从业人员和学生在其学习和研究中使用此数据集。作者特此授权使用此数据集,前提是将在使用此数据集的论文中提供对该数据集和相关论文的适当引用。

3) 确定数据集是否适用于预期用途的责任完全由使用该数据集的个人/实体承担。作者不承担因使用该数据集而可能产生的任何明示或暗示的损害/责任。

4) 数据集被组织在22个文件夹中,分别对应相关文献表二中提到的22个数据集。每个文件夹包含一个名为 adcData.mat 的 MATLAB 文件,类型为 double(复数)。这是一个维度为 2×1638400 的矩阵。矩阵的每个元素都是 格式为 的复数。每个复数都是毫米波 (mmwave) 商用现货 (COTS) 汽车毫米波 FMCW 雷达中中频 (IF) 同相-正交 (I/Q) 混频器的输出。实验设置和详细信息请参阅相关文献。

矩阵 adc.Data 的每一行都包含来自两个接收天线之一的数据。每行的数据按照下图 1 进行组织:

图 1 线性调频脉冲、子帧和帧配置

 

 每个线性调频脉冲包含 64 个 ADC 样本。两行数据分别对应 800 帧。每帧包含两个子帧。子帧 1 包含 17 个线性调频脉冲,子帧 2 包含 15 个线性调频脉冲。因此,每行包含 (64 个 ADC 样本/线性调频脉冲 × (17 个线性调频脉冲/子帧 1 + 15 个线性调频脉冲/子帧 2) × 800 帧 = ) 1683400 个复数。
(注意:MATLAB R2020b 无法显示元素超过 524288 个变量的摘要。因此,可能无法观察到 adcData 矩阵的条目。在这种情况下,可以根据需要提取矩阵的所需部分以直观地观察其内容。)

一个子帧可以被视为一个相干处理间隔 (CPI)。从信号处理的角度来看,子帧和帧之间没有区别。由于硬件配置限制,它们的命名方式有所不同。

5)表一列出了两种CPI共有的雷达重要参数。这些参数适用于相关文献表二中的测试1~17。

 借助下图 2,可以直观地看到各个啁啾参数:

图2 实际啁啾

 

相关 CPI 中的线性调频脉冲按照下表进行编程。


表 II 适用于子帧 1。这些线性调频脉冲被归类为配置文件 0。

 表 III 适用于子帧 2。它们被分组为配置文件 1。

 6)试验18~22的数据采用相同的参数收集,但表IV中提到了以下差异:

 数据读取代码:

clc;
close all;
clear;

%%
path = '.\Dataset for Test 2\';
data = load([path,'adcData.mat']);

Rx1 =  data.adcData(1,:);
Rx2 =  data.adcData(2,:);

subframe1 = 17;
subframe2 = 15;
adcsample = 64;
doppler_fft_point = 32;
len_data =  size(Rx1,2);
frames = len_data/adcsample/(subframe1+subframe2);

length_data  =adcsample*(subframe1+subframe2);

%% MTI history
history1 = zeros(adcsample,subframe1);
history2 = zeros(adcsample,subframe2 );

for f_idx = 250:frames

    rx1 = Rx1((f_idx-1)*length_data+1:f_idx*length_data);

    rx1_rd = reshape(rx1,adcsample,subframe1+subframe2);

    rx1_rd_subframes1 = rx1_rd(:,1:subframe1);
    rx1_rd_subframes2 = rx1_rd(:,subframe1+1:end);

    %range fft
    RangefftRX1_subframes1 = complex(zeros(adcsample,subframe1));
    RangefftRX1_subframes2 = complex(zeros(adcsample,subframe2));

    for sub1_idx = 1:subframe1
        RangefftRX1_subframes1(:,sub1_idx) = fft(rx1_rd_subframes1(:,sub1_idx).*hanning(1,adcsample));
    end

    for sub2_idx = 1:subframe2
        RangefftRX1_subframes2(:,sub2_idx) = fft(rx1_rd_subframes2(:,sub2_idx).*hanning(1,adcsample));
    end

    %MTI
    alpha = 0.99; %α值越小,滤波输出就越依赖于历史记录,因此滤波器的表现就会越滞后,更有利于检测微动目标。
    %α值接近1意味着历史记录几乎不会产生任何影响,因此滤波器对变化的反应很快,但也可能会漏掉一些静态目标,更有利于检测大幅度运动目标。
    Fn1 = RangefftRX1_subframes1 - history1;
    history1 = alpha*RangefftRX1_subframes1+(1-alpha)*history1;

    Fn2 = RangefftRX1_subframes2 - history2;
    history2 = alpha*RangefftRX1_subframes2+(1-alpha)*history2;

    %doppler fft
    DopplerfftRX1_subframes1 = complex(zeros(adcsample,doppler_fft_point));
    DopplerfftRX2_subframes2 = complex(zeros(adcsample,doppler_fft_point));
     for j = 1:adcsample
        DopplerfftRX1_subframes1(j,:) = fftshift(fft(Fn1(j,:).*hanning(1,subframe1),doppler_fft_point));
        DopplerfftRX2_subframes2(j,:) = fftshift(fft(Fn2(j,:).*hanning(1,subframe2),doppler_fft_point));
     end

    figure(1);
    subplot(121);
    mesh(abs(DopplerfftRX1_subframes1));
    title(['frames = ',num2str(f_idx)])

    subplot(122);
    mesh(abs(DopplerfftRX2_subframes2));
    title(['frames = ',num2str(f_idx)])

end

绘图结果:

 如需数据集,可以咨询调皮连续波。

...全文
83 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
【无人机】无人机FMCW毫米波高计雷达仿真(Matlab代码实现)内容概要:本文档围绕无人机FMCW毫米波高计雷达的Matlab仿真展开,详细介绍了基于FMCW(调频连续波)技术的毫米波雷达在无人机高测量中的应用实现方法。通过Matlab代码实现雷达信号的发射、接收、混频、傅里叶变换及高信息提取等关键步骤,帮助读者理解FMCW雷达的工作原理、信号处理流程以及在无人机场景下的实际仿真建模。文档还包含雷达测距精分析、噪声影响评估及参数优化等内容,旨在为相关科研与工程实践提供完整的仿真参考。; 适合人群:具备一定Matlab编程基础和信号处理知识的高校学生、科研人员及从事无人机感知系统开发的工程师,尤其适合从事雷达、导航与测控方向的研究者。; 使用场景及目标:①掌握FMCW毫米波雷达的基本原理与信号处理流程;②学习如何在Matlab中构建无人机高计雷达仿真系统;③为无人机精确测高、地形跟随、自主着陆等应用场景提供技术支持与算法验证平台。; 阅读建议:建议读者结合Matlab代码逐段调试运行,深入理解每个模块的功能与参数设置,同时可扩展学习雷达信号处理中的FFT、混频、距离解析等相关知识,进一步优化仿真模型以适应实际硬件环境。

173

社区成员

发帖
与我相关
我的任务
社区描述
欢迎加入雷达技术交流社区!让我们一起讨论雷达技术。
信号处理信息与通信目标检测 技术论坛(原bbs) 四川省·成都市
社区管理员
  • 调皮连续波(毫米波雷达)
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

雷达技术社区的核心定位是推动技术创新、促进成果转化、推动跨学科发展和军民融合,其目标人群涵盖了科研人员、企业人员、政府机构、技术爱好者、社区用户以及国际合作伙伴等多个群体。这些定位和目标人群共同构成了雷达技术社区的生态系统,推动其在多个领域中的持续发展与应用。

试试用AI创作助手写篇文章吧