两个维度看图表
从range维度,水平方向上,反映每个chirp 发出的FMCW被接收天线检测到,2个点的目标,对应两个物体的距离信息。
从chirp维度,垂直方向上,反应一个物体在第一个chirp出现的在刻度1,(例如第3个采样点采到),在第二个chirp上出现在刻度2(例如采样点8采集到),对应物体的距离发生变化。从而进一步可以算出目标物体速度。
outParams->numAdcSamples = profileCfg.numAdcSamples;//采样点数
outParams->numRangeBins =
mathUtils_pow2roundup(outParams->numAdcSamples);
//numRangeBins = 2的numAdcSamples次方
outParams->rangeResolution =(MMWDEMO_RFPARSER_SPEED_OF_LIGHT_IN_METERS_PER_SEC
* profileCfg.digOutSampleRate * 1e3) /(2.f * slope * outParams->numAdcSamples);
//dres = C/2B = C/2ST = C*采样率/2SN(N表示采样数)
outParams->rangeStep = (MMWDEMO_RFPARSER_SPEED_OF_LIGHT_IN_METERS_PER_SEC *
profileCfg.digOutSampleRate * 1e3) /(2.f * slope * outParams->numRangeBins);
距离步进数: = C*采样率/2S/ 2^N(N表示采样数)
range = objIn[objInIdx].rangeIdx * params->rangeStep;
距离 = 格数*步进?
mmWave信号处理流程
ADC采集射频前端的数据,预处理,一维FFT产生距离信息,二维FFT产生速度信息,三维FFT产生角度信息,经过CFAR(CFAR恒虚警率(Constant False-Alarm Rate)是一种雷达信号检测技术。在雷达信号检测中,当外界干扰强度变化时,雷达能自动调整其灵敏度,使雷达的虚警概率保持不变,这种特性称为恒虚警率特性。恒虚警率的获得方法有两种:参量法和非参量法。)输出点云信息(距离/速度/角度),带DSP的芯片进一步算法处理输出目标的轨迹,分类信息
DCA1000 评估模块 (EVM) 为来自 TI AWR 和 IWR 雷达传感器 EVM 的两通道和四通道低压差分信号 (LVDS) 流量提供实时数据捕获和流式传输。数据可以通过 1Gbps 以太网实时流式传输到运行 MMWAVE-STUDIO 工具的 PC 机上,以进行捕获、可视化,然后可以将其传递给所选的应用进行数据处理和算法开发。
clear all
data=readDCA1000('matlab_lab_adc_data.bin');
%data=readDCA1000('adc_data.bin');
frame_cnt=size(data,2)/256/128 %Nchirp = 128,采样点数256
lightSpeed = 3.0e8;
Sample_Rate_Hz = 10e6; %采样率,10MHZ
Slope_Hz = 29.982e12; %斜率29.982Mhz /us
Samples_Per_Chirp = 256;%采样点数256
fftSize1D = 256; %
range_step = ((Sample_Rate_Hz/Samples_Per_Chirp)/Slope_Hz) *(lightSpeed/2) * Samples_Per_Chirp / fftSize1D;%简化一下 距离分辨率dres= c/2B
range_axis = (0:fftSize1D-1)*range_step; %每一个采样点对应的距离刻度
time_axis = (0:fftSize1D-1)/Sample_Rate_Hz;%每一个采样点对应时间刻度
for i =1:size(data,2)/256
recv1_data(1:256,i)=data(1,(i-1)*256+1:i*256);
end
window_1D = hann(256);
radar_data_1dFFT = fft(recv1_data(:,1).*window_1D, fftSize1D);
figure(1);clf
plot(time_axis,real(recv1_data(:,1)),'b');
grid on
hold on
plot(time_axis,imag(recv1_data(:,1)),'r')
xlim([0 2.6e-5]);
ylim([-800 800]);
legend('real','imag')
xlabel('time (seconds)');ylabel('amplitude');
title('Time domain plot')
figure(2);clf
plot(range_axis,20*log10(abs(radar_data_1dFFT)/2^22),'LineWidth',1.5);
grid on
xlim([0 49]);
ylim([-120 0]);
xlabel('Distance (meters)');ylabel('FFT Output(dBFS)');
title('1-D FFT amplitude profile(per chirp)')
Bandwidth = Slope_Hz * fftSize1D /Sample_Rate_Hz;
disp(Bandwidth)
range_resolution = range_step;
disp(range_resolution)
max_range= Sample_Rate_Hz*lightSpeed/2/Slope_Hz;
disp(max_range)
1,中频信号的幅度,时间可以用公式表达:
2,Δθ = 2πfcΔt =2πfc*2 Δd/c = 2πfc*2 Δd/λ/fc = 4π Δd/λ
3,对于 Δd = 1mm的物体,占波长λ 的1/4, Δθ = π
Δf = S2d/c = 333Hz, 占Tc 周期的0.013
以上对比发现中频信号变化对微小物体变化不明显,而相位变化非常明显。
4,根据上诉测量的思路是
如果我们希望 了解 FMCW 雷达响应 物体极小 位移的能力, 那么研究相位 就非常重要。 雷达正是凭此 非常快速且 准确地测量 物体的速度。 这也是在心跳 监测和振动 检测等应用中 使用雷达的 基础。
对于该模块, 我们将首先 快速回顾一下 傅里叶变换中的 一些相关概念。 时域中的正弦波 会在频域中产生 一个尖峰, 该尖峰的 位置与正弦波的 频率相对应。 应了解频域中的 信号是包含振幅 和相位的 复数,这一点 很重要。 因此,虽然此处的 图表示傅里叶 变换的振幅, 但此处的每个值 实际上是一个 包含振幅和 相位的复数。 回忆一下,一个复数 可以在数学上表示为 Ae 的 jθ 次方, 其中 A 是振幅, θ 是相位。 或者,还可以将其 以图形方式表示为 一个相量,该相量 是一个矢量,具有 与振幅 A 相对应的 长度以及与相位 θ 相对应的方向。
在整个系列中, 我们将坚持使用 该相量表示法, 因为我认为 它看起来更加直观。 傅里叶变换的 一条重要性质是, 峰值的 相位对应于 正弦波的 初始相位。
因此,这里的 正弦波以特定的 初始相位开始。 在傅里叶变换中, 该相位反映在此处 峰值的相位中。 在这里,这是一个 正弦波,其频率 与上面的正弦波相同, 但起始相位与该相位 相差 90 度。
我们看到 FMCW 雷达 发射一个称为 线性调频脉冲的 信号,可以使用 频率与时间图 或 f-t 图来表示它, 如此处所示,或者可以 使用振幅与时间图或 A-t 图 等效地表示它。 在模块 1 中, 仔细查看 f-t 图, 我们看到,雷达在往返延迟 τ 之后接收到从物体反射的 线性调频脉冲。 发射信号和 反射的信号 在混频器中进行 混合,以创建具有 恒定频率 Sτ 或等效的 S2d/c 的 IF 信号。
那么,这里顶部的图显示了 TX 线性调频脉冲的 A-t 图。 中间的图是 RX 线性调频脉冲, 它是 TX 线性调频 脉冲的延迟版本, 延迟量为 τ, τ 是往返延迟。 正如我们先前了解到的, 对于单个物体,IF 信号将是一个具有 恒定频率的信号, 换句话说, 单个正弦波。 那么,从数学的角度而言, 我可以将该 IF 信号表示为 Asin(2πft + φ0), 其中频率 f 由 S2d/c 给出, S 是斜率, d 是到物体的 距离,c 是 光速。 相位 φ0 正是 IF 信号在该点 c 的相位。 再次回忆一下 模块 1,混频器 输出中 IF 信号的初始 相位是两个输入的 初始相位的差值。 那么,c 处的该相位, 还是与 φ0 相同, 它将是该相位, 即 A 点处的 TX 线性调频脉冲 相位与 B 点处的 RX 线性调频脉冲 相位之间的差值。
现在,如果 物体移动 一小段距离,从而 使往返延迟 τ 更改 Δτ,IF 信号的 相位会发生什么变化? 这里的蓝色 曲线表示的 新 RX 信号将 移动 Δτ 的距离。 IF 信号也将 相应地发生 变化。
现在,新的 IF 信号的起始相位 -- 即点 F 处的 IF 信号相位 -- 将为 D 处的 相位与 E 处的 相位之间的差值。
现在,E 处的 RX 线性调频脉冲的 相位将与先前 B 处的 相位相同。
但 D 处的 TX 线性调频脉冲相位 将为先前 A 处的相位, 具有额外的相位偏移 2πfcΔτ。 这是因为 TX 线性调频脉冲 在该 Δτ 期间 会移动额外的 相位 2πfcΔτ。 该额外的相位, 即 A 点和 D 点处的 相位差, 将直接 反映在 IF 信号的 相位中 -- 即 F 处的 相位。 那么,该相位, 当物体移动 Δτ 时 IF 信号的 相位变化由 Δφ 等于 2πfcΔτ 给出, 我还可以根据 相应的到物体的 距离变化 Δd, 将其 改写为 4πΔd 除以 λ,
其中我 利用了 这样的事实, 即 Δτ 等于 距离变化的 两倍除以光速, 并且波长等于 光速除以 频率 fc。
那么,现在,要更正 我们迄今为止 对 IF 信号的理解,对于 雷达前方的单个物体,
IF 信号是频率 与物体的距离 成正比的 音调,它的 起始相位 具有随物体 距离的微小变化 Δd 以线性方式 变化的性质。 那么,这是我们 现在知道的公式。 对于与雷达的 距离为 d 的物体, IF 信号是一个 正弦波,其频率 f 由这里的 方程给出, 其相位以线性方式 响应到物体的距离 微小变化 Δd。
我们现在需要 理解,如何物体的 位置发生 微小的变化, 该 IF 信号的频率 和相位如何变化。 我说微小,是指 与雷达的距离 分辨率相比是微小的。
因此,它必须 大约为若干毫米。 在本示例中,我们 假设它为 1 毫米。 那么,请考虑此处 显示的线性调频脉冲。 那么,它是一个 斜率为每毫秒 50MHz 且持续时间 为 40 毫秒的线性 调频脉冲。 如果该雷达 前方的物体 位置改变 1 毫米, 会发生什么情况?
请注意,对于 77GHz 雷达,我们的 1 毫米实际上 对应于波长的 1/4。 那么,首先,如果 该物体的位置 改变 1 毫米,IF 信号的 相位会发生什么情况? 那么,您知道,直接 使用这里的公式 并插入 Δd 等于 1 毫米,即 λ/4, 那么我得到相位的 变化为 180 度。
现在,频率会 发生什么情况? 那么,IF 信号的 频率会改变 Δf, 它等于 S2Δd 除以 c,它是直接 从这里得到的。 插入这些值, S 是每毫秒 50MHz,乘以 -- 距离 d 是 1 毫米,除以光速。 我得到的答案是 333Hz。
现在,这可能看起来 是一个大数字。 但是,在 Tc 等于 40 微秒的观测窗口中, 这仅对应于 0.013 个周期。 那么,该变化 在频谱中无法 识别。 那么,这里的重点是, IF 信号的相位对物体 距离的微小 变化非常敏感。 但频率不是这样, 正如我们看到的, 频率对此类微小的 变化非常不敏感。
那么,此幻灯片只是对我们 在前一张幻灯片中所了解的 内容进行巩固。 位于特定距离的 物体会产生具有 特定频率和 相位的 IF 信号。 那么,这里是与单个 物体相对应的 IF 信号。 它是一个具有 特定频率和 特定起始相位的正弦波, 在该示例中起始相位为 0。 傅里叶变换会 生成单个峰值。 该峰值的相位 对应于此正弦波的 起始相位。 现在,如果我们将物体移动 一小段距离,会发生什么情况? 这会改变起始相位。 正如您可以 在这里看到的, 在该示例中, 这里的相位 改变了 180 度,因为 我假设移动了 1 毫米。 相应地,FFT 的 峰值,其位置 保持不变, 但峰值的 相位改变了 180 度。 因此,它在这里是 0 度, 在这里是 180 度。
那么,我想我们现在具备了 用于了解 FMCW 雷达如何 测量速度的所有工具。
基本思想 是这样的 -- 您发射两个间隔时间 为 Tc 的线性调频脉冲。
与其中每个线性调频脉冲 相对应的距离 FFT 将在相同的位置 具有峰值,但是 具有不同的相位。
这两个峰值的 相位之间的 测量相位差 ω 将 与物体的运动 直接对应。
请注意,如果 物体的速度为 v, 则该物体在此时间段 Tc 内的移动距离 将为 vTc。
那么,这就是这里的 问题,其中峰值之间的 相位差 -- 对应于这两个发射 线性调频脉冲的 峰值相位之间的 相位差由 4π 乘以 物体在该期间内 移动的距离然后 除以 λ 给出。
然后,重新 整理该方程, 您就可以根据 这个测量的 相位差直接 估算速度。
这里的重点是, 在两个连续的 线性调频 脉冲之间测量的 相位差可用于 估算物体的速度。 除速度 测量之外, IF 信号的 相位对微小 移动非常 敏感的事实 也是有趣 应用的基础, 这些应用包括 电机振动监测、 心跳监测等。
此幻灯片是 对部分相关 工作原理的简介。 这里的图描述了 以振荡方式移动的 物体随时间 演变的过程。 那么,此物体 从该位置开始, 向左偏移 一点,然后 返回,再向右偏移 一点,依此类推。 这可以表示一个 正在振荡的物体。 在这里,我们假设 这些移动非常 微小,因此 物体的最大 位移 Δd 是波长的 一小部分,例如 一毫米或更短。
现在,如果我们将一个 雷达放置在该振荡的 物体前方并 发射一系列 等间隔的线性调频 脉冲,会怎么样? 您知道,由于从该物体上 进行反射,因此其中的 每个 TX 线性调频脉冲会产生 一个反射线性调频脉冲,并且 经处理的 IF 信号 会在距离 FFT 中 产生一个峰值。 现在,该峰值的 频率不会在线性 调频脉冲之间 改变太多,因为 Δd 非常小。
但峰值的 相位将会 响应该物体的 振荡移动。 此处显示的就是相关情况。 那么,相位 以特定的值 开始,并将物体的 移动镜像至左侧。 当物体返回时, 相位返回到 其初始值, 然后偏移到 另一侧。 如果我们按时间顺序 绘制测量的峰值相位 -- 您知道,在此相位 是该时间图 -- 该图看起来 如此处所示。 您可以通过查看 该图了解很多信息。 那么,最大 相位偏移 Δφ 与最大 位移 Δd 相关, 如下所示。 因此,在这里, 我可以估算 振动的振幅 Δd。 类似地, 该图的 周期性直接为我 提供振动的周期。 所以,此处的 重点是,距离 FFT 峰值相位 随时间的演变 可用于估算 振动的振幅 和周期。 本模块 到此结束。 我们了解到, IF 信号的相位 对物体距离的 微小变化非常 敏感。 对于如何将其用于 速度估算,我们有了 一定程度的了解。 我们现在拥有了必要的 相关背景知识,可以开始 回答我们 在模块 1 的 末尾提出的问题了。 那么,我们 有多个物体, 它们具有不同的 相对于雷达的速度。 不过, 在测量时, 这些物体 到雷达的距离 碰巧几乎相同。 那么,距离 FFT 显然将向您显示 仅有单个与该距离 d 对应的峰值。 现在,我们如何 分离这些物体呢? 您知道,事实证明, 可以使用称为多普勒 FFT 的工具分离 相对于雷达具有 相同距离但具有 不同速度的物体。