RationalFit.
此示例显示如何使用“delayfactor”参数来提高输出的质量RationalFit.
。
这RationalFit.
功能选择与频域数据匹配的Rational函数。如果该数据包含一个重要的“时间延迟”,则将其自身作为频域中的相移,然后使用合理数量的磁极拟合可能很困难。
在这些情况下,当输入数据包含一个大的负斜率时(即具有足够大的时间延迟的数据),我们可以问RationalFit.
首先删除来自数据的一些延迟,然后找到一个最适合剩余的“未能”数据的合理功能。这RationalFit.
通过将其存储在输出的“延迟”参数中,函数帐户删除延迟。默认情况下,RationalFit.
不会从数据中删除任何延迟。
首先,从4端口背板S参数创建差分传输函数数据。接下来,尝试使用默认设置拟合数据RationalFit.
功能。最后,使用'delayfactor'参数来提高输出的准确性RationalFit.
。
从“default.s4p”中的4端口背板S参数数据中读取。
s =斯波拉姆计('default.s4p');fourportdata = s.parameters;freq = s.fruquences;四口Z0 = S.IMPEDANCE;
将4端口单端S参数转换为2端口差分S参数
diffdata = s2sdd(fourportdata);diffz0 = 2 * fourportz0;
从差分2端口数据创建传输函数
tfdata = s2tf(diffdata,diffz0,diffz0,diffz0);
使用弗赖琴
函数来计算输出的响应RationalFit.
。
defaultfit = RationalFit(Freq,TFData)
警告:仅实现-10.2 dB精度,48极,而不是-40.0 dB。考虑使用“NPOLES”参数指定更多数量的极点。
defaultfit = rfmodel.ritional的属性:a:[48x1 double] c:[48x1 double] d:0 delay:0名称:'Rational Function'
respfreq = 0:4E6:20E9;defaultresp = freqResp(DefaultFit,Respfreq);
请注意,“延迟”参数为零(从数据中删除延迟)。
绘制原始数据与默认输出RationalFit.
。
图形子图(2,1,1)TFDATADB = 20 * log10(abs(tfdata));绘图(弗雷克,TFDATADB,'.-') 抓住在绘图(respfreq,20 * log10(abs(defaultresp)))保持离开Xlabel('频率(Hz)')ylabel('幅度(db)')defaultnpoles = numel(defaultfit.a);defstr = ['默认delayfactor(使用',num2str(defaultnpoles),'杆)'];标题(DEFST)传奇('原始数据'那'默认的RationalFit'那'地点'那'最好')子图(2,1,2)TFDataphase = 180 *未包装(角度(TFDATA))/ PI;绘图(频率,tfdataphase,'.-') 抓住在绘图(respfreq,180 * unwrap(角度(defaultresp))/ pi)保持离开Xlabel('频率(Hz)')ylabel('角度(度)') 传奇('原始数据'那'默认的RationalFit'那'地点'那'最好')
请注意,使用默认设置时的结果RationalFit.
很穷。因为原始数据的相位具有非常大的负斜率,所以可以通过使用“DelayFactor”参数来提高Rational功能的准确性。
“delayfactor”必须设置为0到1之间的值。选择哪个值是试用和错误的练习。对于某些数据集(相位具有整体向上斜率的),更改“DelayFactor”的值将对结果没有影响。
持有所有其他可能的参数RationalFit.
常数,0.98被发现创造一个良好的合适。
customfit = RationalFit(Freq,TFData,'delayfactor',0.98)
customfit = rfmodel.ritional的属性:a:[31x1 double] c:[31x1 double] d:0 delay:6.5521e-09名称:'Rational Function'
customresp = freqResp(CustomFit,Respfreq);
请注意,“延迟”参数不为零(RationalFit.
从数据中删除了一些延迟)。
绘制原始数据与自定义输出RationalFit.
。
子图(2,1,1)绘图(FREQ,TFDATADB,'.-') 抓住在绘图(respfreq,20 * log10(abs(customresp)))持有离开Xlabel('频率(Hz)')ylabel('幅度(db)')customnpoles = numel(customfit.a);customstr = ['delayfactor = 0.98(使用',num2str(customnpoles),'杆)'];标题(Customstr)图例('原始数据'那'自定义RationalFit'那'地点'那'最好')子图(2,1,2)绘图(频率,tfdataphase,'.-') 抓住在绘图(respfreq,180 *未包装(角度(customresp))/ pi)持有离开Xlabel('频率(Hz)')ylabel('角度(度)') 传奇('原始数据'那'自定义RationalFit'那'地点'那'最好')
使用“DelayFactor”的自定义值创建的Rational函数更准确,并使用更少的极点。