矢量网络分析仪(VNA)测量S参数,利用MATLAB处理Active S11

矢量网络分析仪(VNA)测量S参数,利用MATLAB处理Active S11

测试S参数的注意点:
1.要将所有的连接器都进行校准,最好的状态是校准完之后直接装天线,可以减小甚至消除因为连接器带来的相位误差;
2.每测量一次要进行一次校准,为什么测量后有偏差?
3.开始校准时要进行频率的选择和步进的确定;
4.特别分批次测量时,如果选择步进不一致,数据处理有麻烦;
5.线长对应相位的相位周期数计算公式,应该是的吧
用matlab处理:
1.当储存的数据分别在两个CSV后缀文件里,想把他们合并在同一文件里面。例如实部虚部被分开储存了,例如幅度相位被分开了。
处理想法是,将第二文件的第二列加到第一个文件的第三列,或者将第一个文件的第三列替换成第二个文件的第二列;
2.要处理幅度和相位改成实部和虚部。直接带入公式很简单,注意角度输入要转化成弧度带入;下面这段文字主要是针对幅度相位的,顺带求出了实部虚部,并且以多种形式储存了。

clear all;
close all;

X1=importdata('C:\Users\Administrator\Desktop\2021.1.15\2021.1.15\N5_S12_MAG.csv');
X2=importdata('C:\Users\Administrator\Desktop\2021.1.15\2021.1.15\N5_S12_P.csv');

res=zeros(201,3);%这个分号使命令行窗口不出现0矩阵,简洁
for i=1:201
   res(i,1)=X1.data(i,1);
end
for i=1:201
   res(i,2)=X1.data(i,2);
end
for i=1:201
   res(i,3)=X2.data(i,2);
end
 
Sum=zeros(201,2);
for i=1:201
 temp1=res(i,3)*pi/180;
 Sum(i,1)=res(i,2)*cos(temp1);
end
for i=1:201
 temp2=res(i,3)*pi/180;
 Sum(i,2)=res(i,2)*sin(temp2);
end
xlswrite('C:\Users\Administrator\Desktop\2021.1.15\2021.1.15\N5_S12_1',res);
xlswrite('C:\Users\Administrator\Desktop\2021.1.15\2021.1.15\N5_S12_2',Sum);
%或者整合成一个文件;导出为XLS文件。
clear all;
close all;
 
X1=importdata('C:\Users\Administrator\Desktop\2021.1.15\2021.1.15\N5_S12_MAG.csv');
X2=importdata('C:\Users\Administrator\Desktop\2021.1.15\2021.1.15\N5_S12_P.csv');
 
res=zeros(201,5)
for i=1:201
   res(i,1)=X1.data(i,1);
end
for i=1:201
   res(i,2)=X1.data(i,2);
end
for i=1:201
   res(i,3)=X2.data(i,2);
end
for i=1:201
 temp1=res(i,3)*pi/180;
 res(i,4)=res(i,2)*cos(temp1);
end
for i=1:201
 temp2=res(i,3)*pi/180;
 res(i,5)=res(i,2)*sin(temp2);
end
xlswrite('C:\Users\Administrator\Desktop\2021.1.15\2021.1.15\N5_S12_P2',res);
保存成.csv格式.xls格式.xlsx格式都可以。
t=table(res);
writetable(t,'C:\Users\Administrator\Desktop\2021.1.15\2021.1.15\N5_S12.csv');
t=table(res);
writetable(t,'C:\Users\Administrator\Desktop\2021.1.15\2021.1.15\N5_S122.xlsx');

3将数据部分处理完成后就是对S参数的整合过程,并将整合的S参数用图形绘制出来。
在这里插入图片描述

clear all;
close all;
 
X1=importdata('C:\Users\Administrator\Desktop\New folder 2021.1.13\1_X1_S12_MAG.csv');
X2=importdata('C:\Users\Administrator\Desktop\New folder 2021.1.13\1_X2_S12_MAG.csv');
X3=importdata('C:\Users\Administrator\Desktop\New folder 2021.1.13\1_X3_S12_MAG.csv');
X4=importdata('C:\Users\Administrator\Desktop\New folder 2021.1.13\1_X4_S12_MAG.csv');
S11=importdata('C:\Users\Administrator\Desktop\New folder 2021.1.13\1_S11_MAG.csv');
 
Sum=zeros(1,201);
for i=1:201
temp=S11(i,4)+X1(i,4)+X2(i,4)+X3(i,4)+X4(i,4)+1j*(S11(i,5)+X1(i,5)+X2(i,5)+X3(i,5)+X4(i,5));
Sum(1,i)=20*log10(abs(temp));
end
 
freq=zeros(1,201);
for i=1:201
   freq(1,i)=S11(i,1)/1000000000;
end
 
plot(freq,Sum,':','LineWidth',3);
grid on;
xlabel('fre/GHz');
ylabel('S11/dB');

成品
在这里插入图片描述

  • 2
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的C#自动化测试S参数的Demo,使用的是罗德与施瓦茨(R&S)的矢量网络分析仪: ```csharp using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using RohdeSchwarz.Vna.Interop; namespace VectorNetworkAnalyzer { class Program { static void Main(string[] args) { //连接到矢量网络分析仪 var vna = new Vna(); vna.Connect("TCPIP::192.168.1.1::INSTR"); //初始化矢量网络分析仪 var channel = vna.ActiveChannel; channel.SweepType = SweepType.Linear; channel.SweepStart = 1e9; channel.SweepStop = 10e9; channel.SweepPoints = 101; //执行S参数测试 var trace = channel.Traces.First(); trace.Parameter = Parameter.S11; trace.Format = Format.LogarithmicMagnitude; trace.Measurement.Start(); //读取测试结果 double[] data = trace.Measurement.Fetch(); //输出测试结果 foreach (double d in data) { Console.WriteLine("{0:F2} dB", d); } //关闭连接 vna.Disconnect(); } } } ``` 这个Demo使用了RohdeSchwarz.Vna.Interop库来连接到矢量网络分析仪,并使用TCP/IP接口进行通信。在代码中,我们首先连接到仪器,然后初始化测试参数,执行S参数测试,读取测试结果并输出。最后关闭连接,释放资源。 需要注意的是,这个Demo仅供参考,实际应用中需要根据具体的测试需求进行修改和完善。另外,如果你使用的是其他品牌的矢量网络分析仪,需要使用相应的驱动程序和指令。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值