与rationalfit使用“NPoles”参数
这个例子展示了如何使用“NPoles”参数来提高的输出质量rationalfit
。默认情况下,rationalfit
函数使用48个或更少的波兰人找到最匹配的有理函数数据。如果48波兰人是不够的,它可能是有利的改变所使用的极数的范围rationalfit
。
首先,阅读在带通滤波器的数据包含在文件中npoles_bandpass_example.s2p
,情节S21
数据。接下来,使用rationalfit
适合的有理函数的函数S21
与“NPoles”数据,参数设置为默认值,和视觉上比较结果与原始数据。最后,使用rationalfit
再一次,这一次指定更多的波兰人,看看结果改善。
读取和可视化数据
S = sparameters (“npoles_bandpass_example.s2p”);图次要情节(2,1,1)rfplot (2, 1,“数据库”次要情节(2,1,2)rfplot (S, 2, 1“角”)
分析输出rationalfit当使用默认值为“NPoles”
使用rfparam
函数来提取S21
值,然后调用rationalfit
。
s21 = rfparam (2, 1);datafreq = S.Frequencies;defaultfit = rationalfit (datafreq s21);
警告:只有-13.0 dB准确性48波兰人来实现的,而不是-40.0 dB。考虑指定更多的波兰人使用“NPoles”参数。
使用freqresp
函数计算的输出的响应rationalfit
。
respfreq = 2.25 e9:2e5:2.75e9;defaultresp = freqresp (defaultfit respfreq);
比较原始数据和默认的有理函数计算的频率响应rationalfit
。
次要情节(2,1,1)情节(datafreq, 20 * log10 (abs (s21)),“。”)举行在情节(respfreq, 20 * log10 (abs (defaultresp)))从包含(的频率(赫兹))ylabel (“(dB)级”)defaultnpoles =元素个数(defaultfit.A);defaultstr = [“默认NPoles(使用”num2str (defaultnpoles),“两极)”];标题(defaultstr)传说(“原始数据”,“默认rationalfit”,“位置”,“最佳”次要情节(2,1,2)情节(datafreq,打开(角(s21)) * 180 /π,“。”)举行在情节(respfreq打开(角(defaultresp)) * 180 / pi)从包含(的频率(赫兹))ylabel (的角(度))传说(“原始数据”,“默认rationalfit”,“位置”,“最佳”)
分析的输出rationalfit
匹配的原始数据,而默认的值rationalfit
做一个带通的中心地区的相当不错,适合穷人在带通的边缘地区。有可能使用更复杂的有理函数将达到一个更好的选择。
分析输出的NPoles rationalfit当使用自定义值
符合原S21
数据,但这一次,指导rationalfit
使用49岁和60两极之间使用“NPoles”参数。
customfit = rationalfit (s21 datafreq,“NPoles”60,[49]);customresp = freqresp (customfit respfreq);
比较原始数据定制的有理函数的频率响应计算rationalfit
。
图次要情节(2,1,1)情节(datafreq, 20 * log10 (abs (s21)),“。”)举行在情节(respfreq, 20 * log10 (abs (customresp)))从包含(的频率(赫兹))ylabel (“(dB)级”)customnpoles =元素个数(customfit.A);customstr = [“NPoles =[60] 49(使用'num2str (customnpoles),“两极)”];标题(customstr)传说(“原始数据”,“自定义rationalfit”,“位置”,“最佳”次要情节(2,1,2)情节(datafreq,打开(角(s21)) * 180 /π,“。”)举行在情节(respfreq打开(角(customresp)) * 180 / pi)从包含(的频率(赫兹))ylabel (的角(度))传说(“原始数据”,“自定义rationalfit”,“位置”,“最佳”)
适合使用更多的波兰人显然更精确。