毫米波雷达学习(四)——系统设计讨论

系列文章目录

毫米波雷达学习(一)——范围估计
毫米波雷达学习(二)——IF信号相位
毫米波雷达学习(三)——速度估计
毫米波雷达学习(四)——系统设计讨论
毫米波雷达学习(五)——角度估计



简介

前面我们已经学习力范围估计、IF信号相位、速度估计三个部分,我们学会了使用FFT,并通过一个帧中的后续线性调频脉冲上执行多普勒FFT。这一篇文章我们对信息进行整合,回顾距离、速度估算的信号处理流程,并设计一个发射信号满足一下指定要求。了解雷达距离方程。

回顾

在这里插入图片描述
由上图可以看出,我们每一个Tc时间内采集的ADC样本都可以存储在矩阵的行,实现可视化,每一行都与唯一的线性调频脉冲相对应,对每一行都执行距离FFT,结果如下图。
注意:X轴代表距离FFT对应频率,但是由于距离和IF频率成比例,此处绘制为等距离轴
在这里插入图片描述
我们发现第三列和第八列都有物体,这是执行距离FFT,执行完之后再使用多普勒FFT,结果如下图:
请添加图片描述
横坐标是距离,纵坐标是速度(其实这里本来应该是与多普勒FFT对应的离散角频率,由于离散角频率和速度成正比,因此此处等效为速度,所以这里的速度也不是连续的,对应的是每一个速度序列),从图上清楚地看见在第三列有两个速度不同的物体。

这种先执行距离FFT再执行多普勒FFT的整个过程称为2D-FFT(二维FFT)

由于FMCWRADAR实现中,每个线性调频脉冲的ADC数据变得可用时以内联的方式执行距离FFT,所以可以将每个线性调频脉冲的ADC数据看作在DSP处接收,再DSP执行多普勒FFT,并将距离FFT存储在存储器中。所以需要确保系统存储器容量是充足的。

设计一个满足条件的帧

当我们获得了距离分辨率、最大距离、速度分辨率、最大速度时
请添加图片描述
由以上公式可知,在Vmax确定的情况下,算出Tc结果。

请添加图片描述

同样的,dres确定的时候,可以直接求出带宽B。
知道Tc和B之后,就可以求出斜率S。

请添加图片描述
接下来一帧的持续时间仅取决于速度分辨率,也就是可以得到Tf的值了
请添加图片描述

由于实际情况没有这么理想,达到线性调频脉冲参数的过程要多更多步骤,例如在最大IF带宽和所需最大距离的乘积成正比,因此,需要在斜率和最大距离之间进行权衡取舍,以及设备限制最大斜率,存储器问题(必须存储所有的距离FFT才能执行多普勒FFT计算)等。

信号强度的决定性因素

决定最大距离的因素有两个,一是ADC采样率,二是最大距离物体反射的信号强度能被雷达检测到。
假设我们拥有一个雷达设备,它正在输出Pt瓦的功率,由于信号扩散,功率密度与距离平方成反比,也就是下面的辐射功率密度表达式。为了使得功率密度增大,一般使用更佳增益的天线。这里的GTX就是天线增益。
请添加图片描述
反射的功率表达式还需要乘以一个变量,该变量表示目标的雷达散射截面积,又称为RCS

请添加图片描述

反射与接收都要损耗,最终结果就是上式,最终功率与发射功率、发射和接收天线增益成正比,与到目标距离的四次方成反比。

但是接收器能否检测到信号不仅仅取决于功率,还在于信噪比SNR(信号能量与噪声能量的比率)
以下是SNR公式,不展开讲解
请添加图片描述
从上面的公式中可以看出,时间越长,噪声越多,这也符合常识。
在接收过程中,信号是确定的,噪声却是随机的,但是经过雷达的信号处理,自然包括距离FFT和多普勒FFT,有价值的信号部分会被累计,而噪声会是一个平均值,这称为处理增益。

存在最小SNR,SNRmin,低于这个值的都不会被雷达接收,这个值一般由设计人员自己选择,当这个值很高时,就很难接收到噪声信号,也会错过部分有价值信号,反之,很容易被干扰,很难漏掉有价值信号。

当选定SNRmin的时候,就可以按照以下方法计算雷达看到的距离。

请添加图片描述

我会坚持学习并更新,非常感谢各位的观看。

### 毫米波雷达中2D FFT与卡尔曼滤波的应用 #### 二维快速傅里叶变换(2D FFT)毫米波雷达信号处理过程中,二维快速傅里叶变换(2D FFT)用于将时间域内的原始回波数据转换到距离-速度空间。具体来说,在接收到来自不同天线通道的数据之后,先执行一次沿慢时间轴的一维FFT来获取多普勒频移信息;再沿着快时间轴做第二次一维FFT得到距离谱图。 ```matlab % 假设输入矩阵SigReshape表示经过预处理后的M×N大小的复数IQ数据, % M对应于不同的发射天线数量乘以接收天线数量NRx*NTx, % N则是每次采样的样本点数目。 function [Sig_fft2D]=RangeDopplerProcessing(SigReshape,Nfft1,Nfft2,NTx,NRx,win1,win2) % 对每一列施加窗函数并计算其对应的范围剖面(Nfft1长度) Sig_range = fftshift(fft(SigReshape.*repmat(win1(:),1,size(SigReshape,2)),Nfft1)); % 将结果重新排列成适合后续操作的形式 Sig_range_reshaped = reshape(Sig_range,[],size(SigReshape,2)/NRx/NTx,NRx*NTx); % 针对每一个范围单元再次应用窗口化和FFT获得最终的距离-多普勒图像 Sig_fft2D = zeros(size(Sig_range_reshaped,1),Nfft2); for k=1:size(Sig_range_reshaped,1) temp = squeeze(Sig_range_reshaped(k,:,:)).'; Sig_fft2D(k,:) = fftshift(fft(temp.*win2,Nfft2))'; end end ``` 这段代码展示了如何利用MATLAB实现上述过程[^2]。通过这种方式可以有效地分离出各个目标的位置及其相对运动状态的信息。 #### 扩展卡尔曼滤波(EKF)算法 为了进一步提高检测精度并对动态变化的目标轨迹做出预测,通常会在完成初步特征提取的基础上引入扩展卡尔曼滤波器来进行平滑处理。EKF是一种针对非线性系统的改进型Kalman Filter,能够适应实际场景中存在的复杂关系模型。 以下是基于MATLAB的一个简单例子说明了怎样构建一个适用于毫米波雷达测距任务中的EKF框架: ```matlab function ekf_demo() %% 初始化参数设置 dt = 0.1; % 时间间隔(s) sigma_w = 0.5; % 过程噪声标准差(m/s²) R = diag([0.1^2]); % 测量噪声协方差 A = eye(4)+dt*[zeros(2);eye(2)]; % 状态转移矩阵 H = [1 0 0 0]; % 输出映射矩阵 Q = blkdiag(zeros(2),sigma_w^2*dt^3/3,sigma_w^2*dt); % 过程噪声协方差 x_hat = [randn()*10; randn()*10; 0; 0]; % 初始状态向量[x,y,v_x,v_y]' P = eye(4)*1e6; % 初步估计的状态协方差阵 true_pos = [-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8]; meas_noise = normrnd(0,R(1)^0.5,length(true_pos),1); figure; hold on; for i=1:length(true_pos)-1 z(i)=true_pos(i)+meas_noise(i); % 获取带噪观测值 % 预测阶段 x_pred=A*x_hat; P_pred=A*P*A'+Q; % 更新阶段 K=P_pred*H'/(H*P_pred*H'+R); % 计算增益K x_hat=x_pred+K*(z(i)-K*H)*P_pred; % 更新协方差矩阵 plot(x_hat(1),x_hat(2),'r.','MarkerSize',10); drawnow limitrate off; pause(dt); end end ``` 此脚本模拟了一个物体在一维直线上的移动情况,并使用EKF对其位置进行了实时追踪。可以看到,即使存在一定的测量误差,该方法仍然能较好地逼近真实路径[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知何人

万分感谢诸位观看

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值