少女祈祷中...

1. 前言

典型的立体声录音是为通过音箱聆听而制作的。也就是说,音响工程师制作的立体声混音,是为了让声音适应一个声道被双耳同时听到的情况。因此,长时间使用耳机聆听时,你会更容易感到疲劳,这更多是由于“超级立体声”效应,而非耳机设计不佳。

耳机中缺失的,是声音从每个声道传到对侧耳朵的过程——这部分声音会因传播距离更长而稍晚到达,并且由于头部的遮蔽效应,高频部分会有所衰减。此外,传播至对侧耳朵的时间延迟在低频时要比高频时稍长一些。

Bauer立体声转双耳DSP(bs2b) 的设计目的,就是改善立体声音频录音的耳机聆听体验。Benjamin Bauer [1]、Siegfried Linkwitz [2]、Chu Moy [3]、Jan Meier [4]、John Conover [10] 和 HeadRoom [9] 等电子电路设计师对这种改善进行了很好的描述。他们电路中的低频延时、低通滤波器、高频增强滤波器和交叉馈送,都是由一阶 RL(Bauer)或 RC(Linkwitz, Moy, Meier)模拟滤波器实现的。这种设计能产生预期效果,并且通过这些滤波器相位-频率响应的非线性特性,自然地避免了在高频范围产生梳状滤波效应。

bs2b 库通过简单快速(相较于 FFT 卷积)的单极点递归数字滤波器实现相同功能,因为这些滤波器与模拟 RC 滤波器具有相同的特性 [5], [6], [7]。当然,FFT 滤波器具有更多潜力,但在交叉馈送应用中,用 FFT 避免令人烦恼的梳状效应非常困难。

正如 Chu Moy [3] 所写,高频增强滤波器的截止频率应比低通滤波器的截止频率稍高一点,以实现交叉馈送器平滑的频率响应。因此,bs2b 的低通和高频增强滤波器的截止频率设定,旨在提供预期的时延和尽可能平滑的最终频率响应。

最后说明:bs2b 产生任何环境模拟,也在高频范围产生任何 HRTF [8] 变换。一些HRTF在高频范围的效果,是由优秀的耳机(除开像 Etymotic ER-4B 这样的双耳耳机)本身实现的。

总而言之,即使交叉馈送效果有助于长时间耳机聆听,你也可以通过 YouTube 上的简短试听(700Hz, 4.5dB)来检验它。

戴上你的耳机,尝试感受声音略微从你的头部外面发出。

点击查看视频


2. 理论

单极点递归滤波器由以下递归方程表示:

O[n] = a0 * I[n] + a1 * I[n-1] + b1 * O[n-1]

其中 a0, a1, b1 是递归系数,I[n] 是输入样本,O[n] 是输出(滤波后的)样本。滤波器的响应与递归系数相关。表 2.1 展示了一段 Perl 代码,它通过 H 变换 [5] 来计算 bs2b 的频率响应和时间延迟响应。

表 2.1. bs2b-H-transform.pl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/perl
use Math::Complex;
$s = 40000; # 采样率 ( Hz )
$Fc = shift; # 低通滤波器截止频率 ( Hz )
$Gd = shift; # 低通滤波器增益 ( dB )
$Ad_h = shift; # 高频增强滤波器增益 ( dB ) ( 0dB 是高频部分 )
# 示例:
# perl bs2b-H-transform.pl 700 -6.75 -2.25 # 默认预设 ( 700Hz, 4.5dB )
# perl bs2b-H-transform.pl 700 -8.00 -2.00 # Chu Moy 预设 ( 700Hz, 6.0dB )
# perl bs2b-H-transform.pl 650 -10.917 -1.417 # Jan Meier 预设 ( 650Hz, 9.5dB )
$G = 10 ** ( $Gd / 20 ); $A_h = 10 ** ( $Ad_h / 20 ); $G_h = 1 - $A_h;
$Gd_h = 20 * log( $G_h ) / log( 10 );
$Fc_h = $Fc * ( 2 ** ( ( $Gd - $Gd_h ) / 12 ) ); # 根据我的理论是 '/3',但...
print "Fc_low = $Fc\nFc_high = $Fc_h\n"; print "G = $G\nG_h = $G_h\n";
$fc = $Fc / $s; $d = 1 / 2 / pi / $fc; $x = exp( -1 / $d );
$fc_h = $Fc_h / $s; $d_h = 1 / 2 / pi / $fc_h; $x_h = exp( -1 / $d_h );
# 低通单极点滤波器系数
$b1 = $x; $a0 = $G * ( 1 - $x ); $a1 = 0;
# 高频增强单极点滤波器系数
$b1_h = $x_h; $a0_h = 1 - $G_h * ( 1 - $x_h ); $a1_h = -$x_h;
$w0 = 2 * pi * 4 / $s / 1.15; $z = exp( i * $w0 );
$H0 = ( $a0 + $a1 / $z ) / ( 1 - $b1 / $z );
$H0_h = ( $a0_h + $a1_h / $z ) / ( 1 - $b1_h / $z );
for( $w = $w0 * 1.15; $w <= pi/2; $w0 = $w, $w *= 1.15 )
{
$z = exp( i * $w );
$H = ( $a0 + $a1 / $z ) / ( 1 - $b1 / $z );
$H_h = ( $a0_h + $a1_h / $z ) / ( 1 - $b1_h / $z );
printf( "%f\t%f\t%f\t%f\t%f\t%f\t%f\n",
$s * $w / 2 / pi,
rho( $H ), # 20 * log( rho( $H ) ) / log( 10 ) ( dB )
theta( $H ) * 180 / pi, # 度
( theta( $H ) - theta( $H0 ) ) / ( $w - $w0 ) * 1000000 / $s, # 微秒
rho( $H_h ), # 20 * log( rho( $H_h ) ) / log( 10 )
theta( $H_h ) * 180 / pi, # 度
( theta( $H_h ) - theta( $H0_h ) ) / ( $w - $w0 ) * 1000000 / $s # 微秒
);
$H0 = $H; $H0_h = $H_h;
}

图 2.1 和 2.2 展示了上述程序的运行结果。换句话说,它们是 bs2b DSP 的理论响应。其中的 Sum 是经过低通和高频增强滤波器后信号的总和,可以理解为 bs2b 对双声道单声道信号的作用。

图 2.1. bs2b 理论频率响应。

理论频率响应

图 2.2. bs2b 理论时间延迟响应。

理论时间延迟响应
(图中负的时间值表示信号的延迟,单位微秒)

这些结果展示了三种不同截止频率和交叉馈送级别的版本:

  1. 700 Hz, 4.5 dB - 默认
    此设置最接近耳机聆听时,方位角 30 度、距离约 3 米的虚拟音箱摆位。

  2. 700 Hz, 6 dB - 最流行
    此设置接近 Chu Moy [3] 的交叉馈送器参数。

  3. 650 Hz, 9.5 dB - 只为放松聆听而对原始信号做最小改动
    此设置接近 Jan Meier [4] CORDA 耳机放大器中实现的交叉馈送器参数。


3. 实验数据

图 3.1 展示了在 Chu Moy [3] (700 Hz, 6 dB) 设置下 bs2b 的实际频率响应。这是对应用于 bs2b 的白噪声信号的频率分析。包含三种白噪声信号类型:“Mono” 是双声道单声道信号;“Independ” 是双声道独立信号;单声道信号。“单声道信号”通过 bs2b 的结果,分别以高频增强滤波器响应和低通滤波器响应的形式呈现。

图 3.1. bs2b 频率响应 ( 700 Hz, 6 dB )。

频率响应

图 3.2 和 3.3 展示了真实立体声信号的频率分析。分别使用了古典乐和摇滚乐样本。

图 3.2. J.S. Bach “BWV1066” 样本的频率分析 ( 700 Hz, 6 dB )。

Bach "BWV1066" 样本的频率分析

图 3.3. AC/DC “Thunderstruck” 样本的频率分析 ( 700 Hz, 6 dB )。

AC/DC "Thunderstruck" 样本的频率分析


4. 参考文献

[1] Benjamin B. Bauer. Stereophonic Earphones and Binaural Loudspeakers. JAES Volume 9 Number 2 pp. 148-151; April 1961.

[2] Siegfried Linkwitz. Improved Headphone Listening. Build a stereo-crossfeed circuit. Audio; December 1971.

[3] Chu Moy. An Acoustic Simulator for Headphone Amplifiers. © 1998-2001 Chu Moy.

[4] Jan Meier. A DIY Headphone Amplifier.

[5] Steven W. Smith, Ph.D. The Scientist and Engineer’s Guide to Digital Signal Processing. California Technical Publishing; ISBN 0-9660176-3-3 (1997).

[6] Davide Rocchesso. Introduction to Sound Processing. © 2003 Davide Rocchesso, GNU FDL.

[7] BORES Signal Processing: Introduction to DSP. © 2004 Bores Signal Processing.

[8] Richard O.Duda. 3-D Audio for HCI. © 1996-2000 Richard O.Duda.

[9] HeadRoom. About HeadRoom Crossfeed. © 1995-2006 HeadRoom.

[10] John Conover. Spatial Distortion Reduction Headphone Amplifier. © 1992-2005 John Conover.

[11] MultimediaWiki: PCM.

[12] Digital filter. From Wikipedia, the free encyclopedia.


文献出自SourceForge