使用具有RationalFit的“NPoles”参数

此示例显示如何使用“npoles”参数来提高输出的质量RationalFit.。默认情况下,RationalFit.函数使用48或更少的极点来找到最能匹配数据的合理功能。如果48极是不够的,则改变所使用的极数量的范围可能是有利的RationalFit.

首先,在文件中包含的带通滤波器数据中读取npoles_bandpass_example.s2p.,并绘制S21.数据。接下来,使用RationalFit.功能适合合理的功能S21.数据,具有“NPoles”参数设置为其默认值,并在视觉上将结果与原始数据进行比较。最后,使用RationalFit.同样,这次指定更多数量的极点,看看结果是否有所提高。

读取和可视化数据

s =斯波拉姆计('npoles_bandpass_example.s2p');图形子图(2,1,1)RFPLOT(S,2,1,'D b')子图(2,1,2)RFPLOT(S,2,1,'角度'

使用“NPOLE”的默认值时分析RationalFit的输出

使用rfparam.提取的功能S21.值,然后致电RationalFit.

S21 = RFPARAM(S,2,1);datafreq =s.fr;defaultfit = RationalFit(DataFreq,S21);
警告:仅实现-13.0 DB精度,具有48个极点,而不是-40.0 dB。考虑使用“NPOLES”参数指定更多数量的极点。

使用弗赖琴函数来计算输出的响应RationalFit.

respfreq = 2.25e9:2e5:2.75E9;defaultresp = freqResp(DefaultFit,Respfreq);

将原始数据与由计算的默认合理函数的频率响应进行比较RationalFit.

子图(2,1,1)绘图(DataFreq,20 * log10(ABS(S21)),'.-'抱紧绘图(respfreq,20 * log10(abs(defaultresp)))保持关闭Xlabel('频率(Hz)')ylabel('幅度(db)')defaultnpoles = numel(defaultfit.a);defaultstr = ['默认NPOLES(用',num2str(defaultnpoles),'杆)'];标题(defaultstr)图例('原始数据''默认的RationalFit''地点''最好')子图(2,1,2)绘图(DataFreq,Unwrap(角度(S21))* 180 / PI,'.-'抱紧绘图(respfreq,unwrap(角度(defaultresp))* 180 / pi)保持关闭Xlabel('频率(Hz)')ylabel('角度(度)')传奇('原始数据''默认的RationalFit''地点''最好'

分析输出的程度如何RationalFit.匹配原始数据,似乎虽然默认值RationalFit.在带通区域的中心执行合理的工作,在带通区域的边缘上的拟合差。使用更复杂的合理功能可能会达到更好的合适。

使用“NPOLE”的自定义值时分析RationalFit的输出

适合原文S21.数据,但这次,指导RationalFit.使用“NPOLES”参数在49和60杆之间使用。

customfit = RationalFit(DataFreq,S21,'npoles',[49 60]);customresp = freqResp(CustomFit,Respfreq);

将原始数据与通过计算的自定义Rational函数的频率响应进行比较RationalFit.

图形子图(2,1,1)绘图(DataFreq,20 * log10(ABS(S21)),'.-'抱紧绘图(respfreq,20 * log10(abs(customresp)))持有关闭Xlabel('频率(Hz)')ylabel('幅度(db)')customnpoles = numel(customfit.a);customstr = ['npoles = [49 60](用途',num2str(customnpoles),'杆)'];标题(Customstr)图例('原始数据''自定义RationalFit''地点''最好')子图(2,1,2)绘图(DataFreq,Unwrap(角度(S21))* 180 / PI,'.-'抱紧绘图(respfreq,unwrap(角度(customresp))* 180 / pi)保持关闭Xlabel('频率(Hz)')ylabel('角度(度)')传奇('原始数据''自定义RationalFit''地点''最好'

使用较大数量的杆的配合显然更精确。