使用'DelayFactor'参数rationalfit
这个例子展示了如何使用'DelayFactor'参数来提高输出的质量rationalfit
.
的rationalfit
函数选择与频域数据匹配的有理函数。如果该数据包含显著的“时间延迟”,这将在频域表现为相移,那么使用合理数量的极点可能很难拟合。
在这些情况下,当输入数据包含一个很大的负斜率(即数据具有足够大的时间延迟),我们可以问rationalfit
首先从数据中删除一些延迟,然后找到最适合剩余“未延迟”数据的合理函数。的rationalfit
函数将删除的延迟存储在输出的' delay '参数中。默认情况下,rationalfit
不会从数据中删除任何延迟。
首先,从4端口背板s参数创建差分传递函数数据。类的默认设置来拟合数据rationalfit
函数。最后,使用'DelayFactor'参数来提高输出的准确性rationalfit
.
创建传递函数
从'default.s4p'读入4端口背板s参数数据。
S =参数(“default.s4p”);fourportdata = s .参数;频率= s。fourportZ0 = s阻抗;
将4端口单端s参数转换为2端口差分s参数
Diffdata = s2sdd(fourportdata);diffZ0 = 2*fourportZ0;
从差分2端口数据创建传递函数
tfdata = s2tf(diffdata,diffZ0,diffZ0,diffZ0);
当使用默认值'DelayFactor'时,分析rationalfit的输出
使用freqresp
函数来计算的输出的响应rationalfit
.
Defaultfit = rationalfit(freq,tfdata)
警告:48根杆子只能达到-10.2 dB的精度,而不是-40.0 dB。考虑使用'NPoles'参数指定更大数量的极点。
Defaultfit = rfmodel。A: [48x1 double] C: [48x1 double] D: 0延迟:0名称:'有理函数'
Respfreq = 0:4e6:20e9;Defaultresp = freqresp(defaultfit,respfreq);
注意,'Delay'参数为零(没有从数据中删除延迟)。
的默认输出与原始数据的对比rationalfit
.
图subplot(2,1,1) tfdataDB = 20*log10(abs(tfdata));情节(频率、tfdataDB“。”)举行在情节(respfreq, 20 * log10 (abs (defaultresp)))从包含(的频率(赫兹)) ylabel (“(dB)级”) defaultnpoles =数字(defaultfit.A);Defstr = [默认延迟因子(使用)num2str (defaultnpoles),“两极)”];标题(defstr)传说(“原始数据”,“默认rationalfit”,“位置”,“最佳”) subplot(2,1,2) tfdataphase = 180*unwrap(angle(tfdata))/pi;情节(频率、tfdataphase“。”)举行在情节(respfreq 180 *打开(角(defaultresp)) / pi)从包含(的频率(赫兹)) ylabel (的角(度))传说(“原始数据”,“默认rationalfit”,“位置”,“最佳”)
的默认设置时的结果请注意rationalfit
很穷。由于原始数据的相位具有非常大的负斜率,因此可以通过使用“DelayFactor”参数来提高有理函数的精度。
在使用自定义值'DelayFactor'时分析rationalfit的输出
'DelayFactor'必须设置为0到1之间的值。选择哪个值是一个反复试验的过程。对于某些数据集(其阶段整体呈上坡),改变'DelayFactor'的值不会对结果产生影响。
保持所有其他可能的参数rationalfit
常数,0.98被认为是一个很好的拟合。
Customfit = rationalfit(freq,tfdata,“DelayFactor”, 0.98)
Customfit = rfmodel。A: [31x1 double] C: [31x1 double] D: 0延迟:6.5521e-09名称:'有理函数'
Customresp =频率(customfit,respfreq);
注意,'Delay'参数不是零(rationalfit
从数据中删除一些延迟)。
的自定义输出绘制原始数据与rationalfit
.
次要情节(2,1,1)情节(频率、tfdataDB“。”)举行在情节(respfreq, 20 * log10 (abs (customresp)))从包含(的频率(赫兹)) ylabel (“(dB)级”) customnpoles =数字(customfit.A);Customstr = [DelayFactor = 0.98(使用)num2str (customnpoles),“两极)”];标题(customstr)传说(“原始数据”,“自定义rationalfit”,“位置”,“最佳”) subplot(2,1,2) plot(freq,tfdataphase,“。”)举行在情节(respfreq 180 *打开(角(customresp)) / pi)从包含(的频率(赫兹)) ylabel (的角(度))传说(“原始数据”,“自定义rationalfit”,“位置”,“最佳”)
通过使用'DelayFactor'的自定义值创建的理性函数更加准确,并且使用更少的极点。