2x过采样的基本方法?

信息处理 插值 重采样 抽取
2022-02-09 19:06:34

我想知道以下 2x 过采样的方法是否正确:

插:

  • 以 44100Hz 采样的原始信号作为输入
  • 通过在每个原始样本后添加一个零来上采样,以获得两倍长的信号
  • 使用低通滤波器过滤新信号(基于 88200Hz 新采样率的 44100Hz 截止)

使用新信号:

  • 对 88200Hz 的新信号进行一些额外的滤波

抽取:

  • 以 88200Hz 的最终信号作为输入
  • 使用低通滤波器进行滤波(基于 88200Hz 采样率的 44100Hz 截止)
  • 通过删除每隔一个(奇数)样本进行下采样
  • 现在又有一个 44100Hz 的信号了

我想检查的是方法是否正确以及我的低通滤波器的截止频率是否正确。

4个回答

插值(采样频率 44.1 kHz ➔ 88.2 kHz)

您的原始 44.1 kHz 采样信号的频率高达 22.05 kHz,因此您应该在用零稀释后在 22.05 kHz 处进行低通滤波。您的滤波器应该有 2 的增益。否则信号幅度会下降到一半,因为您将一半的样本设置为零。就像吉姆克莱所说,你可以把这些东西结合起来;会有很多优化的机会。

下采样(采样频率 88.2 kHz ➔ 44.1 kHz)

如果您的 88.2 kHz 采样信号是您以 22.05 kHz 进行低通滤波的信号,您可以通过丢弃每个第二个样本来简单地抽取。否则,首先在 22.05 kHz 处进行低通滤波器以防止混叠,然后抽取。如果结合低通滤波和抽取,您可以再次优化。

是的,您的方法是正确的,并且可以正常工作。

您可以通过将上采样(插入零)和低通滤波器组合到单个插值滤波器中,并将低通滤波器和样本去除组合到单个抽取滤波器中来减少计算负载,但这不是必须的正确的结果。

您对插值/抽取和所涉及的步骤有正确的想法。两点:

插值:

当您在样本之间插入零时,频谱现在是新的采样频率宽(在您的情况下为 88.2kHz),原始频谱的副本以原始频率的倍数显示(在您的情况下为 44.1kHz)。当您使用低通滤波器时,您的截止频率应该是 [原始采样频率 - 原始信号的 1/2 带宽] (44.1kHz - 1/2*BW),因为您想消除新的副本。以 44.1kHz 为中心的副本将具有与原始信号相同的带宽,因此您需要过滤低于副本带宽边缘的滤波器。

抽取:

抽取时,频谱的较高频率会折叠在新的采样频谱之上。如果您的低通滤波器的 (3dB) 截止频率为 44.1kHz,那么您最终会得到一些超过 44.1kHz 的频谱内容(除非您要使用不实用的理想矩形/砖墙滤波器)。在实践中,您应该设计滤波器以截止超过 44.1kHz 的频谱内容,以满足您的要求。这将涉及将截止频率设置为略低于 44.1kHz,并在 44.1kHz 处开始阻带。(MATLAB 的滤波器函数允许您选择 3dB 截止频率和阻带频率。)确保在阻带中选择足够的衰减以满足您的要求。

下采样时,防止混叠所需的低通滤波器截止值应等于或(更实际地)低于新目标采样率的一半。

但是,如果您从已经限制在 22kHz 以下的信号开始,并且只对其执行无噪声线性滤波,则这种额外的抗混叠滤波可能是多余的(对于 44.1k 的目标速率)。