如何从仅幅度的频率响应中估算传递函数?


11

在给定任意频率响应的情况下,可能存在哪些信号处理方法可以猜测,估计或确定传递函数(极点和零星座图),该函数对给定的频率响应给出“合理良好”的近似值(对于某些给定的估计质量标准)?对于给定的传递函数加上给定的近似误差容限,有什么方法可以估算极点和零点的数量?或者,如果可能的话,如何确定这些约束无法满足?

如果给定的频率响应实际上是由已知的传递函数产生的,那么这些方法中的任何一种都可以收敛于该原始传递函数吗?给定的频率响应是否受(假定的高斯)测量误差影响如何?

假设在Z平面上使用采样频谱进行工作,尽管连续域答案也可能很有趣。

补充:如果仅给出频率响应的幅度(例如,允许具有任何相位响应的解决方案),则求解方法是否有所不同?

补充:后一个问题是我最感兴趣的,给定单位圆周围的幅值响应已知,但是相位响应未知/未测量,能否估算出被测系统,如果可以,在什么条件下?


您是否正在尝试将任意频率响应近似为有理谱?那就是(b [0] + b [1] z ^ -1 ...)/(1 + a [1] z ^ -1 ...)?如果是这样,通常将其称为ARMA建模。它比AR建模要困难得多,因为信号的自相关往往与移动平均系数(b []或零)非线性相关。如果我的假设是正确的,我可以写一个更正式的回应。
布莱恩

@Bryan:是的。我试图暗示通过陈述“零极点”解(有理传递函数)是合适的(最好仅在优于相同程度的所有零极点或全部零解/估计时)。
hotpaw2

频率响应有什么含义?有人将频率响应函数H f 与传递函数H s 区别开来,有人则没有。例如,请参见此问题的答案H(ω)H(f)H(s)
Dilip Sarwate

@Dilip Sarwate:仅给定单位圆的H(w)(是否多余?),求解/估计完整的z平面表示。希望这与我对这个问题的最初陈述是一致的。
hotpaw2 2012年

1
您的添加改变了一切。极点和零点可能会变化,幅度响应保持不变。最常见的例子是设计最小相位滤波器。这通常涉及采用现有系统并在单位圆内反映极点和零点。这仅改变相位响应,而不改变幅度响应。
布莱恩

Answers:


14

一种方法是使用频域最小二乘(FDLS)方法。给定一组离散时间系统频率响应的样本(复杂),以及设计者选择的滤波器阶数,FDLS方法使用线性最小二乘法优化来求解系数集(该系数直接映射到极点集)和零)的系统,其频率响应与所需响应相匹配,且总平方误差最小。

次线性离散时间系统的频率响应可以写成:N

H(ω)=H(z)|z=ejω

其中z域中系统的传递函数。通常以有理格式编写,直接从系统的差分方程式得出:H(z)z

H(z)=k=0Nbkzk1+k=1Nakzk

因此,频率响应为:

H(ω)=k=0Nbkejkω1+k=1Nakejkω

重新排列以上内容以获得:

k=0NbkejkωH(ω)(1+k=1Nakejkω)=0

2N+1bkakH(ω)ω

ωm[0,2π),m=0,1,,M1 (where M>2N+1, and often M2N+1). For each frequency, substitute the corresponding value of ωk into the above equation to yield:

k=0NbkejkωkH(ωk)(1+k=1Nakejkωk)=0

The values H(ωk) are obtained by sampling the desired frequency response at the chosen frequencies ωk. After generating the system of linear equations, the least-squares solution for the system's coefficients bk and ak (and therefore its poles and zeros) is easily obtained. If you substitute those coefficients back into the equation for H(ω) shown above, it should (hopefully) yield a function that is close to the template frequency response that you started with.

This technique has a few advantages:

  • Any arbitrary complex (magnitude and phase) frequency response can be used as the template. If you only have a magnitude constraint, you could just pick a phase response, such as linear phase.

  • It can be used to design both FIR and IIR filters; for an FIR realization, just remove the ak coefficients from the above.

  • The technique is very simple to implement and is easily parameterizable based upon the desired system order.

  • While there may not be a good way to estimate a priori what the required system order is to meet your design constraints, it is simple to iteratively increase the order N until some selected error metric is met (such as peak error, total squared error, or deviation within a specific band).

You could extend this method a bit to use weighted least-squares optimization if needed; this would allow you to specify regions of the frequency response whose approximation error is weighted more than others. This allows you to more tightly control passband/stopband areas while allowing more slop in "don't-care" areas.


1
Excellent answer!! The "art" in doing filter designs with least square error is to properly defined what exactly the "error" is. This is controlled by choosing the right frequency grid, weighting factors at specific frequencies and adding more constraints for out of band behavior and also for keeping your poles inside the unit circle.
Hilmar

The problem with this potential solution is, if the phase is unknown about an existing transfer function, FDLS may converge on the wrong solution if the wrong phase is assumed, no matter how accurately the order is correctly guessed or the magnitude response is measured.
hotpaw2

@hotpaw2: That's to be expected. If you don't know anything about the phase response, then there are an infinite number of solutions that are equally valid (i.e. they would have the correct magnitude response). You're going to need some information to steer you toward what you deem to be the most appropriate solution.
Jason R

@JasonR : The only correct solutions should be the permutations of flipping poles/zeros inside/outside, which is a finite number for any (existing) finite order system.
hotpaw2

6

My colleagues have had great results with vector fitting:

Vector Fitting is a robust numerical method for rational approximation in the frequency domain. It permits to identify state space models directly from measured or computed frequency responses, both for single or multiple input/output systems. The resulting approximation has guaranteed stable poles that are real or come in complex conjugate pairs.

We use it for FIR to IIR conversion.

For less demanding applications, you can just use nonlinear least squares fitting for a fixed number of poles and zeros. This is implemented in Matlab as invfreqs and invfreqz.


0

Another approach: plot the frequency response and fit a Bode plot to it as best as possible. This could be done very quickly for an approximate solution, or in some elaborate least squares sense for a better fit. GTH

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.