目录
1.硬件平台: IWR6843ISKEVM+DCA1000EVM
(3)消除静态干扰算法【因为后面用了滑动平均去噪,故这里不做静态干扰算法处理】
带通滤波器的设计可以参考上一篇内容:MATLAB设计滤波器之新版filterDesigner使用_CoCo哥的博客-CSDN博客
一、引言
非雷达科班出身,“入坑”毫米波雷达一年多,现在把入门毫米波雷达检测呼吸、心跳的传统与改进算法进行开源并归纳整理了相关的资料。欢迎交流以及专业人士的指正。
二、毫米波雷达检测呼吸、心跳基本原理
1.TI官方开发资料:
Vital Signs 68xx Users Guide (ti.com)
2.博主“调皮连续波”开源资料以及原理讲解:
干货 | IWR1642EVM呼吸心跳原始数据采集与仿真分析(含MATLAB代码和数据) (qq.com)
(1)线性调频连续波雷达基本原理(第1讲): 干货-线性调频连续波雷达基本原理(第1讲)
(2)线性调频连续波雷达基本原理(第2讲): 干货-线性调频连续波雷达基本原理(第2讲)
(3)线性调频连续波雷达基本原理(第3讲): 干货-线性调频连续波雷达基本原理(第3讲)
3. 驾驶员生命体征检测原理视频说明(1642EVM,77GHZ)中文讲解:
毫米波雷达的应用无处不在- 1.4 对驾驶员心跳呼吸检测的应用-模拟与混合信号在线培训- 德州仪器(TI)官方视频课程培训
三、 毫米波雷达提取呼吸、心跳信号Matlab算法处理
以下matlab代码基于“调皮连续波”的77GHz IWR1642EVM的算法处理代码进行改进,同时参考了期刊论文文献: 《基于毫米波雷达的生命体征检测》(张兰春,顾海潮)重新设计了带通滤波器分离呼吸心跳信号,并且还参考了另一篇论文:《mmHRV_Contactless_Heart_Rate_Variability_Monitoring_Using_Millimeter-Wave_Radio》对提取的心跳信号进行估计包络的归一化处理。
1.硬件平台: IWR6843ISKEVM+DCA1000EVM
2.mmavestudio参数设置:
配置说明:
雷达配置:一帧2个chirp,一帧50ms,ADC采样点为200个,采样率为4Msps,数据处理时仅采用每帧的第一个chirp。
毫米波雷达发射起始频率:f0=60.25GHz 调频斜率:S=64.985MHz/us(~65e17)有效带宽B=ts*S=3.24925GHz≈3.25GHZ 距离分辨率:ΔR=0.04615m
3.信号处理算法(matlab)
算法流程简介:
(1) 预处理:
%复采样
numChirps = fileSize/2/numADCSamples/numRX; %含有实部虚部,除以2
%共2048个chirps(1024帧*2个chirp)
LVDS = zeros(1, fileSize/2);
%combine real and imaginary part into complex data将实部虚部结合成复数
%read in file: 2I is followed by 2Q adcData数据组成:两个实部,接着是两个虚部
counter = 1;
for i=1:4:fileSize-1 %1T4R
LVDS(1,counter) = adcData(i) + sqrt(-1)*adcData(i+2); %复数形式
LVDS(1,counter+1) = adcData(i+1)+sqrt(-1)*adcData(i+3);
counter = counter + 2;
end
% create column for each chirp:每一列为chirp
LVDS = reshape(LVDS, numADCSamples*numRX, numChirps);
%each row is data from one chirp:每一行为chirp
LVDS = LVDS.';
end
%% 重组数据(4条接收天线的复数数据)
adcData = zeros(numRX,numChirps*numADCSamples);
for row = 1:numRX
for i = 1: numChirps
adcData(row, (i-1)*numADCSamples+1:i*numADCSamples) = LVDS(i, (row-1)*numADCSamples+1:row*numADCSamples);
end
end
%重组数据retVal:200*2048