给定特定脉冲长度,理想的 FIR 长度是多少?

信息处理 过滤器 过滤器设计 带通 带宽
2022-01-08 21:50:59

我试图确定“理想的”FIR 滤波器长度应该是多少,给定我试图过滤的噪声中窗口正弦曲线的脉冲长度 $T_p$。

作为我设计的 FIR 滤波器的参数,我有:

  1. $F_c = 15 \text{ kHz}$, 中心频率。(这是信号的载波频率)。我知道这个。

  2. 由于这是一个 BPF FIR,我将通带指定为 $F_{c} - \frac{1}{T_p}$ 到 $F_{c} + \frac{1}{T_p}$。这是因为加窗正弦波的带宽是 $\frac{2}{T_p}$

  3. 我不知道如何准确指定的最后一个参数是这个 FIR 的长度......这就是我迷路的地方。这里的理想长度是多少,(如果有的话?)......它应该只是脉冲的长度(当然是在样本中),从而使其类似于匹配滤波器吗?这是否意味着我在增加过滤器长度方面没有进一步的收获?


作为进一步的背景,我正在寻找这个“理想”长度,如果它存在的话,因为我试图过滤掉尽可能多的噪音,但也尽我所能保留尖锐的瞬态。这就是让我问的问题,是否有一个理想的过滤器长度可供开始。例如,在下图中,我过滤了我的信号的噪声版本,过滤器的长度分别为11(红色)和171(黑色)。它们如下所示:

在此处输入图像描述

正如您所看到的,虽然黑色结果“更平滑”,但您可以看到它的瞬态也更加“模糊”。相比之下,红色仍然保留了一些噪音,但瞬变没有受到影响。

下图显示了上述滤波器的光谱:

在此处输入图像描述

TLDR:那么,FIR 滤波器是否存在“理想”长度,因为进一步增加滤波器长度不会为您带来更多的抗噪能力,但实际上可能会比需要的更严重地涂抹瞬变?

编辑:

我添加了两个新图像。第一个具有长度为 11 的滤波器(红色)、长度为 171 的滤波器(黑色)和长度为 901 的滤波器(蓝色)。深蓝色是数据的光谱。

在此处输入图像描述

这是长度为 11 的过滤器(红色)和长度为 901 的新过滤器(黑色)的相应结果。

在此处输入图像描述

3个回答

我将上面的一些评论转换为这个答案:

如果您尝试检测 AWGN 通道上是否存在某些脉冲形状 $p(t)$,则最佳检测器使用与脉冲形状 $p(t)$ 匹配的滤波器(恰当地命名为匹配滤波器) ; 这使滤波器输出的信噪比 (SNR) 最大化,从而提供最佳的检测统计。这种方法等效于脉冲形状与观察到的信号的滑动互相关,数学表示如下:

$$ d(t) = x(t) * p(t) $$

其中 $x(t)$ 是观察到的信号,$d(t)$ 是结果检测统计量。

因此,主要问题包括选择一个合适的阈值,该阈值可用于确定感兴趣的脉冲在 $x(t)$ 中出现的位置。具体来说,当 $d(t) > T$ 时表示检测,其中 $T$ 是用于平衡两个相反性能指标的阈值:检测概率$P_d$ 和误报概率$P_{fa}$ . 这是一个指向先前答案的链接,我在其中更多地讨论了权衡这些指标的目标值将根据您的特定应用程序的要求进行选择。

对于这种情况,我们可以很容易地得出 $P_d$ 和 $P_{fa}$ 的通用表达式:

  • 错误警报的概率: “错误警报”表示检测器报告存在目标脉冲 $p(t)$ 而实际上不存在的情况。由于我们将通道定义为 AWGN,这意味着对于误报,输入信号 $x(t)$ 是高斯白噪声 (WGN) 过程。不失一般性,我们将假设噪声为零均值,方差为 $\sigma^2$。

    为了确定$P_{fa}$,我们关心匹配滤波器输出端的信号是什么样的。回想一下,$d(t)$ 被定义为:

    $$ d(t) = x(t) * p(t) = \int_{-\infty}^{\infty} x(\tau) p(t-\tau) d\tau $$

    假设$x(t)$是方差$\sigma^2$的高斯白噪声过程,可以证明$d(t)$也将是高斯的,方差等于:

    $$ \sigma_d^2 = \sigma^2 \int_{-\infty}^{\infty} |p(t)|^2 dt $$

    也就是说,匹配滤波器输出的方差仅由脉冲波形 $p(t)$ 的总能量缩放。检测统计量 $d(t)$ 只是一个方差 $\sigma_d^2$ 的高斯过程。在任何给定时间 $t$ 的误报概率等于检测统计量超过阈值 $T$ 的概率。利用高斯分布的性质,我们可以写成:

    $$ \begin{align} P_{fa} &= P(d(t) > T\ | \text{ 没有信号}) \\ &= 1 - F_d(T) \\ &= Q\left(\ frac{T}{\sigma_d}\right) \end{align} $$

    其中 $F_d(d)$ 是高斯分布的累积分布函数 (CDF),$Q(x)$ 是Q 函数

  • 检测概率:这种情况与误报情况的不同之处在于存在感兴趣的信号。具体来说,我们检查匹配滤波器与感兴趣的脉冲完全对齐的情况。存在我们之前分析的相同噪声分量,但所需脉冲形状的自相关使其具有非零平均值。该平均值等于脉冲波形的总能量:

    $$ \mathbb{E}\left(d(t)\right) = \int_{-\infty}^{\infty} |p(t)|^2 dt $$

    因此,检测概率是检测统计量超过阈值的概率:

    $$ \begin{align} P_{d} &= P(d(t) > T\ | \text{ 信号存在}) \\ &= 1 - F_d(T) \\ &= Q\left(\frac {T - m_d}{\sigma_d}\right) \end{align} $$

设计过程将如下所示:

  • 为您的检测器选择一个操作范围,定义您将在其中操作的最小信噪比(或等效地,最大噪声方差 $\sigma^2$)。

  • 假设最坏的情况(即最大噪音水平),选择一个阈值$T$,它满足您所需的$P_d$ 或$P_{fa}$(以您更重要的为准)。

  • 将 $T$ 的结果值代入另一个等式以确定您的预测性能指标。

这是对这个问题的一个相当高级的处理,如果你开始着手构建一些实际可行的东西,你会遇到一些其他值得注意的细节:

  • 与您的正弦检测问题相关的一件事是,相对于您的模板脉冲形状 $p(t)$,接收到的脉冲很可能处于某个未知的起始相位 $\phi$。然后,您将观察到基于相位偏移量的相关峰值的减少,这将对检测器的性能造成严重破坏。如果是这种情况,非相干检测器是更好的方法:

    $$ d_1(t) = x(t) * p(t) $$ $$ d_2(t) = x(t) * p_Q(t) $$ $$ d(t) = \sqrt{d_1^2( t) + d_2^2(t)} $$

    其中 $p_Q(t)$ 是模板正弦脉冲的 90 度偏移(或正交)版本。这个案例的统计数据略有不同,留给感兴趣的读者作为练习。

  • 上述处理假设在 $x(t)$ 中以与模板 $p(t)$ 相同的功率水平接收到脉冲,这几乎可以肯定是不真实的。有两种方法可以处理这种复杂情况:要么使用某种自动增益控制 (AGC) 过程,以将接收到的功率电平控制在你所期望的水平,要么你可以使 $T$ 成为一个自适应阈值,以相对到观察到的信号(例如,您可以尝试估计背景噪声方差 $\sigma^2$,然后适当地设置 $T$)。

为了获得“最佳”过滤器,您需要经过几个步骤

  1. 确定信号的频谱:窗口正弦脉冲的频谱基本上由与载波卷积的窗口函数给出。由于载波是正弦波,卷积只是移动了窗口频谱。然而,窗口的形状很重要:它是升余弦、汉宁、汉明、凯泽等。这决定了带宽有多宽以及是否有需要保持的强旁瓣。
  2. 确定噪声的频谱:最简单的方法是查看信号中只有噪声的区域的频谱
  3. 查看信号和噪声频谱。有用的频率是信号能量大于噪声的频率。“坏”频率是噪声较大的频率。
  4. 创建一个过滤器规范,通过“有用的”频率并“拒绝”坏的频率。可以使用称为“维纳过滤器” http://en.wikipedia.org/wiki/Wiener_filter的方法优化拒绝量在紧要关头,带通也可以。
  5. 滤波器规格至少应具有中心频率、带宽和滚降陡度。更多的滤波器系数通常会使通带更平坦,滚降更陡峭。再次查看信噪比图通常会告诉您什么滚降是有意义的

FIR 滤波器长度将决定 FIR 滤波器的精度。FIR 滤波器是最佳滤波器响应的近似值(由您决定),不应与“脉冲”持续时间相关联。FIR 滤波器越长,您拥有的系数越多,滤波器幅度响应就越符合您的规范。还有两个问题需要考虑。您必须考虑相位响应,因为这会扭曲解调脉冲的形状。您可能已经这样做了,但我认为您可能希望您的 FIR 滤波器具有线性相位。此外,当您增加 FIR 滤波器的长度时,您将增加从输入到输出的延迟,因此您不想在滤波器长度方面只为月球射击。所以就最佳长度而言,