Matlab处理矢量网络分析仪采集的NF数据并作图

目录

一、需求分析

二、随机数据的构成

1、假设生成工作频段在1~2GHz,且Step=10MHz的频点数据

2、生成一组1~1.2dB的随机NF数据并加入干扰突起点

3、随机生成的频点和NF数据画图

三、NF数据处理画图

1、数据异常点去除

2、去除异常点后画图对比

3、数据的平滑处理

4、NF、去除异常点(NFh)数据和去除异常点并且平滑的(NFhs)数据画图对比。

四、小结


一、需求分析

上文提到Matlab提取S参数画图,但在射频测试中还有其他指标数据需要处理,其中最棘手的便是NF(Noise Figure),每次矢量网络分析仪保存的NF数据由于不是在屏蔽室中采集,往往会伴随一些外界干扰使数据有异常突起。通过采取屏蔽箱的手段做对比确定异常突起点的确是外界干扰造成的,并非所有测试平台都处于屏蔽室或者把DUT(Device Under Test)放入屏蔽箱中。因此能明确是外界干扰的数据可以通过后期处理抹掉并平滑,本文主要展示NF数据异常点的去除和平滑。

二、随机数据的构成

公司的NF数据并不能带回家中,在演示数据处理之前先随机生成一组NF数据。

1、假设生成工作频段在1~2GHz,且Step=10MHz的频点数据
% 生成1~2GHz,step=10MHz的频率点
Frequency = (1000:10:2000)/1000;
2、生成一组1~1.2dB的随机NF数据并加入干扰突起点

生成随机数使用的是unifrnd(A,B)。

MATLAB帮助文档中描述: R=unifrnd(A,B)返回从具有分别由A和B指定的下端点和上端点的连续均匀分布生成的随机数的数组R。如果A和B是数组,则R(i,j)由A和B的相应元素指定的分布生成。如果A或B是标量,则将其扩展到另一个输入的大小。

该函数的更多用法请查看MATLAB帮助文档。

for ii = 1:101 %生成101个点的随机范围内的噪声系数
   NF(ii,:) = unifrnd(1,1.2); 
end
for ii =1:40:101 %给NF数据随机插入几个异常突起点
   NF(ii,:) = NF(ii,:) + unifrnd(3,6);
end
3、随机生成的频点和NF数据画图

MATLAB画图上文中提过,此处不过多赘述,感兴趣可以点击此链接翻阅

%自己随机生成的NF画图
figure(1)
plot(Frequency,NF,"LineWidth",2,"Color","b");hold on;
legend('未做处理的NF');
grid on;
xlabel("Frequency(GHz)");
ylabel("NF(dB)");
title("NF vs Frequency");
ylim([0 8]);

三、NF数据处理画图

1、数据异常点去除

通常NF数据的异常点去除都可以采用MATLAB自带的hampel(x,k)函数做处理。

MATLAB帮助文档中描述: y=hampel(x,k)指定测量窗口中x的每个样本两侧的邻居数量k。k默认为3。

该函数的更多用法请查看MATLAB帮助文档。

 %随机生成的NF异常点去除
NFh = hampel(NF,5); %此处k取5,k的取值要保证NFh的值除异常点外和NF几乎没差别
2、去除异常点后画图对比
%自己随机生成的NF和该NF去除异常点后的NFh画图
figure(1)
plot(Frequency,NF,"LineWidth",2,"Color","b");hold on;
plot(Frequency,NFh,"LineWidth",2,"Color","g");hold on;
legend('未做处理的NF','去除异常点的NF');
grid on;
xlabel("Frequency(GHz)");
ylabel("NF(dB)");
title("NF vs Frequency");
ylim([0 8]);

3、数据的平滑处理

数据平滑处理直接采用smooth(y,span)。

MATLAB帮助文档中描述: yy=smooth(y,span)将移动平均线的跨度设置为span。

该函数的更多用法请查看MATLAB帮助文档。

%去除异常点后的NF再做平滑处理
NFhs = smooth(NFh,5); %此处Span=5
4、NF、去除异常点(NFh)数据和去除异常点并且平滑的(NFhs)数据画图对比。
%自己随机生成的NF和经过异常点去除以及平滑后的NF数据画图
figure(1)
plot(Frequency,NF,"LineWidth",2,"Color","b");hold on;
plot(Frequency,NFh,"LineWidth",2,"Color","g");hold on;
plot(Frequency,NFhs,"LineWidth",2,"Color","r");hold on;
legend('未做处理的NF','去除异常点的NF','去除异常点并平滑的NF');
grid on;
xlabel("Frequency(GHz)");
ylabel("NF(dB)");
title("NF vs Frequency");
ylim([0 8]);

四、小结

通过上节和本节内容的简单学习,我们能通过MATLAB提取并进行数据的简单处理,这些方法在工作中相对比较实用,作为一名新入行的射频从业者,本菜鸟发现射频的难点就在于需要大量的实验和数据积攒去发现其中的规律,所以我认为数据的提取和处理是我当下必须快速掌握的一门技能,希望有同行从业者能提出一些改进建议,我们一起在射频行业探讨、成长。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零壹电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值