如果给定的频率响应实际上是由已知的传递函数产生的,那么这些方法中的任何一种都可以收敛于该原始传递函数吗?怎么样,如果给定频率响应是受到(假设高斯)的测量误差?
假设在Z平面采样频谱的工作,虽然连续域的答案也可能是有趣的。
已添加:如果仅给出频率响应的幅度(例如,允许具有任何相位响应的解决方案),则求解方法是否有所不同?
已添加:后一个问题就是我最感兴趣的是,给定单位圆周围的幅度响应已知,但相位响应未知/未测量,能否估算出被测系统?如果是,则在什么条件下?
#1 楼
一种方法是使用频域最小二乘(FDLS)方法。给定一组离散时间系统频率响应的样本(复杂),以及设计者选择的滤波器阶数,FDLS方法使用线性最小二乘法优化来求解系数集(该系数直接映射到极点集)和零)的系统,其频率响应与期望的响应匹配且具有最小的总平方误差。$ N $阶线性离散时间系统的频率响应可以写为:
$$
H(\ omega)= H(z)| _ {z = e ^ {j \ omega}}
$$
其中$ H(z)$是$ z $域中系统的传递函数。通常以有理格式编写,直接从系统的差分方程式得出:
$$
H(z)= \ frac {\ sum_ {k = 0} ^ {N} b_kz ^ {-k}} {1 + \ sum_ {k = 1} ^ {N} a_kz ^ {-k}}
$$
因此频率响应为:
$$
H(\ omega)= \ frac {\ sum_ {k = 0} ^ {N} b_ke ^ {-jk \ omega}} {1 + \ sum_ {k = 1 } ^ {N} a_ke ^ {-jk \ omega}}
$$
重新排列以上内容即可:
$$
\ sum_ {k = 0} ^ {N} b_ke ^ {-jk \ omega}-H(\ omega)\ left(1 + \ sum_ {k = 1} ^ {N} a_ke ^ {-jk \ omega} \ right) = 0
$$
该方程在$ 2N + 1 $未知系统差方程系数$ b_k $和$ a_k $中是线性的。给定所需的频率响应$ H(\ omega)$,我们希望找到完全符合$ \ omega $所有值的上述方程式的系数。对于一般情况,这很难。因此,我们将为一个系统搜索一组系数,该系统的频率响应在一组离散频率处近似于所需的响应。
为了使用线性最小二乘法求解一组合适的系数,我们在那些未知数中生成了一个超定方程组。要生成这些方程,请选择频率$ \ omega_m \ in [0,2 \ pi),m = 0、1,\ ldots,M-1 $(其中$ M> 2N + 1 $,经常是$ M)的集合\ gg 2N + 1)$。对于每个频率,将$ \ omega_k $的对应值代入上式即可得出:
$$
\ sum_ {k = 0} ^ {N} b_ke ^ {-jk \ omega_k}-H(\ omega_k)\ left(1 + \ sum_ {k = 1} ^ {N} a_ke ^ {-jk \ omega_k} \ right)= 0
$$
值$ H(\ omega_k)$是通过在选定的频率$ \ omega_k $处采样所需的频率响应而获得的。生成线性方程组后,可以轻松获得系统系数$ b_k $和$ a_k $(以及因此的极点和零点)的最小二乘解。如果将这些系数代入上面显示的$ H(\ omega)$的等式中,它应该(希望)产生一个函数,该函数接近于您开始时使用的模板频率响应。
这该技术具有一些优点:
任何任意复杂的(幅度和相位)频率响应都可以用作模板。如果只有一个幅度限制,则可以选择一个相位响应,例如线性相位。
它可以用于设计FIR和IIR滤波器。要实现FIR,只需从上面删除$ a_k $系数即可。
该技术实现起来非常简单,并且可以根据所需的系统顺序轻松地进行参数化。
虽然可能不是一个好方法为了先验估计满足您的设计约束所需的系统顺序,可以很容易地反复增加顺序$ N $直到满足某些选定的误差度量标准(例如峰值误差,总平方误差或特定范围内的偏差) )。
如果需要,您可以扩展此方法以使用加权最小二乘优化。这将允许您指定频率响应的区域,其近似误差的权重要大于其他区域。这使您可以更严格地控制通带/阻带区域,同时在“无关”区域允许更多斜率。
评论
$ \ begingroup $
很好的答案!!进行具有最小平方误差的滤波器设计的“技巧”是正确定义“误差”的确切含义。通过选择正确的频率网格,特定频率处的加权因子并为带外行为增加更多约束,并使极点保持在单位圆内,可以控制此过程。
$ \ endgroup $
–希尔马
2012年5月24日上午11:01
$ \ begingroup $
这个潜在解决方案的问题是,如果相位不知道现有的传递函数,则如果假设相位错误,则FDLS可能会收敛于错误的解决方案,无论正确猜测的阶数或幅值响应如何准确被测量。
$ \ endgroup $
– hotpaw2
13年3月12日在16:01
$ \ begingroup $
@ hotpaw2:这是可以预料的。如果您对相位响应一无所知,那么有无数个同样有效的解决方案(即它们将具有正确的幅度响应)。您将需要一些信息来引导您迈向最合适的解决方案。
$ \ endgroup $
–Jason R
2013年3月12日16:08
$ \ begingroup $
@JasonR:唯一正确的解决方案应该是内部/外部的极点/零点翻转的排列,这对于任何(现有)有限阶系统都是有限的。
$ \ endgroup $
– hotpaw2
13年12月12日在16:50
#2 楼
我的同事在矢量拟合方面取得了出色的成果:矢量拟合是在频域中进行有理逼近的可靠数值方法。它允许直接针对单个或多个输入/输出系统,从测量或计算的频率响应中识别状态空间模型。由此产生的近似值保证了真实的极点或复共轭对中的稳定极点。
我们将其用于FIR到IIR的转换。
对于要求不高的应用,您可以对固定数量的极点和零点使用非线性最小二乘拟合。在Matlab中将其实现为
invfreqs
和invfreqz
。#3 楼
另一种方法:绘制频率响应,并使其最适合波特图。对于近似的解决方案,这可以非常快地完成,或者在某种程度的最小二乘意义上可以更好地拟合。GTH
评论
您是否正在尝试将任意频率响应近似为有理谱?那就是(b [0] + b [1] z ^ -1 ...)/(1 + a [1] z ^ -1 ...)?如果是这样,通常将其称为ARMA建模。它比AR建模更困难,因为信号的自相关往往与移动平均系数(b []或零)非线性相关。如果我的假设是正确的,我可以写一个更正式的答复。@Bryan:是的。我试图暗示通过陈述“零极点”解(有理传递函数)是合适的(最好仅在优于相同程度的所有零极点或全部零解/估计时使用)。
频率响应有什么含义?有人将频率响应函数$ H(\ omega)$或$ H(f)$与传递函数$ H(s)$区别开来,有人则没有。例如,请参阅此解决方案中对先前问题的回答。
@Dilip Sarwate:仅给定H(w)单位圆(是否多余?),求解/估计完整的z平面表示形式。希望这与我对问题的最初陈述相符。
您的添加改变了一切。极点和零点可能会改变,而幅度响应保持不变。最常见的例子是设计最小相位滤波器。这通常涉及采用现有系统并在单位圆内反映极点和零点。这只会改变相位响应,而不会改变幅度响应。