矢量拟合(2) - Vector Fitting算法原理

在Sanathanan–Koerner算法中:
H~(s)=n(s)d(s)=∑n=0nˉansn∑n=0nˉbnsn\widetilde{H}(s)=\frac{n(s)}{d(s)}=\frac{\sum_{n=0}^{\bar{n}}a_ns^n}{\sum_{n=0}^{\bar{n}}b_ns^n}H (s)=d(s)n(s)=n=0nˉbnsnn=0nˉansn
求解数值逼近时的误差项:
(eSK(i))2=1kˉ∑k=1kˉ∣Hk∑n=0nˉbn(i)(jωk)n−∑n=0nˉan(i)(jωk)n∑n=0nˉbn(i−1)(jωk)n∣2\left(e_{SK}^{(i)}\right)^{2}=\frac{1}{\bar{k}}\sum_{k=1}^{\bar{k}}\left|\frac{H_{k}\sum_{n=0}^{\bar{n}}b_{n}^{(i)}(j\omega_{k})^{n}-\sum_{n=0}^{\bar{n}}a_{n}^{(i)}(j\omega_{k})^{n}}{\sum_{n=0}^{\bar{n}}b_{n}^{(i-1)}(j\omega_{k})^{n}}\right|^{2}(eSK(i))2=kˉ1k=1kˉ n=0nˉbn(i1)(jωk)nHkn=0nˉbn(i)(jωk)nn=0nˉan(i)(jωk)n 2
会包含频率的多次项,求解的最小二乘问题的矩阵将包含 Vandermonde 块,导致恶化的条件,会增加数值的不稳定性,当条件数变大时,计算结果对输入数据的微小变化会变得非常敏感,可能导致数值解不准确甚至不收敛。
为了解决上述的问题,VF算法用部分分式替代之前的传递函数的表达式
H~(s)=n(s)d(s)=∑n=0nˉansn∑n=0nˉbnsn\widetilde{H}(s)=\frac{n(s)}{d(s)}=\frac{\sum_{n=0}^{\bar{n}}a_ns^n}{\sum_{n=0}^{\bar{n}}b_ns^n}H (s)=d(s)n(s)=n=0nˉbnsnn=0nˉansn
H~(s)\widetilde{H}(s)H (s)的分子和分母项分别写作:

n(i)=c0(i)+∑n=1ncn(i)s−pn(0)(1.10) n^{(i)} = c_0^{(i)} + \sum_{n=1}^{n} \frac{c_n^{(i)}}{s - p_n^{(0)}} \tag{1.10} n(i)=c0(i)+n=1nspn(0)cn(i)(1.10)

d(i)=1+∑n=1ndn(i)s−pn(0)(1.11) d^{(i)} = 1 + \sum_{n=1}^{n} \frac{d_n^{(i)}}{s - p_n^{(0)}} \tag{1.11} d(i)=1+n=1nspn(0)dn(i)(1.11)

其中:

  • n(i)n^{(i)}n(i)d(i)d^{(i)}d(i) 分别表示分子和分母多项式。
  • c0(i)c_0^{(i)}c0(i)cn(i)c_n^{(i)}cn(i)是分子多项式的系数。
  • dn(i)d_n^{(i)}dn(i)是分母多项式的系数。
  • pn(0)p_n^{(0)}pn(0)表示初始极点,与变量sss一起出现在分式中。

这里提到的初始极点 pn(0)∈Cp^{(0)}_n \in \mathbb{C}pn(0)C是一组复数,将在后续讨论它们的选取方式。可以看到,在公式 (1.11) 中,常数项已标准化为 1,这是不失一般性的处理。与 Sanathanan-Koerner 迭代中使用的幂函数基sns^nsn相比,分式1s−pn(0)\frac{1}{s - p^{(0)}_n}spn(0)1的变化在 sss增加时更加受控。如果选择合适的极点pn(0)p^{(0)}_npn(0),则分式形式在频率上的变化更加平缓。此特性可改善条件数,特别是在极点pn(0)p^{(0)}_npn(0)彼此不同且分布较开时,效果更显著。
将(1.10)和(1.11)代入之前的误差表达式(1.9):

(eSK(i))2=1k∑k=1k∣Hk∑n=0nbn(i)(jωk)n−∑n=0nan(i)(jωk)n(∑n=0nbn(i−1)(jωk)n)2∣2 (e_{SK}^{(i)})^2 = \frac{1}{k} \sum_{k=1}^{k} \left| \frac{H_k \sum_{n=0}^{n} b_n^{(i)} (\text{j}\omega_k)^n - \sum_{n=0}^{n} a_n^{(i)} (\text{j}\omega_k)^n} { \left( \sum_{n=0}^{n} b_n^{(i-1)} (\text{j}\omega_k)^n \right)^2}\right|^2 (eSK(i))2=k1k=1k

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43354598

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值