三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

毫米波雷达、纯固态激光雷达,都在用的相控阵啥原理?电磁波怎么分布的?

毫米波雷达、纯固态激光雷达,都在用的相控阵啥原理?电磁波怎么分布的?

引言

毫米波雷达,如果一个收发天线,一次只能测一个距离,反射点位置所在的范围,是以发射源为圆心的球面。2天线2球面相交,范围缩小到一个圆,3天线3球面相交,范围缩小到几个点……要描绘出一个3D物体的轮廓,得需要多少天线?电磁波原本是向四面八方扩散的,相控阵能使波束聚焦一个方向,并能随意改变聚焦方向。
激光雷达,光束是聚焦的,要获取一个面,扫描式思路是线动成面,改变线型排布的n线激光束方向。半固态通过振镜等改变光路实现扫描;纯固态一种思路是利用光学相控阵直接改变射出光线的方向。
都用到了相控阵,这是个啥?啥原理?相控阵,简单地讲,就是利用波的干涉现象,叠加多个固定相位差的同频信号,在振幅加强方向形成具有指向性的主瓣,其余方向抵消削弱。通过改变固定相位差的值,来改变主瓣方向。
电磁波怎么分布的?看不见摸不着,挺难想象的。咋就能形成一个主瓣呢?其余方向呢?电磁波扩散呈球型,以下用一个平面与球相交,截取一个半圆平面,直观显示电磁波的分布。
费话不多说,懒得一步一步查手册写代码,先让AI给段。

先让AI给一段代码

输入:

matlab绘制:z(x,y)=Asin⁡(2πx2+y2+ϕ)z(x, y) = A \sin(2 \pi \sqrt{x^2 + y^2} + \phi)z(x,y)=Asin(2πx2+y2+ϕ);限制(x,y)在圆内x2+y2<=R2x^2 + y^2 <= R^2x2+y2<=R2

输出,测试通过,绘制的是3D图。重新要求2维平面上颜色显示z值,小修改视场角为俯视。

% 1. 定义参数A=1;% 振幅R=5;% 圆的半径ph=0;% 相位偏移 phiresolution=0.1;% 网格分辨率,越小越精细% 2. 生成极坐标网格% r: 半径从 0 到 R% theta: 角度从 0 到 2*pir=0:resolution:R;theta=0:resolution/5:2*pi;% 角度步长通常比半径小以获得更均匀的网格[R_grid,Theta_grid]=meshgrid(r,theta);% 3. 转换为直角坐标 (x, y)X=R_grid.*cos(Theta_grid);Y=R_grid.*sin(Theta_grid);% 4. 计算 Z 值% 注意:sqrt(x^2+y^2) 在极坐标下直接等于 r (即 R_grid)Z=A*sin(2*pi*R_grid+ph);% 5. 绘图figure;surf(X,Y,Z);shading interp;% 平滑着色,去除网格线感colormap jet;% 设置颜色映射axis equal;% 保证 x,y 轴比例一致,使圆看起来是圆的xlabel('X');ylabel('Y');zlabel('Z');title(['z = ',num2str(A),'*sin(2\pi\sqrt{x^2+y^2} + ',num2str(ph),')']);view(0,90);% 平面上,改俯视视角colorbar;% 显示颜色条

调试一个可修改参数版

在上面代码段的基础上修改调试。
最后得到一个版本,可输入参数:发射源间距、个数、相控度数。为:

functionSpaceWavPlot(klam,num,deg)% 波源间距的波长倍数,波源个数,相控相位度数% 1. 定义参数ph=deg/180*pi;% 相位偏移 phiLam=1;% 波长λ,sin(2*pi*r) 的周期T=1A=1;% 振幅ifnum<5R=5*Lam;elseR=num*Lam;% 显示区域半径endNwav=num;% 叠加个数,波束集中程度Dwav=klam*Lam;% 波源间距<λ/2Pwav=linspace(-(Nwav-1)/2*Dwav,(Nwav-1)/2*Dwav,Nwav);Xcp=reshape(Pwav,[1,1,Nwav]);% Pwav重整到第3维,加到每个坐标上% 2. 生成极坐标网格resolution=0.05;% 网格分辨率,越小越精细r=0:resolution:R;% 半径r: [0,R]theta=0:resolution/5:pi;% 角度theta: [0,pi], 角度步长比半径小以获得更均匀的网格[R_grid,Theta_grid]=meshgrid(r,theta);% 3. 转换为直角坐标 (x, y)X=R_grid.*cos(Theta_grid);X3d=X+Xcp;Y=R_grid.*sin(Theta_grid);R3d=sqrt(X3d.^2+Y.^2);% Y自动扩展,原 R = sqrt(x^2 + y^2);% 4. 计算 Z 值ph_sh=2*pi/Lam*Xcp*sin(ph);% 相移2πd/λ* sinθ,θ=<主瓣方向,阵(x分布)的法线(y轴)>Z=A*sin(2*pi*R3d-ph_sh);% 极坐标下 sqrt(x^2+y^2) = rZ=sum(Z,3);% 把第3维相加% 5. 绘图figure;fig=surf(X,Y,Z);% 画立体图shading interp;% 平滑着色,去除网格线感fig.FaceAlpha=0.5;% 设置透明度colormap jet;% 设置颜色映射axis equal;% 保证 x,y 轴比例一致,使圆看起来是圆的xlabel(['X dir, Wave Source',', #number',num2str(num),', #distance',num2str(klam)]);ylabel(['Y dir, #WaveNumber ',num2str(num)]);zlabel('Z');titleStr=['Z = A*sin(2pi*sqrt(x^2+y^2) + ph)',', A=',num2str(A),', deg=',num2str(deg)];title(titleStr,'Interpreter','none');view(0,90);% 幅值用颜色显示在平面上,使用俯视视角colorbar;% 显示颜色条hold on;plot(Pwav,zeros(Nwav),'.');hold off;end

画图输出

1个发射源的图像

SpaceWavPlot(0.25,1,0);% 间距0.25个波长,1个波源


发射源位置分布在X轴上,用小点标记了位置,波源间距遵循λ/2以内;

增加发射源,波束越来越集中

SpaceWavPlot(0.25,5,0)SpaceWavPlot(0.25,9,0)
5个发射源叠加9个发射源叠加

改变主瓣方向

15个源叠加,0°、±45°的图像为:

SpaceWavPlot(0.25,15,-45);SpaceWavPlot(0.25,15,0);SpaceWavPlot(0.25,15,45);
-45°45°
← 返回列表