主要内容

使用'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”“位置”“最佳”

图中包含2个轴对象。标题为Default DelayFactor(使用48个极)的Axes对象1包含2个line类型的对象。这些对象表示原始数据、默认rationalfit。坐标轴对象2包含2个line类型的对象。这些对象表示原始数据、默认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”“位置”“最佳”

图中包含2个轴对象。axis对象1的标题DelayFactor = 0.98(使用31个极)包含2个类型为line的对象。这些对象表示原始数据、自定义rationalfit。坐标轴对象2包含2个line类型的对象。这些对象表示原始数据、自定义rationalfit。

通过使用'DelayFactor'的自定义值创建的理性函数更加准确,并且使用更少的极点。

相关的话题