invfreqs
从频率响应数据中识别连续时间滤波器参数
语法
[b,a] = invfreqs(h,w,n,m)
[b,a] = invfreqs(h,w,n,m,wt)
[b,a] = invfreqs(h,w,n,m,wt,iter)
[b,a] = invfreqs(h,w,n,m,wt,iter,tol)
[b,a] = invfreqs(h,w,n,m,wt,iter,tol,'trace')
[b,a] = invfreqs(h,w,'complex',n,m,…)
描述
invfreqs
是逆运算频率
.它找到了一个连续时间传递函数,对应于给定的复频率响应。从实验室分析的角度来看,invfreqs
在将幅度和相位数据转换为传递函数时很有用。
[b,a] = invfreqs(h,w,n,m)
返回分子和分母的实系数向量b
而且一个
传递函数的
谁的复频率响应是矢量形式给出的h
在向量中指定的频率点上w
.标量n
而且米
指定分子和分母多项式的期望阶数。
的长度h
一定和的长度一样w
.invfreqs
使用连词(h)
在- w
以确保适当的频域对称的实滤波器。
[b,a] = invfreqs(h,w,n,m,wt)
对拟合误差与频率进行加权,其中wt
一个加权因子向量的长度是否等于w
.
[b,a] = invfreqs(h,w,n,m,wt,iter)
而且
[b,a] = invfreqs(h,w,n,m,wt,iter,tol)
提供一种优越的算法,保证结果线性系统的稳定性,并使用数值迭代方案搜索最佳拟合。的iter
参数告诉invfreqs
在解收敛时或收敛后结束迭代iter
迭代,无论哪个先出现。invfreqs
将收敛定义为当(修改的)梯度向量的范数小于托尔
,在那里托尔
是可选参数,默认为0.01。要获得所有1的权重向量,使用
invfreqs (h, w, n, m, [], iter, tol)
[b,a] = invfreqs(h,w,n,m,wt,iter,tol,'trace')
显示迭代的文本进度报告。
[b,a] = invfreqs(h,w,'complex',n,m,…)
创建一个复杂的过滤器。在这种情况下,不强制对称,频率以之间的弧度指定- - - - - -π而且π.
例子
提示
在使用高频率构建高阶模型时,重要的是缩放频率,除以一个因子,例如中存在的最高频率的一半w
,从而得到的良好条件值一个
而且b
.这对应于时间的缩放。
算法
默认情况下,invfreqs
采用方程误差法从数据中确定最佳模型。这个发现b
而且一个
在
通过创建一个线性方程组并用MATLAB求解®\
操作符。在这里一个(w(k)),B(w(k)为多项式的傅里叶变换一个
而且b
,分别在频率处w(k),n频率点的个数(长度h
而且w
).该算法是基于Levi的[1].文献中已经提出了几种变体,其中加权函数wt
较少关注高频。
高级(“输出误差”)算法使用阻尼迭代搜索的高斯牛顿方法[2],以第一个算法的输出作为初始估计。这解决了将实际频率响应点与期望频率响应点之间的平方误差加权和最小化的直接问题。
参考文献
[1] Levi, e.c.“复杂曲线拟合”。愤怒的反式。有关自动控制.卷AC-4, 1959,第37-44页。
[2]丹尼斯,J. E., Jr.和R. B.施纳贝尔。无约束优化与非线性方程的数值方法。恩格尔伍德悬崖,新泽西州:Prentice-Hall, 1983。