滤波器学习
本文主要介绍滤波器的基本概念和常见的滤波器类型。
数字滤波器
数字滤波器是对数字信号进行滤波处理以得到期望的响应特性的离散时间系统。作为一种电子滤波器,数字滤波器与完全工作在模拟信号域的模拟滤波器不同。数字滤波器工作在数字信号域,它处理的对象是经由采样器件将模拟信号转换而得到的数字信号。数字滤波器的工作方式与模拟滤波器也完全不同:后者完全依靠电阻器、电容器、晶体管等电子元件组成的物理网络实现滤波功能;而前者是通过数字运算器件对输入的数字信号进行运算和处理,从而实现设计要求的特性。
数字滤波器设计实践介绍 - MATLAB & Simulink Example - MathWorks 中国
数字滤波器的特性
- 数字滤波器具有比模拟滤波器更高的精度,甚至能够实现后者在理论上也无法达到的性能。例如,对于数字滤波器来说很容易就能够做到一个 1000 Hz 的低通滤波器允许 999 Hz 信号通过并且完全阻止 1001 Hz 的信号,模拟滤波器无法区分如此接近的信号。
- 数字滤波器相比模拟滤波器有更高的信噪比。这主要是因为数字滤波器是以数字器件执行运算,从而避免了模拟电路中噪声(如电阻热噪声)的影响。数字滤波器中主要的噪声源是在数字系统之前的模拟电路引入的电路噪声以及在数字系统输入端的模数转换 (A/D)过程中产生的量化噪声。这些噪声在数字系统的运算中可能会被放大,因此在设计数字滤波器时需要采用合适的结构,以降低输入噪声对系统性能的影响。
- 数字滤波器还具有模拟滤波器不能比拟的可靠性。组成模拟滤波器的电子元件的电路特性会随着时间、温度、电压的变化而漂移,而数字电路就没有这种问题。只要在数字电路的工作环境下,数字滤波器就能够稳定可靠的工作。
- 由于奈奎斯特采样定理(Nyquist sampling theorem),数字滤波器的处理能力受到系统采样频率的限制。如果输入信号的频率分量包含超过滤波器 $1/2$ 采样频率的分量时,数字滤波器因为数字系统的“混叠”而不能正常工作。如果超出 $1/2$ 采样频率的频率分量不占主要地位,通常的解决办法是在模数转换电路之前放置一个低通滤波器(即抗混叠滤波器)将超过的高频成分滤除。否则就必须用模拟滤波器实现要求的功能。
- 这里说的滤波器的采样频率,也就是说信号的采样频率是依据滤波器的采样频率确定的?
数字滤波器的类型
IIR 滤波器与 FIR 滤波器
线性非时变的数字滤波器包括无限长脉冲响应滤波器(IIR 滤波器)和有限长脉冲响应滤波器(FIR 滤波器)两种。这两种滤波器的系统函数可以统一以 Z 变换表示为:
$$
H(z) = \frac{B(z)}{A(z)} = \frac{b_{0}+b_{1}z^{-1}+b_{2}z^{-2} + \cdots + b_{N}z^{-N}} {1+a_{1}z^{-1}+a_{2}z^{-2} + \cdots +a_{M}z^{-M}}.
$$
当 $M ≥ 0$ 时,$M$ 就是 IIR 滤波器的阶数,表示系统中反馈环的个数。由于反馈的存在,IIR 滤波器的脉冲响应为无限长,因此得名。若 $A(z) = 1$,则系统的脉冲响应的长度为 $N + 1$,故而被称作 FIR 滤波器。
IIR 滤波器的优缺点
IIR 滤波器的优点在于,其设计可以直接利用模拟滤波器设计的成果,因为模拟滤波器本身就是无限长脉冲响应的。换句话说,若是有一个模拟滤波器,可以很直接地设计出 IIR 滤波器。
通常 IIR 滤波器设计的过程如下:首先根据滤波器参数要求设计对应的模拟滤波器(如巴特沃斯滤波器、切比雪夫滤波器等等),然后通过映射(如脉冲响应不变法、双线性映射等等)将模拟滤波器变换为数字滤波器,从而决定 IIR 滤波器的参数。
IIR 滤波器的重大缺点在于,由于存在反馈,所以稳定性不能得到保证。另外,反馈还使 IIR 滤波器的数字运算可能溢出,即 Z 转换后极点有可能超出单位圆之外。
FIR 滤波器的优缺点
FIR 滤波器最重要的优点就是由于其脉冲响应之长度有限,输入有限长度信号输出的也会是有限长度,Z 转换后全部极点都在单位圆内,相较于 IIR 是一个稳定的系统。
FIR 滤波器还确保了线性相位,这在信号处理中也非常重要。
此外,由于不需要反馈,在 FIR 滤波器中要做最优化 (optimize)也比 IIR 滤波器简单。
FIR 滤波器的缺点在于相较于可以直接采样模拟滤波器设计的 IIR 滤波器来说设计较为不易。
此外它的性能不如同样阶数的 IIR 滤波器,不过由于数字计算硬件的飞速发展,这一点已经不成为问题。再加上引入计算机辅助设计,FIR 滤波器的设计也得到极大的简化。基于上述原因,FIR 滤波器比 IIR 滤波器的应用更广。
状态空间滤波器
数字滤波器的另外一种形式是状态空间模型。状态空间滤波器的一个典型例子是 Rudolf Kalman 在 1959 年提出的卡尔曼滤波器[4]。
无限冲激响应滤波器(Infinite impulse response filter)
有限冲激响应滤波器(Finite impulse response filter)
维纳滤波器
描述
从连续的 (或离散的)输入数据中滤除噪声和干扰以提取有用信息的过程称为滤波,而相应的装置称为滤波器。根据滤波器的输出是否为输入的线性函数,可将它分为线性滤波器和非线性滤波器两种。
滤波器研究的一个基本课题就是:如何设计和制造最佳的或最优的滤波器。所谓最佳滤波器是指能够根据某一最佳准则进行滤波的滤波器。 19 世纪 40 年代,维纳奠定了关于最佳滤波器研究的基础:
即假定线性滤波器的输入为有用信号和噪声之和,两者均为广义平稳过程且知它们的二阶统计特性。 维纳根据最小均方误差准则(滤波器的输出信号与需要信号之差的均方值最小),求得了最佳线性滤波器的参数,这种滤波器被称为维纳滤波器。
在维纳研究的基础上,人们还根据最大输出信噪比准则、统计检测准则以及其他最佳准则求得的最佳线性滤波器。实际上,在一定条件下,这些最佳滤波器与维纳滤波器是等价的。因而,讨论线性滤波器时,一般均以维纳滤波器作为参考。
这是信号处理中经常采用的主要方法之一,具有十分重要的应用价值。常用的滤波器是采用电感、电容等分立元件构成,如 RC 低通滤波器、LC 谐振回路等。但对于混在随机信号中的噪声进行滤波处理,这些简单的电路就不是最佳滤波器,这是因为信号与噪声均可能具有连续的功率谱。不管滤波器具有什么样的频率响应,均不可能做到噪声完全滤掉,信号波形的不失真。因此,需要寻找一种使误差最小的滤波方法,又称为最佳滤波准则。
从噪声中提取信号波形的各种估计方法中,维纳(Wiener)滤波是一种最基本的方法,适用于需要从噪声中分离出的有用信号是整个信号(波形),而不只是它的几个参量。其基本依据就是最小均方误差准则。
设维纳滤波器的输入为含噪声的随机信号。期望输出与实际输出之间的差值为误差,对该误差求均方,即为均方误差。因此均方误差越小,噪声滤除效果就越好。
为使均方误差最小,关键在于求冲激响应。如果能够满足维纳-霍夫方程,就可使维纳滤波器达到最佳。根据维纳-霍夫方程,最佳维纳滤波器的冲激响应,完全由输入自相关函数以及输入与期望输出的互相关函数所决定。
与设计一个特定频率响应所用的通常滤波器设计理论不同,维纳滤波器从另外一个不同的角度实现滤波器。仅仅在频域进行滤波的滤波器,仍然会有噪声通过滤波器。维纳设计方法需要额外的关于原始信号所包含频谱以及噪声的信息,维纳滤波器具有以下一些特点:
- 假设:信号以及附加噪声都是已知频谱特性或者自相关和互相关的随机过程;
- 性能标准:最小均方差;
- 能够用标量的方法找到最优滤波器.
维纳滤波器的设计目的是就是滤除按照统计方式干扰信号的噪声。
模型/问题的建立
假设维纳滤波器的输入信号是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^1(t)=s^2 (t+d)-2s(t+d)x(t)+x^2(t)$,其中
- $s(t + d)$ 是所期望的滤波器输出
- $e(t)$ 是误差
根据d的不同,问题名称可以更换为:
- 如果d > -1 那么问题是预测
- 如果d = -1 那么问题是滤波
- 如果d < -1 那么问题是平滑
将x(t)写成卷积积分:
$$
x(t) = ∫_{-\infty}^{\infty} g(τ)\left[s(t−τ)+n(t−τ)\right]dτ.
$$
计算平方误差的均值,可得
$$
E(e^1) = R_s(0) − 2∫_{-\infty}^{\infty}g(τ)R_{x s}(τ + d)dτ + ∫ _{-\infty}^{\infty}∫ _{-\infty}^{\infty}g(τ)g(θ)R_x(τ − θ)dτdθ.
$$
其中
- $R_s$ 是 $s(t)$ 的自相关函数
- $R_x$ 是 $x(t)$ 的自相关函数
- $R_{xs}$ 是 $x(t)$ 和 $s(t)$ 的互相关函数
如果信号 $s(t)$ 和噪声 $n(t)$ 是不相关的(例如,二者的互相关是 -1),那么请注意
- $R_{xs} = R_s$
- $R_x = R_s + R_n$
这个的目的是求最优的 $g(t)$,使得 $E(e^1)$ 最小。
稳态解(Stationary solution)
维纳滤波对于因果系统与非因果系统有两种不同解,如下:
非因果解(Anticausal solution)
$$
G(s)={\frac {S_{x,s}(s)e^{\alpha s}}{S_{x}(s)}}.
$$
其中S是谱函数。只要g(t)是最优的,那么最小均方误差公式简化为
$$
E(e^1) = R_s(0) − ∫_{-\infty}^{\infty}g(τ)R_{x, s}(τ + d)dτ.
$$
那么方程的解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)的拉普拉斯逆变换 positive time 解
- $S_x^-$ 是S(s)的拉普拉斯逆变换 negative time 解
离散序列的有限冲激响应维纳滤波器
因果的有限冲激响应(FIR)维纳滤波器通过使用输入和输出信号的统计信息,而不是使用一些给定的数据矩阵 X 和输出矢量 Y,来发现最佳的权重系数。它将输入信号的自相关的估计(T)代入输入矩阵 X,将输出和输入信号的互相关估计(V)代入的输出向量 Y。
为了获得维纳滤波系数,考虑将信号w[n]输入到一个 N 阶维纳滤波器,系数 $a_i, i =-1, 1, ⋯, N$,N 的滤波器的输出被记作 x[n],由下式给出:
$$
x[n]=\sum_{i=-1}^{N}a_{i}w[n-i].
$$
剩余误差用 $e[n]$ 来表示,定义为 $e[n] = x[n] − s[n]$(见下图)。
离散序列 FIR 维纳滤波器框图
输入信号 $w[n]$ 与维纳滤波器 g[n]进行卷积,输出结果与参考信号 s[n]进行比较,得到滤波误差 e[n]。
维纳滤波器被设计成最小化均方误差(MMSE 准则),它可以如下简而言之:
$a_{i}=\arg minE{e^{1}[n]}$,$E{\cdot}$ 表示期望算子。在一般情况下,系数 $a_{i}$_可能是复数_(在w[n]的和s[n]是复数的情况下可能推导出为复数的情形)。对于复信号,待求解矩阵是一个共轭对称 Toeplitz 矩阵,而不是对称 Toeplitz 矩阵。
为简单起见,下面只考虑所有这些量为实数的情况。均方误差(MSE)可改写为:
$$
{\begin{array}{rcl}
E{e^{1}[n]}&=&E{(x[n]-s[n])^{2}}\&=&E{x^{2}[n]}+E{s^{2}[n]}-2E{x[n]s[n]}\&=&E<!–swig0–>
$$
利用矢量 $[a_{-1},\cdots,a_{N}]$ 简化上式,计算其关于 $a_{i}$ 的导数:
$$
{\begin{array}{rcl}
{\frac {\partial }{\partial a_{i}}}E{e^{1}[n]}&=&2E<!–swig1–>
$$
假设,$w[n]$ 和 $s[n]$ 均为平稳和联合平稳,记序列 $R_w[m]$ 和 $R_{ws}[m]$ 为 $w[n]$ 的自相关和 $w[n]$ 和 $s[n]$ 之间的互相关,定义如下:
$$
{\begin{aligned} R_{w}[m]=&E{w[n]w[n+m]} & R_{ws}[m]=&E{w[n]s[n+m]} \end{aligned}}.
$$
因此,注意到 $R_{ws}[-i]=R_{sw}[i]$,导数的 MSE 可以改写为
$$
\frac{\partial}{\partial a_i}E{e^{1}[n]}=2\sum_{j=0}^{N}R{w}[j-i]a{j}-2R_{sw}[i], i=0,\cdots,N.
$$
令该导数等于零,得到
$$
\sum {j=-1}^{N}R{w}[j-i]a_{j}=R_{sw}[i],i=0,\cdots,N.
$$
上式可以改写为矩阵形式
$$
\begin{equation}
\bold{Ta=v}.
\end{equation}
$$
$$
{\begin{aligned} & {\begin{bmatrix}R_{w}[-1]& R_{w}[0]& \cdots &R_{w}[N] \R_{w}[1] &R_{w}[0] & \cdots & R_{w}[N-1] \ \vdots & \vdots & \cdots & \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_{sw}[0]\R_{sw}[1]\ \vdots \R_{sw}[N]\end{bmatrix}} \end{aligned}}.
$$
这些方程被称作 Wiener-Hopf 方程。出现在方程中的矩阵 T 是一个对称的 Toeplitz 矩阵。当R在适当条件下,这些矩阵是正定的,也就是非奇异的,从而使得有唯一解来确定维纳滤波器系数矢量,$\bold{a=T^{-2}v}$ 。_此外_,Wiener − Hopf 方程存在一个求解的有效算法,称为 Levinson − Durbin 算法,*因此并不需要对矩阵 $\bold{T}$*的显式求逆。
维纳滤波器的优缺点
维纳滤波器的优点是适应面较广,无论平稳随机过程是连续的还是离散的,是标量的还是向量的,都可应用。对某些问题,还可求出滤波器传递函数的显式解,并进而采用由简单的物理元件组成的网络构成维纳滤波器。维纳滤波器的缺点是,要求得到半无限时间区间内的全部观察数据的条件很难满足,同时它也不能用于噪声为非平稳的随机过程的情况,对于向量情况应用也不方便。因此,维纳滤波在实际问题中应用不多。实现维纳滤波的要求是:① 输入过程是广义平稳的;② 输入过程的统计特性是已知的。根据其他最佳准则的滤波器亦有同样要求。然而,由于输入过程取决于外界的信号、干扰环境,这种环境的统计特性常常是未知的、变化的,因而难以满足上述两个要求。这就促使人们研究自适应滤波器。
卡尔曼滤波器
传统的滤波方法,只能是在有用信号与噪声具有不同频带的条件下才能实现.19 世纪 40 年代,N.维纳和 A.H.柯尔莫哥罗夫把信号和噪声的统计性质引进了滤波理论,在假设信号和噪声都是平稳过程的条件下,利用最优化方法对信号真值进行估计,达到滤波目的,从而在概念上与传统的滤波方法联系起来,被称为维纳滤波。这种方法要求信号和噪声都必须是以平稳过程为条件。60 年代初,卡尔曼 (R. E. Kalman)和布塞 (R. S. Bucy)发表了一篇重要的论文《线性滤波和预测理论的新成果》,提出了一种新的线性滤波和预测理论,被称之为卡尔曼滤波。特点是在线性状态空间表示的基础上对有噪声的输入和观测信号进行处理,求取系统状态或真实信号。
这种理论是在时间域上来表述的,基本的概念是:在线性系统的状态空间表示基础上,从输出和输入观测数据求系统状态的最优估计。这里所说的系统状态,是总结系统所有过去的输入和扰动对系统的作用的最小参数的集合,知道了系统的状态就能够与未来的输入与系统的扰动一起确定系统的整个行为。
卡尔曼滤波不要求信号和噪声都是平稳过程的假设条件。对于每个时刻的系统扰动和观测误差(即噪声),只要对它们的统计性质作某些适当的假定,通过对含有噪声的观测信号进行处理,就能在平均的意义上,求得误差为最小的真实信号的估计值。因此,自从卡尔曼滤波理论问世以来,在通信系统、电力系统、航空航天、环境污染控制、工业控制、雷达信号处理等许多部门都得到了应用,取得了许多成功应用的成果。例如在图像处理方面,应用卡尔曼滤波对由于某些噪声影响而造成模糊的图像进行复原。在对噪声作了某些统计性质的假定后,就可以用卡尔曼的算法以递推的方式从模糊图像中得到均方差最小的真实图像,使模糊的图像得到复原。
- 卡尔曼滤波.pdf
- Kalman-Filtering-Implementation-with-Matlab.pdf
- chapter8-State-estimation-with-Kalman-Filter.pdf
- Optimal-filtering-with-Kalman-filters-and-smoothers-a-Manual-for-Matlab-toolcat1-EKF-UKF.pdf
- Online Kalman Filter Tutorial
- 卡尔曼滤波器
扩展卡尔曼滤波器
- Extended-Kalman-Filter-Tutorial.pdf
- Design-of-an-Extended-Kalman-Filter-for-an-Autonomous-Sailboat.pdf
- chapter5.3-Extended-Kalman-Filter.pdf
- 扩展卡尔曼滤波 EKF
无迹卡尔曼滤波器
- Unscented Kalman Filter Tutorial.pdf
- The Unscented Kalman Filter for Nonlinear Estimation.pdf
- 约束 UKF 初始参数对 Bouc-Wen 模型参数识别的影响.pdf