哪种插值方法用于重采样语音信号?

时间:2017-04-15 15:39:00

标签: matlab signal-processing

我想使用MATLAB进行音频信号重采样(将fs = 8 kHz的信号转换为16 kHz)。

有3种插值方法可供选择:线性,pchip和样条

https://in.mathworks.com/help/signal/ref/resample.html#bungoxs

哪一个最适合语音信号?为什么?

3 个答案:

答案 0 :(得分:3)

您可能不想使用其中任何一种,而是DELIMITER // CREATE TRIGGER entry_trigger BEFORE INSERT ON table FOR EACH ROW BEGIN DECLARE entry int; SELECT IFNULL(MAX(Entry), 0) + 1 INTO entry WHERE project = NEW.project; SET NEW.Entry = entry; END; // DELIMITER ; ,它通过频域中的零填充进行上采样。这假设所有较高频率的信号(4 kHz以上)都为零 - 这些信号在录制过程中丢失了。

答案 1 :(得分:0)

线性采样不能提供良好的结果,因为它不能捕获低采样率信号的“曲率”,结果是高频伪像(你会看到你是否对你的上采样信号进行傅里叶变换)

样条曲线(表示三次样条曲线)是一种pchip。基本上你可以使用pchip,如果你知道你在做什么,并希望微调参数。由于您不知道自己在做什么,只需使用带有默认参数的三次样条曲线。在视觉上它们看起来还不错,但是当我对宽度点进行插值(对于图形)时,我发现它们不够灵活,并且不得不做五次样条。高于五折,花键变得非常摇摆,难以控制。但是,使用手动调整参数的五次样条曲线可能会为您提供最佳质量。

我在Baby X资源编译器中获得了复杂的上/下采样代码。然而,它不是由我开发的。 https://github.com/MalcolmMcLean/babyxrc

答案 2 :(得分:0)

上采样的最佳方法是使用Sinc内核插值或重建,使用(如果需要的多相)窗口Sinc在计算上是可行的。使用零填充IFFT进行上采样可产生类似的高质量插值,但圆形边界效应除外。

如果必须使用3种可用方法中的1种,则样条曲线不如pchip差,因为后者可能会略微削减,而且这两种方法都比线性更差。