从HFSS仿真软件中可以直接查看仿真远场3d辐射图,如下右图,本以为HFSS导出的图不能是矢量图,所以就将数据导出,利用matlab来画图,然后导出emf格式的矢量图,如下左图。但是仍旧有锯齿存在,设想是需要好的插值算法来拟合消除锯齿,目前还没尝试出来,如果哪位读者看到了,有方法,希望留言给我。
首先分析HFSS中导出的数据,3d辐射图有三列数据,分别是phi、theta、gain。我设置的phi是从0~360°,theta是从0°~180°,间隔都是2°。
下面直接给出画图程序,
A=load('file.csv');
pow=A(:,3);
gain=reshape(pow,181,91);
theta=linspace(0,pi,91);
phi=linspace(0,2*pi,181);
[pp,tt]=meshgrid(theta,phi);
[x,y,z]=sph2cart(pp,pi/2-tt,gain+100); %增益不能为负值
surf(x,y,z,gain+100);
xlabel x;
ylabel y;
zlabel z;
shading interp;
axis equal;
colormap("jet");
colorbar;
画图程序使用中遇到几个问题,
1、gain数组的重构,行列根据HFSS中的设置来重构,这里是181*91的矩阵。
2、sph2cart函数中gain不能直接使用原来的值,因为gain小于零画不出原图。sph2cart的坐标变换公式与常用的公式不同,注意俯仰角的取值
3、meshgrid(m,n)设置网格,注意行列的设置,会变成n*m矩阵。