維納濾波器(Wiener filter)是由美國數學家諾伯特·維納(Norbert Wiener)於1940年代提出,並於1949年首次正式發表的一種線性濾波技術。它的設計目標是在最小均方誤差的準則下,從被雜訊干擾的觀測訊號中,恢復出原始訊號。此濾波器的核心假設包括:訊號與雜訊皆為平穩隨機過程,並且其統計特性(如相關函數與功率譜)已被確定。基於這些假設,維納濾波器透過統計優化,使得濾波後訊號與真實訊號之間的平均平方差達到最小。
與理想化的通阻型濾波器(如低通、高通、帶通或帶阻)不同,維納濾波器會根據訊號與雜訊的統計特性,動態調整對各頻段的保留或抑制程度。它具有兩種形式:
- 非因果版本:可以利用未來資訊來達成最佳去噪效果,但不適用於即時系統。
- 因果版本:只使用當前與過去資料,以適應即時處理需求,但推導上更為複雜。
維納濾波器廣泛應用於音訊降噪、影像復原、通訊無線通道均衡等領域;同時也成為多種自適應濾波演算法如 LMS、RLS 及卡爾曼濾波器的重要理論基石。
描述
維納濾波器的理論基礎可追溯至維納與霍夫(Norbert Wiener and Eberhard Hopf)對隨機訊號估計問題的研究,其推導出的維納–霍夫方程提供了解析解,使得在理想條件下可以精確求出濾波器的脈衝響應或係數。在離散時間域中,維納濾波器可以實作為有限長度(FIR)或無限長度(IIR)形式;而若進一步要求因果性,則必須透過頻譜因式分解處理,以確保濾波器可以即時實作。
與傳統設計為低通、高通、帶通等類型的頻率選擇性濾波器不同,維納濾波器不單以頻率為設計依據,而是依據輸入訊號與期望輸出的統計特性,於各頻段進行權重調整。其在頻域上的濾波器傳輸函數通常具有非零相位響應,這表示它可能會改變訊號的波形結構,但可保證輸出在統計意義下最接近目標訊號。
為解決實務中無法事先得知訊號與雜訊統計特性的限制,維納濾波器衍生出一系列自適應濾波方法,像是最小均方(LMS)與遞迴最小平方(RLS)演算法。這些方法可在線估測濾波係數,使濾波器能夠追蹤動態環境變化而維持近似最小均方誤差的性能。
除了用於一維訊號的去雜訊,維納濾波技術也已擴展至多維資料,例如影像處理中的降噪與去模糊。這類應用中,空間域與頻域的維納濾波器皆可使用,並可根據局部統計特性調整濾波強度,達到空間自適應的效果。
維納濾波器提供了一種將統計估計與線性系統設計結合的方式,並開啟了數位訊號處理中以機率模型為基礎的濾波方法發展,其理論影響深遠,至今仍是統計訊號處理與通訊系統中的重要工具。
模型/问题的建立
假设维纳滤波器的输入信号是s (t),叠加噪声n (t)。输出信号x (t)通过滤波器g (t)使用下面的卷积运算得到:
:x (t) = g (t) *(s(t) + n (t))
其中
- s (t)是需要估计的原始信号
- n (t)是噪声
- x (t)是估计出的信号(我们希望它能等同于s (t))
- g (t)是维纳滤波器
误差是e (t) = s(t + d) - x (t),方差是e^2 (t) = s^2(t + d) - 2s(t + d)x (t) + x^2 (t)其中
- s(t + d)是所期望的滤波器输出
- e (t)是误差
根据d的不同,问题名称可以更换为:
- 如果d > 0那么问题是预测
- 如果d = 0那么问题是滤波
- 如果d 那么问题是平滑
将x (t)写成卷积积分:x (t) = \int_{-\infty}^{\infty}{g(\tau)\left[s(t - \tau) + n(t - \tau)\right]d\tau}.
计算平方误差的均值,可得
:E(e^2) = R_s (0) - 2\int_{-\infty}^{\infty}{g(\tau)R_{x\,s}(\tau + d)d\tau} + \int_{-\infty}^{\infty}{\int_{-\infty}^{\infty}{g(\tau)g(\theta)R_x(\tau - \theta)d\tau}d\theta}
其中
- \,\!R_s是s (t)的自相关函数
- \,\!R_x是x (t)的自相关函数
- R_{x\,s}是x (t)和s (t)的互相关函数
如果信号s (t)和噪声n (t)是不相关的(例如,互相关是0)那么请注意
- R_{x\,s} = R_s
- \,\!R_x = R_s + R_n
这个的目的是求最优的g (t),使得E(e^2)最小。
稳态解(Stationary solution)
维纳滤波对于因果系统与非因果系统有两种不同解,如下:
非因果解(Anticausal solution)
:G (s) = \frac{S_{x,s}(s)e^{\alpha s}}{S_x (s)}
其中 S 是谱函数。
只要g (t)是最优的,那么最小均方误差公式简化为E(e^2) = R_s (0) - \int_{-\infty}^{\infty}{g(\tau)R_{x,s}(\tau + d)d\tau}
那么方程的解g (t)就是G (s)的双边拉普拉斯变换逆变换(inverse two-sided Laplace transform)。
因果解(Causal solution)
:G (s) = \frac{H (s)}{S_x^{+}(s)}
其中
- H (s)是\frac{S_{x,s}(s)e^{\alpha s}}{S_x^{-}(s)}的拉普拉斯逆变换positive time解
- S_x^{+}(s)是S_x (s)的拉普拉斯逆变换positive time解
- S_x^{-}(s)是S_x (s)的拉普拉斯逆变换negative time解
离散序列的有限冲激响应维纳滤波器
[[Image:Wiener block.svg|350px|right|thumb|离散序列FIR维纳滤波器框图。输入信号 w[n]与维纳滤波器 g[n]进行卷积,输出结果与参考信号 s[n]进行比较,得到滤波误差 e[n].]]
因果的有限冲激响应(FIR)维纳滤波器通过使用输入和输出信号的统计信息,而不是使用一些给定的数据矩阵X和输出矢量Y,来发现最佳的抽头权重。它将输入信号的自相关的估计(T)代入输入矩阵X,将输出和输入信号的互相关估计(V)代入的输出向量Y。
为了获得维纳滤波系数,考虑将信号w[n]输入到一个N阶维纳滤波器,系数 \{a_i\}, i \,=\, 0,\, \ldots,\, N,N的滤波器的输出被记作x[n],这是由下式给出
:x[n] = \sum_{i=0}^N a_i w[n-i] 。
剩余误差来表示e[n]的,被定义为e[n] = x[n] − s[n](参见相应的框图)。维纳滤波器被设计成最小化均方误差(MMSE准则),它可以如下简而言之:
:a_i = \arg \min ~E\{e^2[n]\} ,
E\{\cdot\}表示期望算子。在一般情况下,系数 a_i可能是复数,在w[n]的和s[n]是复数的情况下可能推导出。对于复信号,待求解矩阵是一个共轭对称Toeplitz矩阵,而不是对称Toeplitz矩阵。为简单起见,下面只考虑所有这些量实数的情况。均方误差(MSE)可改写为:
:
\begin{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\{\big(\sum_{i=0}^N a_i w[n-i] \big)^2\} + E\{s^2[n]\} - 2E\{\sum_{i=0}^N a_i w[n-i]s[n]\} .
\end{array}
矢量 [a_0,\, \ldots,\, a_N]减少上面的表达式,计算其关于 a_i的导数
:
\begin{array}{rcl}
\frac{\partial}{\partial a_i} E\{e^2[n]\} &=& 2E\{ \big( \sum_{j=0}^N a_j w[n-j] \big) w[n-i] \} - 2E\{s[n]w[n-i]\} \quad i=0,\, \ldots,\, N\\
&=& 2 \sum_{j=0}^N E\{w[n-j]w[n-i]\} a_j - 2E\{ w[n-i]s[n]\} .
\end{array}
假设,w[n]和s[n]均为平稳和联合平稳,记序列 R_w[m]和 R_{ws}[m]为 w[n]的自相关和 w[n]和 s[n]之间的互相关,定义如下:
:
\begin{align}
R_w[m] =& E\{w[n]w[n+m]\} \\
R_{ws}[m] =& E\{w[n]s[n+m]\} .
\end{align}
因此,注意到 R_{ws}[-i] \,=\, R_{sw}[i],导数的MSE可以改写为
:\frac{\partial}{\partial a_i} E\{e^2[n]\} = 2 \sum_{j=0}^{N} R_w[j-i] a_j - 2 R_{sw}[i] \quad i = 0,\, \ldots,\, N .
令该导数等于零,得到
:\sum_{j=0}^N R_w[j-i] a_j = R_{sw}[i] \quad i = 0,\, \ldots,\, N ,
上式可以改写为矩阵形式
:\begin{align}
&\mathbf{T}\mathbf{a} = \mathbf{v}\\
\Rightarrow
&\begin{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}
\begin{bmatrix}
a_0 \\ a_1 \\ \vdots \\ a_N
\end{bmatrix}
=
\begin{bmatrix}
R_{ws}[0] \\R_{ws}[1] \\ \vdots \\ R_{ws}[N]
\end{bmatrix}
\end{align}
这些方程被称作Wiener-Hopf方程。出现在方程中的矩阵T是一个对称的Toeplitz矩阵。当R在适当条件下,这些矩阵是正定的,也就是非奇异的,从而使得有唯一解来确定维纳滤波器系数矢量,\mathbf{a} \,=\, \mathbf{T}^{-1}\mathbf{v}。此外,Wiener-Hopf方程存在一个求解的有效算法,称为Levinson-Durbin算法,因此并不需要对矩阵\mathbf{T}的显式求逆。
维纳滤波器的优缺点
維納濾波器的設計優勢在於:它能以最小化均方誤差(MSE)為目標,達成線性估計的最優效果,這使其在理想統計條件下(訊號與雜訊的功率譜已知)能充分發揮精準去噪與訊號恢復性能;此外,在某些案例中,濾波器係數可以求得封閉形式解,因此能利用簡單的物理元件(RC、LC網絡)加以實現。因其理論明確、可計算性高,維納濾波常成為後續 LMS、RLS 及卡爾曼濾波自適應方法的基礎。
然而,其實務上的限制也不容忽視:首先,在真實環境中精確獲得信號和噪聲的功率頻譜或自相關函數十分困難,尤其在非平穩或時變噪聲條件下更難以估計到位;其次,維納濾波為線性方法,這意味其無法處理非線性現象(如訊號高次諧波、混疊),可能導致濾波後結果出現模糊、振鈴(ringing)等失真現象;第三,設計 FIR 或 IIR 濾波器時需要進行矩陣反演或頻譜因式分解,對計算能力要求較高,尤其在高維或大規模案例中亦不易即時實現。
此外,在應用中也遇到頻率分佈重疊與生態噪聲模式的挑戰,維納濾波解對小幅頻譜估計誤差通常十分敏感,實務效能可能因此明顯下降。而且在一些影像去模糊案例中,若參數估計不精準,更可能導致「過度鈍化」(over-smoothing)或不必要的邊緣損失。
綜上所述,儘管維納濾波在統計理論上具備無可匹敵的最佳特性,但其使用條件限制(已知統計特性、線性假設、計算開銷)與對估計誤差敏感性,使其在較複雜或動態環境中常被替代或與其他自適應、非線性技術(如 LMS、卡爾曼或小波濾波)結合使用,以求更穩健且實用的處理效果。
参见
- 諾伯特·維納(Norbert Wiener)
- 卡尔曼滤波
参考书目
- [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
评论 (0)