合成器的过采样

信息处理 采样
2022-02-04 11:25:26

我正处于学习 DSP 的早期阶段,正在编写一个简单的合成器。我想涉足过采样并遵循本指南:https ://www.nickwritesablog.com/introduction-to-oversampling-for-alias-reduction/

添加 0 然后执行 LPF 很好,但是为什么我要像它所说的那样进行下采样呢?当我响应 MIDI 音符播放样本时,我不应该直接使用上采样缓冲区吗?弹奏一个音符算作下采样部分吗?如果我要上采样、过滤、下采样,然后使用该缓冲区播放 MIDI 音符,我绝对会再次遇到混叠问题,对吧?所以我需要知道我正确理解了这一点,如果没有,那么我需要更正。

L·斯皮罗

2个回答

如果您的动机是提高采样率,那么是的,您是正确的,一旦您进行过滤,您将完成插值并获得更高速率的信号副本。

零插入在光谱中创建副本(图像)。当您正确过滤掉这些图像时,您将获得更高的采样(内插)波形。

链接文章中对下采样的评论可能只是为了解释下采样和抽取。一旦您过滤了较高采样波形中能量会混叠的区域(如果比率相同,则恰好是在零插入过程中创建图像的相同区域),然后您可以下采样(取每个N'th sample) 安全,因为自从过滤完成后,就没有能量混叠了。只有当我们想要返回到原始采样率时,我们才会这样做(我们实际上可能这样做的原因是当我们需要一个小数采样率变化,我们插值并抽取)。MN

这篇文章详细介绍了重新采样的概念,并将额外链接到有关该主题的其他文章。

如果你有一个钢琴样本,比如说一个 440 Hz A4 的 10000 个样本,以 48kHz 采样,而你想使用 48kHz D/A 转换器弹奏一个高于它的八度音阶,880 Hz A5,你必须“压缩”原始波形到 5000 个样本。一种方法是下采样,这样您可以保留和移动低频内容,但删除高频内容(以避免混叠)。

如果您想对波形进行任何处理(例如,幅度包络),您可能希望以更高的中间分辨率工作,因为包络的任何不连续性(导数)本身都可能导致混叠。然后,您将在播放之前相应地进行下采样(或在您的情况下进行文件渲染)。

我确信实用的 rompler 和波表合成设计提供了更精细的解决方案,以巧妙的方式交换音质、cpu 和内存使用以及处理延迟。