前言:因为导师说,用HFSS的图在PPT中展示并不利于调控,最好用matlab来实现绘图,也就简单的搜了搜网上现成的代码,结果发现,如果用FloquentPort,得到的结果文件后缀是.s4p,而一般用waveport得到的结果是.s2p,当然,刚接触这部分,也不知道两个文件后缀名的本质含义是什么,如果有懂的大佬还希望可以评论区解答一下,十分感谢。
一、导出HFSS中的S参数
- 导出.sNp文件格式
右击Results–>Solution Data
选择Display All Frequencies、S Matrix–>Export
选择Export Matrix Data… 导出文件为 *.sNp 格式
二、.sNp文件解读
用记事本打开.sNp文件,以.s4p为例,因为考虑的场景是一个超表面仿真,所以FloquentPort的S参数包含了两种模式的信息(TE、TM mode),分别对应1,2。图片中红框对应参数为构建几何的基本信息,而黄框内展示的是两个端口对应的两种模式,!port[]中的编号用于后续的信息提取使用(rfparam()函数)
!Port[1]: TE模式下的端口1
!Port[2]: TM模式下的端口1
!Port[1]: TE模式下的端口2
!Port[1]: TM模式下的端口2
三、用matlab实现S参数的绘制
首先套用matlab代码
clear;
clc;
filename = "*.s4p or *.s2p" % 文件所在的绝对路径
S=sparameters(filename);
FreqGHz=S.Frequencies;
S11 = 20*log10(abs(rfparam(S,1,1))); % 对应上述二中写道的!port[]中的编码
S21 = 20*log10(abs(rfparam(S,2,1)));
S12 = 20*log10(abs(rfparam(S,1,2)));
S22 = 20*log10(abs(rfparam(S,2,2)));
% disp([S11]); %显示[S11,S21,S12,S22]二位数组的值
figure(1)
plot(FreqGHz,S11);hold on; %画图
grid on; %添加网格
xlim([FreqGHz(1) FreqGHz(end)]); %X轴上下限设置
legend("S11",'Location','best'); %添加图例
title("S11 vs Frequency"); %添加图表标题
xlabel("Frequency(GHz)"); %添加X轴标签
ylabel("S11(dB)"); %添加y轴标签
figure(2)
plot(FreqGHz,S21);hold on; %画图
grid on; %添加网格
xlim([FreqGHz(1) FreqGHz(end)]); %X轴上下限设置
legend("S21",'Location','best'); %添加图例
title("S21 vs Frequency"); %添加图表标题
xlabel("Frequency(GHz)"); %添加X轴标签
ylabel("S21(dB)"); %添加y轴标签
figure(3)
plot(FreqGHz,S12);hold on; %画图
grid on; %添加网格
xlim([FreqGHz(1) FreqGHz(end)]); %X轴上下限设置
legend("S12",'Location','best'); %添加图例
title("S12 vs Frequency"); %添加图表标题
xlabel("Frequency(GHz)"); %添加X轴标签
ylabel("S12(dB)"); %添加y轴标签
figure(4)
plot(FreqGHz,S22);hold on; %画图
grid on; %添加网格
xlim([FreqGHz(1) FreqGHz(end)]); %X轴上下限设置
legend("S22",'Location','best'); %添加图例
title("S22 vs Frequency"); %添加图表标题
xlabel("Frequency(GHz)"); %添加X轴标签
ylabel("S22(dB)"); %添加y轴标签
根据所需的组合来调整rfparam(S, , )
中的参数可以得到需要的图片
有说的不对的,欢迎评论区指正