目录
学习目标:
背景介绍:
学习内容:
一、 Matlab提取S参数相关函数用法简介
sparameters()用法:
rfparam()用法:
二、提取到的数据画图举例
三、总结:
学习目标:
- 能熟练使用Matlab提取S参数(一般是s2p文件)并画图分析。
背景介绍:
七月份毕业入坑射频行业,经常需要处理大量数据,其中就包括矢量网络分析仪采集到的S参数,由于实验室电脑没有ADS,便打算用Matlab进行数据的提取和画图分析,写这篇文章的目的主要是记录自己的学习成果,同时也给有需要的同行们分享自己学到的一些的东西。
学习内容:
一、 Matlab提取S参数相关函数用法简介
很多二端口射频芯片的DataSheets通常都是把S11、S21、S12、S22分别画在同一张图中的形式呈现,本人用到的主要函数有sparameters()和rfparam()。
sparameters()用法:
sparameters()函数可以返回一个s2p文件的S-parameters object,在matlab命令行窗口可以看到它的返回值如下:
提取频率(单位为GHz)数据如下:
filename = "E:\Matlab Projects\S参数\2.s2p";
S = sparameters(filename); % S里面包含:Impedance,NumPorts,Frequencies,Parameters
disp(S);
FreqGHz = S.Frequencies/1e9; %提取出频点
disp(FreqGHz);
rfparam()用法:
rfparam(obj,i,j) 能返回S-parameter Sij,比如:rfparam(S,2,1)就返回S21复数形式的列数据,其中S是指sparameters()函数的返回值,代码和返回值如下:
filename = "E:\Matlab Projects\S参数\2.s2p";
S = sparameters(filename);
FreqGHz = S.Frequencies/1e9;
S21 = rfparam(S,2,1); % rfparam(S,2,1)中,2指数据文件保存时对应的矢网端口2;同理,1指端口1.
为了直观查看数据对应的回波损耗、增益、反向隔离度的dB值,采用了对数转换计算,代码和返回值如下:
filename = "E:\Matlab Projects\S参数\2.s2p";
S = sparameters(filename);
S11 = 20*log10(abs(rfparam(S,1,1))); %提取S11对应的dB值
S21 = 20*log10(abs(rfparam(S,2,1))); %提取S21对应的dB值
S12 = 20*log10(abs(rfparam(S,1,2))); %提取S12对应的dB值
S22 = 20*log10(abs(rfparam(S,2,2))); %提取S22对应的dB值
disp([S11,S21,S12,S22]); %显示[S11,S21,S12,S22]二位数组的值
二、提取到的数据画图举例
前面已经能提取S参数数据了,接下来就是通过画图展现,就直接用plot()函数画图即可,如下是代码和图片演示:
clc
clear
close all
filename = "E:\Matlab Projects\S参数\2.s2p";
S = sparameters(filename);
FreqGHz = S.Frequencies/1e9;
S11 = 20*log10(abs(rfparam(S,1,1)));
S21 = 20*log10(abs(rfparam(S,2,1)));
S12 = 20*log10(abs(rfparam(S,1,2)));
S22 = 20*log10(abs(rfparam(S,2,2)));
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轴标签
文章来源:https://www.toymoban.com/news/detail-858389.html
三、总结:
以上便是本菜鸟工作接近四个月总结的一小部分Matlab提取S参数画图的程序,当然也可以批量获取不同温度或者不同电压下的数据画在同一张图中做对比,感兴趣的小伙伴可以一起交流哦。文章来源地址https://www.toymoban.com/news/detail-858389.html
到了这里,关于Matlab提取S参数文件中的相关数据并画图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!