数字信号处理 - 计算机辅助设计



FIR滤波器在计算机辅助设计滤波器中非常有用。让我们举个例子看看它是如何工作的。下面是所需滤波器的图形。

Computer Aided Design

在进行计算机设计时,我们将整个连续图形分解成离散值。在一定的范围内,我们将它分成64、256或512(等等)个具有离散幅度的部分。

在上面的例子中,我们取了-π到+π之间的范围。我们将其分成了256个部分。这些点可以表示为H(0)、H(1)、…直到H(256)。在这里,我们应用IDFT算法,这将为我们提供线性相位特性。

有时,我们可能对某种特定阶数的滤波器感兴趣。假设我们想通过9阶滤波器实现上述设计。因此,我们将滤波器值取为h0、h1、h2…h9。数学上,它可以表示如下

$$H(e^{j\omega}) = h_0+h_1e^{-j\omega}+h_2e^{-2j\omega}+.....+h_9e^{-9j\omega}$$

在存在大量错位的地方,我们取最大点数。

例如,在上图中,点B和C之间有一个突然的斜率下降。因此,我们尝试在此点取更多离散值,但在点C和D之间有一个恒定的斜率。在那里,我们取较少的离散值。

为了设计上述滤波器,我们通过以下最小化过程:

$H(e^{j\omega1}) = h_0+h_1e^{-j\omega1}+h_2e^{-2j\omega1}+.....+h_9e^{-9j\omega1}$

$H(e^{j\omega2}) = h_0+h_1e^{-j\omega2}+h_2e^{-2j\omega2}+.....+h_9e^{-9j\omega2}$

类似地,

$(e^{j\omega1000}) = h_0+h_1eH^{-j\omega1000}h_2e^{-2j\omega1000}+.....+h_9+e^{-9j\omega1000}$

将上述方程表示为矩阵形式,我们有:

$$\begin{bmatrix}H(e^{j\omega_1})\\.\\.\\H(e^{j\omega_{1000}}) \end{bmatrix} = \begin{bmatrix}e^{-j\omega_1} & ... & e^{-j9\omega_1} \\. & & . \\. & & . \\e^{-j\omega_{1000}} &... & e^{j9\omega_{1000}} \end{bmatrix}\begin{bmatrix}h_0\\.\\.\\h_9\end{bmatrix}$$

让我们将1000×1矩阵作为B,1000×9矩阵作为A,9×1矩阵作为$\hat{h}$。

因此,为了求解上述矩阵,我们将写

$\hat{h} = [A^TA]^{-1}A^{T}B$

$= [A^{*T}A]^{-1}A^{*T}B$

其中A*表示矩阵A的复共轭。

广告