zoukankan      html  css  js  c++  java
  • 维纳滤波

    维纳滤波是美国应用数学家诺伯特·维纳(Norbert Wiener)在二十世纪四十年代提出的一种滤波器,并在1949年出版[1].

    维纳滤波器(Wiener filter)是由数学家维纳(Norbert Wiener)提出的一种以最小平方为最优准则的线性滤波器。在一定的约束条件下,其输出与一给定函数(通常称为期望输出)的差的平方达到最小,通过数学运算最终可变为一个托布利兹方程的求解问题。维纳滤波器又被称为最小二乘滤波器或最小平方滤波器,目前是基本的滤波方法之一。维纳滤波是利用平稳随机过程的相关特性和频谱特性对混有噪声的信号进行滤波的方法,1942年美国科学家N.维纳为解决对空射击的控制问题所建立,是40年代在线性滤波理论方面所取得的最重要的成果。

     

    描述

    从连续的(或离散的)输入数据中滤除噪声和干扰以提取有用信息的过程称为滤波,而相应的装置称为滤波器。 根据滤波器的输出是否为输入的线性函数,可将它分为线性滤波器和非线性滤波器两种。 滤波器研究的一个基本课题就是:如何设计和制造最佳的或最优的滤波器。

    所谓最佳滤波器是指能够根据某一最佳准则进行滤波的滤波器。 20世纪40年代,维纳奠定了关于最佳滤波器研究的基础:即假定线性滤波器的输入为有用信号和噪声之和,两者均为广义平稳过程且知它们的二阶统计特性。 维纳根据最小均方误差准则(滤波器的输出信号与需要信号之差的均方值最小),求得了最佳线性滤波器的参数,这种滤波器被称为维纳滤波器。

    在维纳研究的基础上,人们还根据最大输出信噪比准则、统计检测准则以及其他最佳准则求得的最佳线性滤波器。 实际上,在一定条件下,这些最佳滤波器与维纳滤波器是等价的。因而,讨论线性滤波器时,一般均以维纳滤波器作为参考。

    这是信号处理中经常采用的主要方法之一,具有十分重要的应用价值。常用的滤波器是采用电感、电容等分立元件构成,如RC低通滤波器、LC谐振回路等。但对于混在随机信号中的噪声滤波,这些简单的电路就不是最佳滤波器,这是因为信号与噪声均可能具有连续的功率谱。不管滤波器具有什么样的频率响应,均不可能做到噪声完全滤掉,信号波形的不失真。因此,需要寻找一种使误差最小的最滤波方法,又称为最佳滤波准则。

    从噪声中提取信号波形的各种估计方法中,维纳(Wiener)滤波是一种最基本的方法,适用于需要从噪声中分离出的有用信号是整个信号(波形),而不只是它的几个参量。其基本依据就是最小均方误差准则。

    设维纳滤波器的输入为含噪声的随机信号。期望输出与实际输出之间的差值为误差,对该误差求均方,即为均方误差。因此均方误差越小,噪声滤除效果就越好。

    为使均方误差最小,关键在于求冲激响应。如果能够满足维纳-霍夫方程,就可使维纳滤波器达到最佳。根据维纳-霍夫方程,最佳维纳滤波器的冲激响应,完全由输入自相关函数以及输入与期望输出的互相关函数 所决定。

    与设计一个特定频率响应所用的通常滤波器设计理论不同,维纳滤波器从另外一个不同的角度实现滤波器。仅仅在频域进行滤波的滤波器,仍然会有噪声通过滤波器。维纳设计方法需要额外的关于原始信号所包含频谱以及噪声的信息,维纳滤波器具有以下一些特点[2]

    1. 假设:信号以及附加噪声都是已知频谱特性或者自相关互相关随机过程
    2. 性能标准:最小均方差
    3. 能够用标量的方法找到最优滤波器

    维纳滤波器的设计目的是就是滤除按照统计方式干扰信号的噪声

    模型/问题的建立

    假设维纳滤波器的输入信号是{displaystyle s(t)}{displaystyle s(t)},叠加噪声{displaystyle n(t)}{displaystyle n(t)}。输出信号{displaystyle x(t)}x(t)通过滤波器{displaystyle g(t)}{displaystyle g(t)}使用下面的卷积运算得到:

    {displaystyle x(t)=g(t)*(s(t)+n(t))}{displaystyle x(t)=g(t)*(s(t)+n(t))}


    其中

    • {displaystyle s(t)}{displaystyle s(t)}是需要估计的原始信号
    • {displaystyle n(t)}{displaystyle n(t)}是噪声
    • {displaystyle x(t)}x(t)是估计出的信号(我们希望它能等同于{displaystyle s(t)}{displaystyle s(t)})
    • {displaystyle g(t)}{displaystyle g(t)}是维纳滤波器

    误差是{displaystyle e(t)=s(t+d)-x(t)}{displaystyle e(t)=s(t+d)-x(t)},方差是{displaystyle e^{2}(t)=s^{2}(t+d)-2s(t+d)x(t)+x^{2}(t)}{displaystyle e^{2}(t)=s^{2}(t+d)-2s(t+d)x(t)+x^{2}(t)}其中

    • {displaystyle s(t+d)}{displaystyle s(t+d)}是所期望的滤波器输出
    • {displaystyle e(t)}{displaystyle e(t)}是误差

    根据d的不同,问题名称可以更换为:

    • 如果{displaystyle d>0}{displaystyle d>0}那么问题是预测
    • 如果{displaystyle d=0}d=0那么问题是滤波
    • 如果{displaystyle d<0}{displaystyle d<0}那么问题是平滑

    {displaystyle x(t)}x(t)写成卷积积分:{displaystyle x(t)=int _{-infty }^{infty }{g( au )left[s(t- au )+n(t- au ) ight]d au }}{displaystyle x(t)=int _{-infty }^{infty }{g(	au )left[s(t-	au )+n(t-	au )
ight]d	au }}.

    计算平方误差的均值,可得

    {displaystyle E(e^{2})=R_{s}(0)-2int _{-infty }^{infty }{g( au )R_{x\,s}( au +d)d au }+int _{-infty }^{infty }{int _{-infty }^{infty }{g( au )g( heta )R_{x}( au - heta )d au }d heta }}{displaystyle E(e^{2})=R_{s}(0)-2int _{-infty }^{infty }{g(	au )R_{x\,s}(	au +d)d	au }+int _{-infty }^{infty }{int _{-infty }^{infty }{g(	au )g(	heta )R_{x}(	au -	heta )d	au }d	heta }}

    其中

    • {displaystyle \,!R_{s}}{displaystyle \,!R_{s}}{displaystyle s(t)}{displaystyle s(t)}自相关函数
    • {displaystyle \,!R_{x}}{displaystyle \,!R_{x}}{displaystyle x(t)}x(t)自相关函数
    • {displaystyle R_{x\,s}}{displaystyle R_{x\,s}}{displaystyle x(t)}x(t){displaystyle s(t)}{displaystyle s(t)}互相关函数

    如果信号{displaystyle s(t)}{displaystyle s(t)}和噪声{displaystyle n(t)}{displaystyle n(t)}是不相关的(例如,互相关是0)那么请注意

    • {displaystyle R_{x\,s}=R_{s}}{displaystyle R_{x\,s}=R_{s}}
    • {displaystyle \,!R_{x}=R_{s}+R_{n}}{displaystyle \,!R_{x}=R_{s}+R_{n}}

    这个的目的是求最优的{displaystyle g(t)}{displaystyle g(t)},使得{displaystyle E(e^{2})}{displaystyle E(e^{2})}最小。

    稳态解(Stationary solution)

    维纳滤波对于因果系统非因果系统有两种不同解,如下:

    非因果解(Anticausal solution)

    {displaystyle G(s)={frac {S_{x,s}(s)e^{alpha s}}{S_{x}(s)}}}{displaystyle G(s)={frac {S_{x,s}(s)e^{alpha s}}{S_{x}(s)}}}

    其中{displaystyle S}{displaystyle S} 是谱函数。 只要{displaystyle g(t)}{displaystyle g(t)}是最优的,那么最小均方误差公式简化为{displaystyle E(e^{2})=R_{s}(0)-int _{-infty }^{infty }{g( au )R_{x,s}( au +d)d au }}{displaystyle E(e^{2})=R_{s}(0)-int _{-infty }^{infty }{g(	au )R_{x,s}(	au +d)d	au }}

    那么方程的解{displaystyle g(t)}{displaystyle g(t)}就是{displaystyle G(s)}{displaystyle G(s)}的双边拉普拉斯变换逆变换(inverse two-sided Laplace transform)。

    因果解(Causal solution)

    {displaystyle G(s)={frac {H(s)}{S_{x}^{+}(s)}}}{displaystyle G(s)={frac {H(s)}{S_{x}^{+}(s)}}}

    其中

    • {displaystyle H(s)}{displaystyle H(s)}{displaystyle {frac {S_{x,s}(s)e^{alpha s}}{S_{x}^{-}(s)}}}{displaystyle {frac {S_{x,s}(s)e^{alpha s}}{S_{x}^{-}(s)}}}的拉普拉斯逆变换positive time解
    • {displaystyle S_{x}^{+}(s)}{displaystyle S_{x}^{+}(s)}{displaystyle S_{x}(s)}{displaystyle S_{x}(s)}的拉普拉斯逆变换positive time解
    • {displaystyle S_{x}^{-}(s)}{displaystyle S_{x}^{-}(s)}{displaystyle S_{x}(s)}{displaystyle S_{x}(s)}的拉普拉斯逆变换negative time解

    离散序列的有限冲激响应维纳滤波器

     
    离散序列FIR维纳滤波器框图。输入信号 w[n]与维纳滤波器 g[n]进行卷积,输出结果与参考信号 s[n]进行比较,得到滤波误差 e[n].

    因果的有限冲激响应(FIR)维纳滤波器通过使用输入和输出信号的统计信息,而不是使用一些给定的数据矩阵X和输出矢量Y,来发现最佳的抽头权重。它将输入信号的自相关的估计(T)代入输入矩阵X,将输出和输入信号的互相关估计(V)代入的输出向量Y。

    为了获得维纳滤波系数,考虑将信号w[n]输入到一个N阶维纳滤波器,系数{displaystyle {a_{i}}}{displaystyle {a_{i}}}{displaystyle i\,=\,0,\,ldots ,\,N}{displaystyle i\,=\,0,\,ldots ,\,N},N的滤波器的输出被记作x[n],这是由下式给出

    {displaystyle x[n]=sum _{i=0}^{N}a_{i}w[n-i]}{displaystyle x[n]=sum _{i=0}^{N}a_{i}w[n-i]}

    剩余误差来表示e[n]的,被定义为e[n] = x[n] − s[n](参见相应的框图)。维纳滤波器被设计成最小化均方误差(MMSE准则),它可以如下简而言之:

    {displaystyle a_{i}=arg min ~E{e^{2}[n]}}{displaystyle a_{i}=arg min ~E{e^{2}[n]}}

    {displaystyle E{cdot }}{displaystyle E{cdot }}表示期望算子。在一般情况下,系数{displaystyle a_{i}}{displaystyle a_{i}}可能是复数,在w[n]的和s[n]是复数的情况下可能推导出。对于复信号,待求解矩阵是一个共轭对称Toeplitz矩阵,而不是对称Toeplitz矩阵。为简单起见,下面只考虑所有这些量实数的情况。均方误差(MSE)可改写为:

    {displaystyle {egin{array}{rcl}E{e^{2}[n]}&=&E{(x[n]-s[n])^{2}}\&=&E{x^{2}[n]}+E{s^{2}[n]}-2E{x[n]s[n]}\&=&E{{ig (}sum _{i=0}^{N}a_{i}w[n-i]{ig )}^{2}}+E{s^{2}[n]}-2E{sum _{i=0}^{N}a_{i}w[n-i]s[n]}.end{array}}}{displaystyle {egin{array}{rcl}E{e^{2}[n]}&=&E{(x[n]-s[n])^{2}}\&=&E{x^{2}[n]}+E{s^{2}[n]}-2E{x[n]s[n]}\&=&E{{ig (}sum _{i=0}^{N}a_{i}w[n-i]{ig )}^{2}}+E{s^{2}[n]}-2E{sum _{i=0}^{N}a_{i}w[n-i]s[n]}.end{array}}}

    矢量{displaystyle [a_{0},\,ldots ,\,a_{N}]}{displaystyle [a_{0},\,ldots ,\,a_{N}]}减少上面的表达式,计算其关于{displaystyle a_{i}}{displaystyle a_{i}}的导数

    {displaystyle {egin{array}{rcl}{frac {partial }{partial a_{i}}}E{e^{2}[n]}&=&2E{{ig (}sum _{j=0}^{N}a_{j}w[n-j]{ig )}w[n-i]}-2E{s[n]w[n-i]}quad i=0,\,ldots ,\,N\&=&2sum _{j=0}^{N}E{w[n-j]w[n-i]}a_{j}-2E{w[n-i]s[n]}.end{array}}}{displaystyle {egin{array}{rcl}{frac {partial }{partial a_{i}}}E{e^{2}[n]}&=&2E{{ig (}sum _{j=0}^{N}a_{j}w[n-j]{ig )}w[n-i]}-2E{s[n]w[n-i]}quad i=0,\,ldots ,\,N\&=&2sum _{j=0}^{N}E{w[n-j]w[n-i]}a_{j}-2E{w[n-i]s[n]}.end{array}}}

    假设,{displaystyle w[n]}w[n]{displaystyle s[n]}{displaystyle s[n]}均为平稳和联合平稳,记序列{displaystyle R_{w}[m]}{displaystyle R_{w}[m]}{displaystyle R_{ws}[m]}{displaystyle R_{ws}[m]}{displaystyle w[n]}{displaystyle w[n]}的自相关和{displaystyle w[n]}{displaystyle w[n]}{displaystyle s[n]}{displaystyle s[n]}之间的互相关,定义如下:

    {displaystyle {egin{aligned}R_{w}[m]=&E{w[n]w[n+m]}\R_{ws}[m]=&E{w[n]s[n+m]}.end{aligned}}}{displaystyle {egin{aligned}R_{w}[m]=&E{w[n]w[n+m]}\R_{ws}[m]=&E{w[n]s[n+m]}.end{aligned}}}

    因此,注意到{displaystyle R_{ws}[-i]\,=\,R_{sw}[i]}{displaystyle R_{ws}[-i]\,=\,R_{sw}[i]},导数的MSE可以改写为

    {displaystyle {frac {partial }{partial a_{i}}}E{e^{2}[n]}=2sum _{j=0}^{N}R_{w}[j-i]a_{j}-2R_{sw}[i]quad i=0,\,ldots ,\,N}{displaystyle {frac {partial }{partial a_{i}}}E{e^{2}[n]}=2sum _{j=0}^{N}R_{w}[j-i]a_{j}-2R_{sw}[i]quad i=0,\,ldots ,\,N}.

    令该导数等于零,得到

    {displaystyle sum _{j=0}^{N}R_{w}[j-i]a_{j}=R_{sw}[i]quad i=0,\,ldots ,\,N}{displaystyle sum _{j=0}^{N}R_{w}[j-i]a_{j}=R_{sw}[i]quad i=0,\,ldots ,\,N}

    上式可以改写为矩阵形式

    {displaystyle {egin{aligned}&mathbf {T} mathbf {a} =mathbf {v} \Rightarrow &{egin{bmatrix}R_{w}[0]&R_{w}[1]&cdots &R_{w}[N]\R_{w}[1]&R_{w}[0]&cdots &R_{w}[N-1]\vdots &vdots &ddots &vdots \R_{w}[N]&R_{w}[N-1]&cdots &R_{w}[0]end{bmatrix}}{egin{bmatrix}a_{0}\a_{1}\vdots \a_{N}end{bmatrix}}={egin{bmatrix}R_{sw}[0]\R_{sw}[1]\vdots \R_{sw}[N]end{bmatrix}}end{aligned}}}{displaystyle {egin{aligned}&mathbf {T} mathbf {a} =mathbf {v} \Rightarrow &{egin{bmatrix}R_{w}[0]&R_{w}[1]&cdots &R_{w}[N]\R_{w}[1]&R_{w}[0]&cdots &R_{w}[N-1]\vdots &vdots &ddots &vdots \R_{w}[N]&R_{w}[N-1]&cdots &R_{w}[0]end{bmatrix}}{egin{bmatrix}a_{0}\a_{1}\vdots \a_{N}end{bmatrix}}={egin{bmatrix}R_{sw}[0]\R_{sw}[1]\vdots \R_{sw}[N]end{bmatrix}}end{aligned}}}

    这些方程被称作Wiener-Hopf方程。出现在方程中的矩阵T是一个对称的Toeplitz矩阵。当{displaystyle R}R在适当条件下,这些矩阵是正定的,也就是非奇异的,从而使得有唯一解来确定维纳滤波器系数矢量,{displaystyle mathbf {a} \,=\,mathbf {T} ^{-1}mathbf {v} }{displaystyle mathbf {a} \,=\,mathbf {T} ^{-1}mathbf {v} }。此外,Wiener-Hopf方程存在一个求解的有效算法,称为Levinson-Durbin算法,因此并不需要对矩阵{displaystyle mathbf {T} }mathbf{T}的显式求逆。

    维纳滤波器的优缺点

    维纳滤波器的优点是适应面较广,无论平稳随机过程是连续的还是离散的,是标量的还是向量的,都可应用。对某些问题,还可求出滤波器传递函数的显式解,并进而采用由简单的物理元件组成的网络构成维纳滤波器。维纳滤波器的缺点是,要求得到半无限时间区间内的全部观察数据的条件很难满足,同时它也不能用于噪声为非平稳的随机过程的情况,对于向量情况应用也不方便。因此,维纳滤波在实际问题中应用不多。 实现维纳滤波的要求是:①输入过程是广义平稳的;②输入过程的统计特性是已知的。根据其他最佳准则的滤波器亦有同样要求。然而,由于输入过程取决于外界的信号、干扰环境,这种环境的统计特性常常是未知的、变化的,因而难以满足上述两个要求。这就促使人们研究自适应滤波器。

    参见

    参考书目

      • ^ [1]: Wiener, Norbert (1949), Extrapolation, Interpolation, and Smoothing of Stationary Time Series. New York: Wiley. ISBN 0-262-73005-7
      • ^ [2]: Brown, Robert Grover and Patrick Y.C. Hwang (1996) Introduction to Random Signals and Applied Kalman Filtering. 3 ed. New York: John Wiley & Sons. ISBN 0-471-12839-2
      • ^ [3]: Neil Gershenfeld, The Nature of Mathematical Modeling, Cambridge University Press, 1999
  • 相关阅读:
    JS之函数声明与表达式
    任重道远!
    Java_Notes01
    Android_Application Fundamentals
    Android_Activity
    Android
    Linux下的实模式和保护模式
    spring注解原理
    开启aix SFTP日志 是否和链接SFTP有关呢
    Apache版本兼容性问题
  • 原文地址:https://www.cnblogs.com/sddai/p/10332695.html
Copyright © 2011-2022 走看看