将“NPoles”参数与rationalfit一起使用

此示例演示如何使用“NPoles”参数来提高理性。默认情况下理性函数使用48个或更少的极点来找到与数据最匹配的有理函数。如果48个极点不够,则更改函数使用的极点数量范围可能是有利的理性.

首先,读入文件中包含的带通滤波器数据npoles_带通_示例s2p,并绘制S21数据接下来,使用理性函数将有理函数拟合到S21数据,并将“NPoles”参数设置为其默认值,然后直观地将结果与原始数据进行比较理性同样,这次指定了更多的极点,看看结果是否有所改善。

读取并可视化数据

S=sparameters(‘npoles_bandpass_示例.s2p’);图子地块(2,1,1)rfplot(S,2,1,“db”)子地块(2,1,2)rfplot(S,2,1,“角度”)

使用“NPoles”的默认值时,分析rationalfit的输出

使用rfparam函数来提取S21值,然后调用理性.

s21=rfparam(S,2,1);datafreq=S.频率;defaultfit=rationalfit(datafreq,s21);
警告:只有48个极点,而不是40分贝只达到13分贝精度。考虑使用“NoLead”参数指定更大数量的极点。

使用频率响应用于计算输出响应的函数理性.

respreq=2.25e9:2e5:2.75e9;defaultresp=freqresp(defaultfit,respreq);

将原始数据与通过以下公式计算的默认有理函数的频率响应进行比较:理性.

子地块(2,1,1)图(datafreq,20*log10(abs(s21)),'.-')持有在…上绘图(respfreq,20*log10(abs(defaultresp)))保持xlabel(‘频率(Hz)’)伊拉贝尔(‘震级(dB)’)defaultnpoles=numel(defaultfit.A);defaultstr=['默认NPoles(使用',num2str(defaultnpoles),“波兰人”]; 标题(defaultstr)图例(“原始数据”,“默认理性IT”,“位置”,“最好的”)子批次(2,1,2)绘图(数据频率,展开(角度(s21))*180/pi,'.-')持有在…上绘图(响应频率、展开(角度(默认响应))*180/pi)保持xlabel(‘频率(Hz)’)伊拉贝尔(‘角度(度)’)传奇(“原始数据”,“默认理性IT”,“位置”,“最好的”)

分析产品的产量理性与原始数据相匹配,但理性如果在带通区域的中心做得相当好,则带通区域边缘的拟合较差。使用更复杂的有理函数可能会获得更好的拟合。

使用“NPoles”的自定义值时分析rationalfit的输出

合身S21数据,但这次是指令理性使用“NPoles”参数使用49到60个电极。

customfit=rationalfit(数据频率,s21,“NPoles”,[49 60]);customresp=freqresp(customfit,respreq);

将原始数据与通过以下公式计算的自定义有理函数的频率响应进行比较:理性.

图子地块(2,1,1)图(datafreq,20*log10(abs(s21)),'.-')持有在…上绘图(respfreq,20*log10(abs(customresp)))保持xlabel(‘频率(Hz)’)伊拉贝尔(‘震级(dB)’)customnpoles=numel(customfit.A);customstr=['NPoles=[49 60](使用',num2str(客户文件),“波兰人”];标题(自定义)图例(“原始数据”,“定制配给”,“位置”,“最好的”)子批次(2,1,2)绘图(数据频率,展开(角度(s21))*180/pi,'.-')持有在…上绘图(响应频率、展开(角度(自定义响应))*180/pi)保持xlabel(‘频率(Hz)’)伊拉贝尔(‘角度(度)’)传奇(“原始数据”,“定制配给”,“位置”,“最好的”)

使用更多极点的拟合显然更精确。