音效处理Delay/Echo 简介

Posted 芥末的无奈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了音效处理Delay/Echo 简介相关的知识,希望对你有一定的参考价值。

系列文章目录


文章目录


一、Delay 是什么

Delay(延迟)是一种信号处理技术,它将输入信号纪录起来,然后过一段时间再播放。当延迟信号与当前信号混合时,会产生类似回声(Echo)的效果。大多数人都有过在大山中大喊的经历,声音在山谷之间传递,回声余音袅袅。没错,所谓的 Echo 就是这种感觉。看下面两个对比视频,加深对 Echo 的理解:

土拨鼠的尖叫

土拨鼠的尖叫-Echo

毫无疑问,Delay 是当今市场上最强大的音乐制作工具之一。我们听到的几乎所有的调制效果都是用特定的延时创造的。


二、Delay 原理

2.1 The Basic Delay

最简单 Delay,即输入信号与延迟信号叠加得到输出信号,差分方程如下:
y ( n ) = x ( n ) + x ( n − D ) (1) y(n)=x(n)+x(n-D) \\tag1 y(n)=x(n)+x(nD)(1)
其中 D D D 为延迟时间,更准确的说,表示延迟了 D D D 个采样点。下图是(1)的块状图。


我们对(1)进行 Z 变换,以此来探究 Basic Delay 对频率的影响:
y ( n ) = x ( n ) + x ( n − D ) Y ( z ) = X ( z ) + X ( z ) z − D = X ( z ) ( 1 + z − D ) H ( z ) = Y ( z ) X ( z ) = 1 + z − D (2) \\beginaligned y(n) &=x(n)+x(n-D) \\\\ Y(z) &=X(z)+X(z) z^-D \\\\ &=X(z)\\left(1+z^-D\\right) \\\\ H(z) &=\\fracY(z)X(z)=1+z^-D \\endaligned \\tag2 y(n)Y(z)H(z)=x(n)+x(nD)=X(z)+X(z)zD=X(z)(1+zD)=X(z)Y(z)=1+zD(2)
H ( z ) = 1 + z − D H(z) = 1+z^-D H(z)=1+zD 可以推断出它没有极点,只有 D 个零点。接下来求它的零点:
1 + z − D = 0 z − D = − 1 \\beginaligned 1+z^-D = 0 \\\\ z^-D = -1 \\endaligned 1+zD=0zD=1
接下来就是复数次方根的求解了,这部分内容可以参考 「珂学原理」No.110「复数的n次方根」。这里就不在重复视频提到的方法,而是利用欧拉公式求解。

z = e j ω z =e^j \\omega z=ejω ,通过欧拉公式转换得到:
cos ⁡ ( D ω ) + j sin ⁡ ( D ω ) = − 1 \\cos (D \\omega)+j \\sin (D \\omega)=-1 cos(Dω)+jsin(Dω)=1
由于 − 1 -1 1 为实数,无复数部分,因此可得:
cos ⁡ ( D ω ) = − 1 ω = ± k π D k = 1 , 3 , 5 , … , D \\beginaligned \\cos (D \\omega) = -1 \\\\ \\omega=\\pm \\frack \\piD \\quad k=1,3,5, \\ldots, D \\endaligned cos(Dω)=1ω=±Dkπk=1,3,5,,D
D = 2 D=2 D=2 时, ω = ± π 2 \\omega=\\pm \\frac\\pi2 ω=±2π
D = 4 D=4 D=4 时, ω = ± π 4 , ± 3 π 4 \\omega=\\pm \\frac\\pi4, \\pm \\frac3\\pi4 ω=±4π,±43π
D = 5 D=5 D=5 时, ω = ± π 5 , ± 3 π 5 , ± π \\omega=\\pm \\frac\\pi5, \\pm \\frac3\\pi5, \\pm \\pi ω=±5π,±53π,±π
我们发现 D 个零点是平均分布在单位元上的,不同 D 的频谱响应如下图所示。

D = 32 D=32 D=32 时可以看到频谱响应像是一把梳子一样,此类滤波器也被称为“梳妆滤波器”。

此外,我们还可以在 Audition 上使用 Basic Delay 对扫频信号进行处理,可以看到明显的梳妆特征。

处理前:

处理后:

2.2 Delay With Feedback

Basic Delay 只能产生单一的回声,应用比较有限。大多数 Delay 算法还会包含一个反馈控制,它将延迟后的信号以一定比例送回输入,如下图所示:

假设反馈控制那一条信号为 g ( n ) g(n) g(n),那么上图的差分方程为:
y ( n ) = x ( n ) + g ( n ) 其中, g ( n ) = x ( n − D ) + f g ( n − D ) y(n) = x(n) + g(n)\\\\ \\text其中, g(n) = x(n-D) + fg(n-D) y(n)=x(n)+g(n)其中,g(n)=x(nD)+fg(nD)
进一步推导有:
y ( n − D ) = x ( n − D ) + g ( n − D ) g ( n − D ) = y ( n − D ) − x ( n − D ) (3) \\beginaligned y(n-D) &= x(n-D) + g(n-D) \\\\ g(n-D) &= y(n-D) - x(n-D)\\\\ \\endaligned\\tag3 y(nD)g(nD)=x(nD)+g(nD)=y(nD)x(nD)(3)
g ( n ) = x ( n − D ) + f g ( n − D ) = x ( n − D ) + f ( y ( n − D ) − x ( n − D ) ) = ( 1 − f ) x ( n − D ) + f y ( n − D ) 因此 y ( n ) = x ( n ) + g ( n ) = x ( n )

以上是关于音效处理Delay/Echo 简介的主要内容,如果未能解决你的问题,请参考以下文章

音效处理Compressor 压缩器算法简介

音效处理Compressor 压缩器算法简介

音效处理Reverb 混响算法简介

音效处理Reverb 混响算法简介

音频处理Loudness Normalization 响度均衡算法简介

音频处理Loudness Normalization 响度均衡算法简介