DSP - 计算机辅助设计

FIR 滤波器可用于进行滤波器的计算机辅助设计。让我们举个例子,看看它是如何工作的。下面给出了所需滤波器的图。

计算机辅助设计

在进行计算机设计时,我们将整个连续图形分解为离散值。在一定范围内,我们将其分解为 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 的复共轭。