这是一个学习笔记系列。为督促自己看书,尽量更新。但同时也在学其他东西,也不知道能不能实现。少玩耍,多读书。
应该会慢慢改进,会慢慢补充每一个部分的笔记。
文章目录
啥是Wiener滤波,就是已知输入 u ( n ) u(n) u(n),输出 d ( n ) d(n) d(n),假设模型是 y ( n ) = ∑ k = 0 M − 1 或 ∞ w k ∗ u ( n − k ) y(n)=\sum_{k=0}^{M-1或\infty}w_{k}^*u(n-k) y(n)=k=0∑M−1或∞wk∗u(n−k)然后最小化 d ( n ) − y ( n ) d(n)-y(n) d(n)−y(n)的方差求得 w k w_k wk得到的滤波。
线性最佳滤波问题(Linear optimum filtering)
考虑这样一个问题,有一个黑盒,我们知道输入 u ( n ) u(n) u(n),知道输出 d ( n ) d(n) d(n),现在我们希望用一个离散时间的线性滤波器来拟合这个黑盒。假设这个线性滤波器的脉冲响应是 w 0 , w 1 , w 2 . … w_0,w_1,w_2.\dots w0,w1,w2.…那么对这个线性滤波器输入 { u ( n ) } \{u(n)\} { u(n)}能得到输出 y ( n ) y(n) y(n)。对比这个输出和我们想要的输出 d ( n ) d(n) d(n),我们可以定义估计误差(estimation error) e ( n ) = d ( n ) − y ( n ) e(n)=d(n)-y(n) e(n)=d(n)−y(n)。我们想要做的就是让估计误差在一些统计意义上尽可能小。
对应我们想要做的问题,有两点需要确定:
- 线性滤波器的脉冲响应是有限的(FIR)还是无限的(IIR)?
- “统计意义”该怎么选?
对于第一个问题,出于稳定性的考虑(以及IIR太难了),一般选择有限的情况。对于第二个问题就有很多选择了,例如 E [ ∣ e ( n ) ∣ 2 ] \mathbb{E}[|e(n)|^2] E[∣e(n)∣2], E [ ∣ e ( n ) ∣ ] \mathbb{E}[|e(n)|] E[∣e(n)∣], E [ ∣ e ( n ) ∣ k ] \mathbb{E}[|e(n)|^k] E[∣e(n)∣k],而相比后两种,第一种在数学上更好处理,所以我们在这里选择第一种。
正交原则(Principle of orthogonality)
设 u ( n ) u(n) u(n), d ( n ) d(n) d(n)都是广义平稳过程,且均值为0。 y ( n ) = ∑ k = 0 ∞ w k ∗ u ( n − k ) , n = 0 , 1 , 2 , … y(n)=\sum_{k=0}^{\infty}w_k^*u(n-k),\quad n=0,1,2,\dots y(n)=k=0∑∞wk∗u(n−k),n=0,1,2,… e ( n ) = d ( n ) − y ( n ) e(n)=d(n)-y(n) e(n)=d(n)−y(n) 代价函数为 J = E [ ∣ e ( n ) ∣ 2 ] . J=\mathbb{E}[|e(n)|^2]. J=E[∣e(n)∣2].
因为考虑的是复值的情况,所以假设 w k = a k + j b k w_k=a_k+\mathrm{j}b_k wk=ak+jbk,令 ∇ k = ∂ ∂ a k + j ∂ ∂ b k , k = 0 , 1 , 2 , … \nabla_k=\frac{\partial}{\partial a_k}+\mathrm{j}\frac{\partial}{\partial b_k},\quad k=0,1,2,\dots ∇k=∂ak∂+j∂bk∂,k=0,1,2,… 那么 ∇ J = [ ∇ 1 J , ∇ 2 J , … ] \nabla J=[\nabla_ 1 J, \nabla_2 J,\dots] ∇J=[∇1J,∇2J,…]
对于代价函数,我们首先希望找到它的平衡点, ∇ k J = 0 , k = 0 , 1 , 2 , … \nabla_k J=0,\quad k=0,1,2,\dots ∇kJ=0,k=0,1,2,…
∇ k J = E [ ∂ e ( n ) ∂ a k e ∗ ( n ) + ∂ e ∗ ( n ) ∂ a k e ( n ) + ∂ e ( n ) ∂ b k j e ∗ ( n ) + ∂ e ∗ ( n ) ∂ b k j e ( n ) ] = E [ − u ( n − k ) e ∗ ( n ) − u ∗ ( n − k ) e ( n ) − u ( n − k ) e ∗ ( n ) + u ∗ ( n − k ) e ( n ) ] = − 2 E [ u ( n − k ) e ∗ ( n ) ] . \begin{aligned} \nabla_k J&=\mathbb{E}\left[\frac{\partial e(n)}{\partial a_k}e^*(n)+\frac{\partial e^*(n)}{\partial a_k}e(n)+\frac{\partial e(n)}{\partial b_k}\mathrm{j}e^*(n)+\frac{\partial e^*(n)}{\partial b_k}\mathrm{j}e(n)\right]\\ &=\mathbb{E}\left[-u(n-k)e^*(n)-u^*(n-k)e(n)-u(n-k)e^*(n)+u^*(n-k)e(n)\right]\\ &=-2\mathbb{E}[u(n-k)e^*(n)]. \end{aligned} ∇kJ=E[∂ak∂e(n)e∗(n)+∂ak∂e∗(n)e(n)+∂bk∂e(n)je∗(n)+∂bk∂e∗(n)je(n)]=E[−u(n−k)e∗(n)−u∗(n−k)e(n)−u(n−k)e∗(n)+u∗(n−k)e(n)]=−2E[u(n−k)e∗(n)].所以我们希望得到 E [ u ( n − k ) e o ∗ ( n ) ] = 0 , k = 0 , 1 , 2 , … \mathbb{E}[u(n-k)e_o^*(n)]=0,\quad k=0,1,2,\dots E[u(n−k)eo∗(n)]=0,k=0,1,2,… 这就是正交原则。由 y ( n ) y(n) y(n)和 u ( n ) u(n) u(n)的关系可以得到 E [ y 0 ( n ) e ∗ ( n ) ] = 0 \mathbb{E}[y_0(n)e^*(n)]=0 E[y0(n)e∗(n)]=0。引入记号 d ^ ( n ∣ U n ) = y o ( n ) \hat{d}(n|\mathscr{U}_n)=y_o(n) d^(n∣Un)=yo(n) U n \mathscr{U}_n Un表示输入信号截至到 n n n所张成的空间。
最小均方误差
e o = d ( n