最小方均误差 (数位滤波器)

在有限长度数位滤波器的设计中，最小平均平方误差(英文：least mean-square error)是所设计的滤波器响应与理想滤波器响应在欲探讨的频段中的最小误差。由于所设计的数位滤波器的长度不是无限长，所以在设计上和完美的滤波器会存在误差。是讯号工程师会关心设计的滤波器的响应重点。此平均误差利用统计学的方均值来计算求得。

## 定义

$$MSE\triangleq\frac{1}{f_s}\int\limits_{-f_s/2}^{f_s/2}|R(f)-H_d(f)|^2df$$

其中$R(f)$为设计滤波器响应，有k+1项：$R(F)=\sum_{n=0}^ks[n]cos(2\pi nF)$，$F$ 表示频率变数对取样频率$f_s$的正归化参数： $F=\frac{f}{f_s}$ ,是离散化的频率(normalized frequency)。此为离散时间傅立叶转换表示法

其中$H_d(f)=\sum_n h[n]e^{-j2\pi f\over f_s} = H_d(f)=\sum_n h[n]e^{-j2\pi nF}$ 是理想滤波器的离散时间傅立叶转换表示法。

注意此算式中对频谱的积分上下界，采取正负取样频率的一半即可。因为响应函式已经被取样，会让信号频谱具有周期性，其周期就是取样频率为$f_s$。所以探讨MSE时，积分范围采取$-\frac{f_s}{2}$到$\frac{f_s}{2}$即可，节省运算量。

另外，此种将函数平方再对变数积分取平均的算法，类似对变数取$L_2$范数。即是对向量做二维的纯量化平均的处理，和另一个设计滤波器做法Mini-max相比，做最佳化较容易，因为这是实函数平方微分后再积分的线性运算

## 有限脉冲响应滤波器的设计应用

运用定义，将$F$取代$f$做变数变换：

$F=\frac{f}{f_s}$，$dF=\frac{1}{f_s}df$

$$\begin{align} MSE & =\int_{-1/2}^{1/2} |R(F)-H_d(F)|^2dF \\ & = \int_{-1/2}^{1/2}|\sum_{n=1}^ks[n]cos(2\pi nF)-H_d(F)|^2dF \\ \end{align}$$

因为绝对值内函数是以时刻变数构成的实函数，所以可将绝对值平方直接写成两个实函数部分相乘。

$$MSE= \int_{-1/2}^{1/2} \left( \sum_{v=0}^ks[v]cos(2\pi vF)-H_d(F) \right)\left( \sum_{\tau=0}^ks[\tau]cos(2\pi \tau F)-H_d(F) \right) dF$$

将MSN对s{n做偏微分。

$$\begin{align} \frac{\partial MSE}{\partial s[n]} & =\int_{-1/2}^{1/2}cos(2\pi nF) \Bigl( \sum_{\tau=0}^k s[\tau]cos(2\pi \tau F)-H_d(F)\Bigr) dF \\ & + \int_{-1/2}^{1/2}\Bigl( \sum_{v=0}^k s[v]cos(2\pi vF)-H_d(F)\Bigr)dF \\ \end{align}$$

将上式第一个等号后面的两个$\Sigma$项合并，因为引数起始值和最末项值相同。

$$\begin{align} \frac{\partial MSE}{\partial s[n]} & = 2\sum_{\tau=0}^ks[\tau]\int_{-1/2}^{1/2}cos(2\pi \tau F)cos(2\pi nF)dF \\ & - 2\int_{-1/2}^{1/2}H_d(F)cos(2\pi nF)dF, \forall n=0,1,2,...k \\ \end{align}$$

上式等号右边的两项中，都各有将余弦函数从-1/2积分到1/2，又因为有两个自变数系数不同的余弦函数相乘，整个计算结果要分开讨论。

### $R(F)$与$H_d(F)$项次

$R(F)$与$H_d(F)$的项次$n$与$\tau$相异或相同，因为函数的正交性，会有不同的积分效果。此可由三角函数的积化合差验证出来。

$$\int_{-1/2}^{1/2}cos(2\pi \tau F)cos(2\pi nF)dF = \begin{cases} 0, & n\neq\tau \\ 1/2, & n=\tau, n\neq0 \\ 1, & n=\tau, n=0 \end{cases}$$ 故可得：

$$\begin{align} \frac{\partial MSE}{\partial s[0]} & = 2s[0]\times 1-2\int_{-1/2}^{1/2}H_d(F)\times1 dF=0 ,\forall n=0\\ \frac{\partial MSE}{\partial s[n]} & = s[n]-2\int_{-1/2}^{1/2}cos(2\pi nF)H_d(F)dF = 0, \forall n\neq 0 \\ \end{align}$$

MSE 是设计上滤波器响应函数和理想函数之间的误差，吾人会希望这个误差越小越好，即是设计的响应要和理想的响应，在所有时刻n上的趋势一样。

故使：${\partial MSE \over\partial s[n]} = 0$ for all n.

可得：

$$\begin{align} s[0]=\int_{-1/2}^{1/2}H_d(F)dF\\ s[n]=2\int_{-1/2}^{1/2}cos(2\pi nF)H_d(F)dF \\ \end{align}$$

观察上式，若我们要得到滤波器的最小方均误差，则要将理想滤波器频域响应对余弦函数做多项式内积。

最后将$s[n]$的值带入$h[k]$：

$$\begin{cases} h[k]=s[0] \\ h[k+n]=s[n]/2, h[k-n]=s[n]/2, & \text{for }n=1,2,3,...,k \\ h[n]=0, \text{ for }n<0 \text{ and } n\geq N. \end{cases}$$

$h[n]$即为欲设计的滤波器脉冲响应式。

## 结合权重函数

在数位滤波器设计中，可以利用权重函数$W(F)$去设计定频段更接近理想值。则MSE则表示为：

$$MSE=\int_{-1/2}^{1/2}W(F)|R(F)-H_d(F)|^2dF=\int_{-1/2}^{1/2}W(F) \Bigl( \sum_{-1/2}^{1/2}s[\tau])cos(2\pi \tau F)-H_d(F) \Bigr) dF$$

MSE对sn的微分值为零可改写为：

$$\frac{\partial MSE}{\partial s[n]}=2\int_{-1/2}^{1/2}W(F)cos(2\pi nF)\biggl(\sum_{tau}^k s[\tau]cos(2\pi \tau F)-H_d(F)\biggr)dF$$

$$=\sum_{\tau =0}^k s[\tau]\int_{-1/2}^{1/2}W(F)cos(2\pi nF)cos(2\pi \tau F)dF-\int_{-1/2}^{1/2}W(F)H_d(F)cos(2\pi nF)df=0, n\in[0,k]$$

$$\Rightarrow\sum_{\tau =0}^k s[\tau]\int_{-1/2}^{1/2}W(F)cos(2\pi nF)cos(2\pi\tau F)dF=\int_{-1/2}^{1/2}W(F)H_d(F)cos(2\pi nF)dF$$

可再将上式写成矩阵式：

$\begin{bmatrix} A[0,0] & A[0,1] & A[0,2] & ... & A[0,k]\\ A[1,0] & A[1,1] & A[1,2] & ... & A[1,k] \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ A[k,0] & A[k,1] & A[k,2] & \cdots & A[k,k] \end{bmatrix} \begin{bmatrix} s[0] \\ s[1] \\ \vdots \\ s[k] \end{bmatrix} =\begin{bmatrix} B[0] \\ B[1] \\ \vdots \\ B[k] \end{bmatrix}$ A矩阵每一行表示不同$\tau$代表的数值，每一列代表不同n代表的数值；s向量与B向量每一列表示不同n代表的数值。

其中：$A[n,\tau]=\int_{-1/2}^{1/2}W(F)cos(2\pi nF)cos(2\pi \tau F)dF, B[n]=\int_{-1/2}^{1/2}W(F)H_d(F)cos(2\pi nF)dF$

经由此举阵式可解出带有权重函数设计的$s[n]$。

最后将$s[n]$带入$h[k]$：

$$\begin{cases} h[k]=s[0] \\ h[k+n]=s[n]/2, h[k-n]=s[n]/2, & \text{for }n=1,2,3,...,k \\ h[n]=0, \text{ for }n<0 \text{ and } n\geq N. \end{cases}$$

$h[k]$即是欲设计的滤波器响应。