1. 概述
当系统中的有效信号和噪声都是随机过程,信号和噪声的频谱还可能重叠(比如有效信号是高斯-马尔可夫过程,噪声是白噪声),根据频域参数设计滤波器的方法就不再适用。
维纳滤波器可以在一些场合解决上述为题,其设计原则是均方误差(的期望)最小。我们从相对简单的单参数滤波器开始。
2. 参数滤波器
设输入信号为$x(t)+n(t)$,其中$n(t)$为噪声,系统冲击响应为$g(t)$,输出为$y(t)$。
将输入输出写成Laplace形式:
$Y(s)=G(s)[X(s)+N(s)]$ (2.1)
误差为有效信号与滤波器输出的差:
$e(t)=x(t)-y(t)$ (2.2)
$E(s)=X(s)-Y(s)$ (2.3)
(2.1)式代入(2.3)式:
$E(s)=X(s)-G(s)[X(s)+N(s)]=[1-G(s)]X(s)-G(s)N(s)$ (2.4)
从上式可以看出,误差有两个来源:一是输入信号被传递函数“编辑”后与原始信号的差;二是系统处理后的噪声。
更进一步的说,误差第一项可看做$X(s)$通过系统$1-G(s)$,第二项可看做$N(s)$通过系统$G(s)$。
如果信号与噪声是不相关的,误差的功率谱就为$[1-G(s)][1-G(-s)]S_x(s)+G(s)G(-s)S_n(s)$。
将该功率谱作逆变换得到自相关,并对自相关取$\tau=0$,均方误差就可以写为如下形式:
$E[e^2 ]=\frac{1}{2\pi j}\int_{-j\infty}^{+j\infty}[1-G(s)][1-G(-s)]S_x(s)ds+\frac{1}{2\pi j}\int_{-j\infty}^{+j\infty}G(s)G(-s)S_n(s)ds$ (2.5)
其中,$S_x(s)$是有效信号的功率谱,$S_n(s)$是噪声的功率谱。
在设计该种滤波器时,一般方法是使用带参的传递函数,于是(2.5)式也是一个带参的式子。针对具体问题,将均方误差对该参数求导,就可以得出满足最小均方误差条件的参数值。
上面是从频域求解最小均方误差;很快我们将看到如何从时域求解最小均方误差。
3. 稳态条件下的维纳滤波
我们先做以下几个假定:
1) 滤波器输入为信号和噪声的线性叠加,两者均为协方差平稳过程,且自相关和互相关已知;
2) 滤波器是线性时不变的;
3) 输出是协方差平稳的(即不考虑系统初启动时的状态,而认为系统已经稳定运行了较长时间);
4) 误差记为:
$e(t)=x(t+\alpha)-y(t)$. (3.1)
若$\alpha >0$,这就是一个预测。
这次我们从时域来求解最小均方误差。
$e^2(t)=x^2(t+\alpha)-2x(t+\alpha)y(t)+y^2(t)$ (3.2)
$y(t)$可写为卷积积分:
$y(t) = \int_{-\infty}^{+\infty} g(u)[x(t-u)+n(t-u)] du$ (3.3)
将3.3代入3.2并求期望:
$E[e^2]=E \left[ x^2(t+\alpha) -2x(t+\alpha) \int_{-\infty}^{+\infty}g(u)[x(t-u)+n(t-u)]du + \int_{-\infty}^{+\infty}g(u)[x(t-u)+n(t-u)]du \int_{-\infty}^{+\infty}g(v)[x(t-v)+n(t-v)]dv \right]$
$=E[x^2(t+a)] -2 \int_{-\infty}^{+\infty}g(u) E \{ [x(t-u)+n(t-u)] x(t+\alpha) \} du + \int_{-\infty}^{+\infty} \int_{-\infty}^{+\infty} g(u)g(v) E \{ [ x(t-u) + n(t-u) ] [x(t-v) + n(t-v) ] \} dudv $
$=R_x(0) - 2 \int_{-\infty}^{+\infty} g(u) R_{x+n, x}(\alpha+u) du + \int_{-\infty}^{+\infty} \int_{-\infty}^{+\infty} g(u) g(v) R_{x+n} (u-v) du dv $ (3.4)
* 如果信号与噪声不相关,上式可以根据下面的式子进一步简化:
$R_{x+n}=R_x+R_n, R_{x+n, x} = R_x$ (3.5)
我们希望找到能够最小化$E[e^2]$的$g(u)$。这是一个典型的变分问题。因此将(3.4)写成(3.6):
$E[e^2] = R_x(0) - 2 \int_{-\infty}^{+\infty} [g(u) + \epsilon \eta(u)] R_{x+n, x}(\alpha + u) du + \int_{-\infty}^{+\infty} \int_{-\infty}^{+\infty} [g(u) + \epsilon \eta(u)][ g(v) + \epsilon \eta(v)] R_{x+n}(u - v) du dv $
$\frac{d E[e^2]} {d\epsilon} = -2 \int_{-\infty}^ {+\infty} \eta(u)R_{x+n,x}(\alpha + u) du + \int_{-\infty}^{+\infty} \int_{-\infty}^{+\infty} [g(u) \eta(v) + g(v) \eta(u) + 2\epsilon \eta(u)\eta(v)] R_{x+n}(u-v) dudv $
$\frac{d E[e^2]} {d\epsilon} | _{\epsilon=0} = -2 \int_{-\infty}^ {+\infty} \eta(u)R_{x+n,x}(\alpha + u) du + \int_{-\infty}^{+\infty} \int_{-\infty}^{+\infty} [g(u)\eta(v) + g(v) \eta(u)] R_{x+n}(u-v) dudv = 0$ (3.6)
上面第二个积分(二重积分)式子可以写成$\int_{-\infty}^{+\infty} \int_{-\infty}^{+\infty} g(u)\eta(v)R_{x+n}(u-v)dudv + \int_{-\infty}^{+\infty} \int_{-\infty}^{+\infty} g(v)\eta(u)R_{x+n}(v-u)dvdu = 2 \int_{-\infty}^{+\infty} \int_{-\infty}^{+\infty} g(v)\eta(u)R_{x+n}(v-u)dvdu $
于是就得到(作一下简单的变量替换:$v\rightarrow u, u\rightarrow \tau$)
$ \int_{-\infty}^{+\infty} \eta (\tau) [-R_{x+n,x}(\alpha + \tau) + \int_{-\infty}^{+\infty} g(u)R_{x+n}(u-\tau)du]d\tau=0$ (3.7)
对上面这个方程,我们将首先求非因果解,然后求因果条件下的解。
3.1 非因果解
非因果解主要用于离线处理数据的情况。
若式(3.7)成立,则根据变分法基本引理:
$\int_{-\infty}^{+\infty} g(u) R_{x+n}(u-\tau) du = R_{x+n,x}(\alpha + \tau) $ (3.8)
因为自相关是偶对称的,所以上面等式的左边可看做卷积。两边对$\tau$作Laplace变换:
$G(s)S_{x+n}(s) = S_{x+n,x}(s) e^{\alpha s}$ (3.9)
或写为
$G(s) = \frac {S_{x + n, x}(s) e^{\alpha s} } { S_{x+n}(s) } $ (3.10)
这样我们就得到了非因果条件下的传递函数。
*上面的传递函数可以有一个直观的理解:
假定信号与噪声不相关,且$\alpha=0$,那么:
$G(s)=\frac{S_x(s)}{S_x(s)+S_n(s)}$
分子是有效信号功率谱,分母是信号+噪声的功率谱,这几乎是一个不能再直观的“功率谱误差最小”的式子了。
均方误差为(对(3.4)作一个小小的变形):
$E[e^2] = R_x(0) - \int_{-\infty}^{+\infty} g(u) R_{x+n,x} (\alpha + u) du + \int_{-\infty}^{+\infty} g(u) [-R_{x+n, x} (\alpha + u) + \int_{-\infty}^{+\infty} g(v) R_{x+n} (v-u) dv] du $ (3.11)
根据(3.8),上面中括号内的式子等于零,所以:
$E[e^2] = R_x(0) - \int_{-\infty}^{+\infty} g(u) R_{x+n, x}(\alpha + u) du$
3.2 因果解
我们依然从(3.7)开始。
对因果解,可得(3.18):
$\int_{-\infty}^{+\infty} g(u) R_{x+n}(u-\tau) du - R_{x+n,x}(\alpha + \tau) = 0$. $\tau \geq 0 $ (3.18)
上式称为Wiener-Hopf(维纳-霍普夫)方程,它只需考虑$\tau \geq 0$的情况。
为了解这个方程,将右边的0替换为一个形式未知的函数$a(\tau)$,其在负轴取值不确定,在正轴取值为0。于是将(3.18)改写为:
$\int_{-\infty}^{+\infty} g(u) R_{x+n}(u-\tau) du - R_{x+n,x}(\alpha + \tau) = a(\tau)$. $-\infty \lt \tau \lt +\infty $ (3.19)
两边做Laplace变换:
$G(s)S_{x+n}(s) - S_{x+n,x}(s) e ^{\alpha s} = A(s)$ (3.20)
将$S_{x+n}$分解为两个分式的乘积,这两个分式分别包含左半平面和右半平面的零极点:
$ [ G(s) S_{x+n}^{+} (s) ] S_{x+n}^{-} (s) - S_{x+n,x} (s) e ^{\alpha s} = A(s) $
$G(s) S_{x+n}^+(s) = \frac{A(s)}{S_{x+n}^- (s) } + \frac{S_{x+n,x} e^{\alpha s}} {S_{x+n}^- (s)} $ (3.21)
$S^+$包含左半平面零极点,$S^-$包含右半平面零极点。
因为$g(u)$是因果的,所以$G(s)S_{x+n}^+(s)$的零极点都在左半平面,而$a(\tau)$又是一个非因果信号。于是(3.21)可用如下框图表示:
[正时间函数] = [负时间函数] + [正负时间函数]
在(3.21)中令两边正时间函数相等:
$G(s)S_{x+n}^+(s)=$ positive-time part of $\frac {S_{x+n,x}(s)e^{\alpha s}} {S_{x+n}^-(s)}$
即
$G(s)=\frac{1}{S_{x+n}^+}$ $\big[$ positive-time part of $\frac{S_{x+n,x}(s) e^{\alpha s} } {S_{x+n}^-(s)} $ $ \big ] $ (3.22)
这个式子括号里的部分可以按如下方法求解:
1) 找出其反变换
2) 移位$\alpha$
3) 求单边Laplace变换
4. 例子
设有效信号为Gauss-Markov过程,方差$\sigma^2$,时间常数$\beta$;噪声为白噪声,功率谱为常数$A$。两者不相关。我们分别使用参数滤波器、非因果维纳滤波和因果维纳滤波三种方法处理。
4.1 单参数滤波器
我们使用一阶滤波器$G(s)=\frac{1}{1+Ts}$。
$G(s)=\frac{1/T}{s+1/T}$
$1-G(s)=\frac{s}{s+1/T}$
$S_x(s)=\frac {2\sigma^2\beta} {-s^2+\beta ^2} = {\frac {\sqrt {2\sigma^2\beta} } {s+\beta} } \cdot {\frac {\sqrt {2\sigma^2\beta} } {-s+\beta} } $
$S_n(s)=A=\sqrt{A} \cdot \sqrt{A}$
上面几个式子代入(2.5),查积分表可得
$E[e^2] = \frac {\sigma^2 \beta T} { 1 + \beta T } + \frac {A} {2T} $
对上式求最小值,就得到
$T = \frac { \sqrt A } {\sigma \sqrt {2\beta} - \beta \sqrt {A} } $
4.2 非因果滤波器
为简化计算,我们令$\sigma^2=\beta=A=1$,$\alpha=0$。因为有效信号和噪声不相关,所以
$S_{x+n}=S_x+S_n=\frac{2}{-s^2+1}+1=\frac{-s^2+3}{-s^2+1}$
$S_{x+n,x}=S_x=\frac{2}{-s^2+1}$
$e^{\alpha s}=1$
根据(3.10),
$G(s)=\frac {\frac {2} {-s^2+1}} {\frac{-s^2+3}{-s^2+1}}=\frac{2}{-s^2+3}$
部分分式展开为
$G(s)=\frac{1/\sqrt 3}{s+\sqrt 3} + \frac {1/\sqrt 3} {-s + \sqrt 3} $
$g(t)=\frac{1}{\sqrt 3}e^{-\sqrt 3 t} u(t) + \frac{1}{\sqrt 3} e^{\sqrt 3 t}u(-t)$
4.3 因果滤波器
$S_{x+n}=S_x+S_n = \frac{2}{-s^2+1}+1=\frac{-s^2+3}{-s^2+1}$
$S_{x+n, x}=S_x=\frac{2}{-s^2+1}$
$e^{\alpha s}=1$
首先,将$S_{x+n}$按零极点在正负平面的分布进行分解:
$S_{x+n}=S_{x+n}^+S_{x+n}^-=[\frac{s+\sqrt 3}{s+1}][\frac{-s+\sqrt 3}{-s+1}]$
下一步,求得$S_{x+n,x}/S_{x+n}^-$
$\frac{S_{x+n,x}}{S_{x+n}^-} = \frac{\frac{2}{-s^2+1}} { \frac{-s+\sqrt 3 }{-s+1} } = \frac{2} {(-s+\sqrt 3)(s+1)} $
接着,对上面的式子进行分式分解:
$\frac{S_{x+n,x}} {S_{x+n}^-}=\frac{\sqrt 3 - 1} {s+1} + \frac{\sqrt 3 - 1} {-s+\sqrt 3}$
上面式子的第一个分式就是正时间部分。按(3.22),
$G(s)=\frac{1}{\frac{s+\sqrt 3}{s+1} } \cdot \frac{\sqrt 3 - 1} {s+1} = \frac {\sqrt 3 - 1}{s + \sqrt 3}$
$g(t)=(\sqrt 3 -1)e^{-\sqrt 3 t} u(t)$
5. 总结
单参数滤波器需要事先确定滤波器形式,例子中仅考虑一阶情况,效果在上面三种滤波器中是最差的;非因果滤波器在维纳滤波器下几乎没有限制,效果最佳;因果滤波器不能利用“未来”的值,效果在中间。
维纳滤波器要求至少了解信号和噪声的自相关函数,如果信号和噪声相关,还要了解它们的互相关,这对维纳滤波的应用范围造成了一定的限制。