耳机网-耳机大家坛

标题: 32Bit浮点ADC系统的构成及特点---ZOOM UAC-232评测 [打印本页]

作者: testguru    时间: 2023-10-10 01:27
标题: 32Bit浮点ADC系统的构成及特点---ZOOM UAC-232评测
一、简介
能输出32位浮点格式数据的ADC系统是近两年的热门话题。无论是从理论上还是实际上,32位浮点格式都提供了远高于16位、24位和32位整数格式的动态范围。在理想情况下,应将底噪水平维持在ADC最低的1个BIT内,而信号最高电平应能充分利用ADC所有的BIT。因此在理论上,这几种格式所提供的动态范围如下:


在现实中,想通过单个ADC达到125 dB的动态范围都是异常困难的,即使其声称位深有24位或32位,这是因为很难在如此大的动态范围内将底噪保持在1 bit以下。如今,麦克风的动态范围可以高达140 dB,与人类听觉的动态范围相符。因此,调整输入模拟增益以使音频信号的主要部分位于单个ADC的动态范围内是一项技术活儿。音频信号过大将使波形被削顶,而音频信号过小将失去其保真度,甚至会被淹没于底噪中(见下图)。

由单个ADC相对受限的动态范围引起的问题

与其将单个ADC的性能提升到极限,不如另辟蹊径。目前支持32位浮点格式的音频设备通常有两个ADC协同工作,并合成单一的32位浮点数据流输出(见下图)。其中的“低增益”ADC被优化用于强音频信号,而“高增益”ADC被优化用于弱音频信号。当高增益ADC因信号幅度过大而削顶时,低增益ADC则不会。当低增益ADC因信号幅度过低而无法在其底噪之上清晰地采集到声音时,高增益ADC在其底噪之上仍然有足够的余量。因此,通过这种双ADC配置,可显著扩展总的动态范围,实现低噪声且无削顶的录音,甚至无需调节模拟增益。这就是为什么ZoomUAC-232的面板上不配备输入模拟增益开关和旋钮的原因。本篇文章的主要目标之一就是找出该设备能够达到的实际动态范围。另一个关注点是通过实验来探究其ADC切换算法及其影响。


支持32位浮点格式的双ADC架构

Multi-Instrument是最先全面支持32位浮点格式ADC的测试测量软件之一。在32位浮点模式下,该软件始终将原始采样数值1作为0 dBFS。在软件中,可通过[设置]>[校准]>“其它/ASIO”>“范围”来输入该值所代表的实际电压值,以实现校准。需注意的是,在32位浮点模式下,0dBFS不一定代表最大电平值。刚好出现削顶失真的最大电平值需要在这里实测。在以下测试中,除非特别指明,“范围”设置为默认的未经校准的1Vp,这样的好处是测得的瞬时电压值可直接反映原始的采样值,例如:瞬时电压值1V表明在32位浮点格式下的原始采样值为1。

以下测试采用了2023年5月30日发布的ZOOM UAC-232 ASIO驱动程序V1.1.0版和2023年2月9日发布的ZOOM UAC-232 Mix Control V1.0.0.13版。ZOOM UAC-232 Mix Control是用来控制ZOOM UAC-232内部的混合器设置的,它为不同的输入设备(XLR话筒输入、LINE输入和HiZ输入)设置了不同的默认数字增益(见下表)。修改这些默认值后会自动保存于硬件设备中。请注意:修改数字增益设置后,前述的“范围”校准将无效,需重新校准。在32位浮点模式下,录音的质量不会随着数字增益的改变而改变。因此在以下的测试中,数字增益始终保持为0dB。




作者: baikal    时间: 2023-10-10 05:29
看不懂。
作者: prodomo    时间: 2023-10-10 09:55
专业设备
作者: 阿灰灰    时间: 2023-10-10 11:54
简而言之就是不太可能再爆电平了,32位浮点对录音的提升是有很大的积极意义的
作者: testguru    时间: 2023-10-12 16:12
本帖最后由 testguru 于 2023-10-12 16:34 编辑

是的。下图是32位浮点ADC的概念性宣传图,就是说,与整数ADC相比,浮点ADC的优点是,提升了弱信号的分辨率,并且在强信号下不出现削顶失真。实际上,它只是扩大了ADC的动态范围,降低了无法分辨的弱信号的下限,提升了出现削顶失真的强信号的上限,但上、下限总是存在的。所以本文的正文并未采用下图。

由双或多个ADC构成的32位浮点ADC系统扩大了整体的动态范围


发现首帖的此图有误,现更正如下。


由单个ADC相对受限的动态范围引起的问题



作者: testguru    时间: 2023-10-12 16:25
本帖最后由 testguru 于 2023-10-12 16:28 编辑

二、XLR话筒输入

2.1 最高电平
最高电平可通过向XLR接口输入平衡的1kHz正弦波来测量。48V幻象电源的开关状态并不影响测得的最高电平。测得的最高电平为1Vp(未校准值)或者0dBFS,对应于校准值2.35Vp(6.63dBu)。这个值略高于ZOOM标明的最大电平值2.19Vp(6 dBu)。下面第二幅图则确认了削顶失真发生于1Vp(未校准值)或者0dBFS

XLR话筒输入的无削顶失真的最高电平(数字增益=0dB

XLR话筒输入的有削顶失真的最高电平(数字增益=0dB

2.2 底噪电平
底噪电平可通过将XLR输入端的“+”和“-”短路到地来测量,否则测得的底噪电平将会增大约12dB。这是因为ZOOMUAC-232具有极低的底噪电平,很小的外部干扰都可能影响到测量结果。在软件中,将THD测量的基波手动设置为24kHz以保证将20Hz~20kHz之间的信号都计算为底噪电平,而不会有部分信号被计算为基波和谐波失真。下面两图为具有A计权和没有A计权的底噪电平的测量结果,可见底噪电平为-136.4dBFSA或-134.3dBFS。

XLR话筒输入的经过A计权的底噪电平(数字增益 = 0dB

XLR话筒输入的无频率计权的底噪电平(数字增益= 0dB

因此等效输入底噪电平可计算为:



此结果于ZOOM指标中的-127dBu一致。


2.3 动态范围

动态范围等于前面测得的最高电平(0 dBFS)与底噪电平(-134.3dBFS或经A计权的-136.4dBFSA)之差,即:134.3dB136.4dBA


传统上,动态范围是通过测量信号电平为-60dBFS时的信噪比SNR来推得的。动态范围为SNR+60dB)。下图为按此法测试的结果。测得的SNR72.4dB,因此动态范围为132.4dB。但是在本测试中所使用的信号发生器的底噪电平略高于ZOOMUAC-232XLR话筒输入的等效底噪电平,因此用前面方法测得的134.3dB的动态范围更准确。

-60dBFSXLR话筒输入的SNR(数字增益 = 0dB



作者: testguru    时间: 2023-10-15 02:47
本帖最后由 testguru 于 2023-10-15 02:49 编辑

2.4 THD, THD+N, SNR, SINAD,ENOB, 底噪电平
当信号电平为-1dBFS时,测得的THDTHD+NSNRSNAD和底噪电平分别为0.0026%0.0032%90.03dB94.85dB-95.84 dBFS。这里测得的底噪电平远比前面测得的高,这是因为这里的信号电平高,底噪来自于低增益ADC而非高增益ADC

-1dBFSXLR话筒输入的THDTHD+NSINADSNR、底噪电平(数字增益 = 0dB

2.5 IMD


-1dBFSXLR话筒输入的SMPTE IMD(数字增益 = 0dB

-1dBFSXLR话筒输入的DIN IMD(数字增益 = 0dB

-1dBFSXLR话筒输入的CCIF2 IMD(数字增益 = 0dB

2.6带宽

带宽可通过注入20秒的对数扫频信号来测得,分析时采用了1/96倍频分析。测得的结果如下:
-3dB@48kHz带宽:9.5Hz~23.8kHz;20Hz~20kHz, ±0.21dB,这与ZOOM指标中的+0.1~-0.2dB一致。
-3dB@96kHz带宽:9.5Hz~47.6kHz;20Hz~40kHz, ±0.22dB。

-3dB@192kHz带宽:9.6Hz~91.8kHz;20Hz~80kHz, ±0.21dB,这与ZOOM指标中的+0.1~-0.2dB一致。
48kHz采样频率下XLR话筒输入的带宽(数字增益 = 0dB

96kHz采样频率下XLR话筒输入的带宽(数字增益 = 0dB
192kHz采样频率下XLR话筒输入的带宽(数字增益 = 0dB

2.7串扰


1kHzXLR话筒输入的串扰(数字增益 = 0dB






作者: 交响无际    时间: 2023-10-15 23:20
本帖最后由 交响无际 于 2023-10-15 23:23 编辑

这个论坛还讨论这个?

前几个月,国内还没上市时,意外发现了这个设备,从亚马逊日本海淘了一个。
大概一个半月后,还意外又退了40多元的税款。
好像还比国内买,便宜几百?
https://www.amazon.cn/gp/product/B0BVR1SYL2/


用了几个月,还挺满意的。

就是,48V幻象电源供电的开关按钮,某次在插拔动圈麦克风时,误触过一次,吓了一跳。
还好在网上搜到了这个视频,https://www.bilibili.com/video/BV1hA411C7tj/,说sm57是不怕误开48v的,这才踏实下来。

上个月亚马逊美国的铝带麦克风,意外标价少了一千多块RMB,秒了一支,结果说下个月才能发货。
了解到铝带误开48v有一定风险后,怕以后再误触到这个按钮,找了两个机柜螺丝的垫圈,正好可以圈粘在这个按钮上。

这种平衡口不带锁扣的情况,常见吗?老觉得,不卡住一下,不是太踏实了,呵呵。


之前试过用Audacity 32位浮点录,爆掉的音,用效果里的“消波失真修复”把爆掉的段落拉回来。听起来老觉得声音有点不太自然,可能是心理作用?不太懂了。
现在通道二的小振膜电容麦,还是在驱动里只开到18档,这样对吗?



另外,怎么设置才能使Audacity只录第二通道的麦克风呢?
现在只能先选成录两声道(立体声),然后再分离成两个单声道了,删除第一通道的音轨?




作者: testguru    时间: 2023-10-16 22:37
电脑音频接口的48V幻象电源开关按钮好像很多都是这样设计的,比如Focusrite Scarlett Solo,由于48V幻象电源内含限流电阻(6.8K左右),一般不会损坏误接的其它类型的支持XLR接口的话筒。

MME和Direct Sound都不支持32位浮点格式采样,因此只有WASAPI或ASIO才行。刚试了最新版Audacity3.3.3,发现它仍然不支持32位浮点录音,只支持32位浮点处理及数据保存,因此无法得到32位浮点录音的好处。

ZOOM UAC-232 Mix Control只提供数字增益。如果是在32位浮点模式下,无论数字增益是多少分贝都不会影响录音质量;但在非浮点模式下,增益过大会引起削顶失真,增益过小,则丧失小信号的分辨率。



作者: 交响无际    时间: 2023-10-16 23:46
testguru 发表于 2023-10-16 22:37
电脑音频接口的48V幻象电源开关按钮好像很多都是这样设计的,比如Focusrite Scarlett Solo,由于48V幻象电 ...

学习了,谢谢!
我用的是Mac,用了用audacity和ableton live录32位浮点,好像设置还挺直接、简单的了。


请教一下,UAC-232 Mix Control里面的这个“输入电平推子”,怎么理解比较好呢?是数字增益的意思吗?
我看数字是从0~60,每+3步进,这个数字的单位也是dB吗?
开到0,好像DAW就没声音输入了?有点像UAC232到电脑的输出音量推子?
谢谢





作者: testguru    时间: 2023-10-17 20:48
是的,UAC-232 Mix Control里面的“输入电平推子”就是数字增益,单位是dB。
作者: 交响无际    时间: 2023-10-17 21:12
testguru 发表于 2023-10-17 20:48
是的,UAC-232 Mix Control里面的“输入电平推子”就是数字增益,单位是dB。

刚刚又试了一下,把这个“数字增益”推子拉到0,还是能录到一点点声音的。(之前误以为,拉到0就完全没声音了,所以一直有点没能理解了)

请教一下,如果加独立话放的话,不要uac 232做数字增益的话,是不是这个值平时就拉倒0的位置呢?谢谢!

作者: testguru    时间: 2023-10-18 23:23
在真正的32位浮点录音模式下(不是目前Audacity在WINDOWS下的那种伪32位浮点录音),无论数字增益置于什么地方,最低0dB或者最高60dB,录音质量完全不变,只是音量有变化。如果嫌音量太小或太大,可通过后处理软件Normalize一下,或者调节一下后处理软件的数字增益即可。但在伪32位浮点录音模式下,或在其它非浮点录音模式下,例如那些只有在数据处理和保存时才用到32位浮点格式的,则会在音量小时丧失清晰度,音量大时削顶失真。

如果外加独立话放,然后将UAC-232的数字增益置于0,当然是可以的,不过这相当于恢复了前端的模拟增益调节,没用到32位浮点录音的优点。

本篇文章将数字增益置于0是便于论述,置于其它任何地方都是可以的。例如,当数字增益为0dB时,XLR接口的削顶电压为2.35Vp, 对应的32位浮点数为1;当数字增益为20dB时,XLR接口的削顶电压仍然为2.35Vp, 对应的32位浮点数为10;当数字增益为40dB时,XLR接口的削顶电压仍然为2.35Vp, 对应的32位浮点数为100; 当数字增益为60dB时,XLR接口的削顶电压仍然为2.35Vp, 对应的32位浮点数为1000........



作者: 交响无际    时间: 2023-10-19 20:33
testguru 发表于 2023-10-18 23:23
在真正的32位浮点录音模式下(不是目前Audacity在WINDOWS下的那种伪32位浮点录音),无论数字增益置于什么 ...

学习了,太感谢了。

我现在用UAC-232,接了一个sm57,一个se8,距离声源大约1米距离,声源声压级大约是90~110dBz。

在mix control里,sm57推到39,se8推到18,基本上95%以上的情况都不会爆掉了。

虽然目前对录音质量要求还不高,但最近一直有点长草,想弄个话放玩玩。

请教一下
1.看到不少说,动圈不好推,最好配个话放。不过,像我这种声源比较大声的,uac232的增益好像已经足够大、足够用了,是不是就不需要再加个独立话放提供额外增益了呢?
2.还看到一个视频说,类似这种5v usb的声卡,48v幻象电源的电压一般只有不到40v,接电容麦克风的话,建议弄个220v的话放。

请问uac 232的这个话放质量,大概如何呢?还是有32位浮点技术加持,这些都不是太大问题呢?
如果说1万多上话放,是不是不如弄个更好一点的麦克风,提升更大呢?

谢谢!

作者: testguru    时间: 2023-10-20 01:34
按下面计算SM57应该100%不会爆音,而SE8应该99%不会爆音:

ZOOM UAC-232:XLR输入阻抗2700 欧,最高不削顶输入电压:2.35Vp (1.66Vrms)
SM57(动圈)输出阻抗:310欧,灵敏度:-56dBV  (1.6mVrms/Pa),等效本底噪声:小到在这里可忽略。
SE8(电容)输出阻抗:110欧,灵敏度:-32dBV  (25mVrms/Pa),等效本底噪声:13 dB
由于这两种话筒的输出阻抗远低于UAC-232的XLR的输入阻抗,可忽略电压损失。因此在这样的配置下,最大不削顶失真的声压级为:

SM57: 94dB + 20log(1.66/0.0016) = 94+60 =154(dB)

SE8:94dB + 20log(1.66/0.025) = 94+36 =130 (dB)

再根据本文前面实测的动态范围(按保守的不加频率计权的134dB)可推知,最小可测的声压级为:

SM57:154 - 134  = 20dB

SE8: 130 - 134 = -4dB,由于这低于其等效本底噪声13dB,所以最小可测的声压级应取高者,为13dB。


动圈话筒的灵敏度通常偏低,不过由于UAC-232的动态范围大,按上面计算,SM57最低也可测到20dB,感觉足够了,无需外加话放来提供额外的模拟增益。SE8的低端可以,高端有 130dB了,也很难爆音吧。从USB口的5V转48V没啥问题,刚测了UAC-232的空载为48.18V。我一般只看客观测试参数,诸如THD、IMD、TIM、串扰、带宽、底噪、动态范围等。主观评价就要因人而异了。


作者: chaos_xie    时间: 2023-10-22 10:05
本帖最后由 chaos_xie 于 2023-10-22 10:06 编辑

32bit浮点vs整数没有这么简单。都是32bit,浮点并没有提供更多的信息量。
浮点数的问题在于其分辨率在接近0和远离0的时候(比如1000)是不一样的。距离0越远,分辨率月底。它的有效数字位数是低于整形数的,因为还需要几个bit表示exponent 。浮点数的分辨率取决与其exponent 的大小。

因此用32bit浮点记录声音,表面上看动态范围增加了,但是声音很大的时候,量化噪声增加了。在低音量的时候,量化噪声却很低。

当然20bit的时候就db数已经超过了绝对上限了,32bit浮点的分数部分是23bit。因此分辨率肯定是够了。那么多出来的指数部分不是为了分辨率。但是直接用float,从方便数值处理来说是有意义的。

所以我个人推断,32bit float用在声音上主要是为了便于dsp直接处理raw数据吧。

作者: testguru    时间: 2023-10-22 18:45
chaos_xie 发表于 2023-10-22 10:05
32bit浮点vs整数没有这么简单。都是32bit,浮点并没有提供更多的信息量。
浮点数的问题在于其分辨率在接近 ...
32bit浮点vs整数没有这么简单。都是32bit,浮点并没有提供更多的信息量。
浮点数的问题在于其分辨率在接近0和远离0的时候(比如1000)是不一样的。距离0越远,分辨率月底。它的有效数字位数是低于整形数的,因为还需要几个bit表示exponent 。浮点数的分辨率取决与其exponent 的大小。

部分同意。同样都是32位数,32位浮点数仅有24位有效位数,比32位整数少了8位,而这丧失的8位有效位数挪用来作为指数(exponent)以极大地扩展动态范围,从32位整数192.7dB的动态范围扩展到32位浮点数1535dB的动态范围。有了扩大的动态范围,就大大提高了所能容纳的信息量,而且正如你所提到的,按目前ADC的噪声水平,24位有效位数尚未用完,所以在现实中32位浮点数暂时还谈不上有实际的有效位数损失。

浮点数的问题在于其分辨率在接近0和远离0的时候(比如1000)是不一样的。距离0越远,分辨率月底。

这种说法虽然在数学上正确,但在这里应该反过来这样表述:虽然32位整数在整个动态范围内提供了均匀的幅度分辨率,但是这恰恰是其弱点,因为当信号幅度弱的时候,人们希望幅度分辨率高,这样信号不至于丧失清晰度,通过数字增益提升后,清晰度仍在,而不至于出现锯齿;而在信号强的时候,幅度分辨率可以低一些,因为这时信号的清晰度已经很好了。这个问题在电路上的解决办法是采用多个不同增益的ADC,对强弱信号分别对待;在数学上的解决办法是用32位浮点格式来合并这些ADC的输出。

以ZOOM UAC-232为例,低增益ADC的满程电压为2.35Vp (4.7Vpp),而高增益ADC的满程电压为0.045Vp (0.09Vpp)。先忽略本底噪声影响,前者在32位整数格式下的幅度分辨率为:4.7V/power(2,32)=1.1nV,而后者在32位整数格式下的幅度分辨率为:0.09V/power(2,24)=0.021nV。如果现在有一个1.1nV弱信号,那么在低增益ADC下,32位整数仅能分出一级,可以说完全丧失了清晰度,而在高增益ADC下,32位整数可分出1.1nV/0.021nV=52级,可以说仍然保持了一定的清晰度。相反,如果现在有一个0.09V的强信号,那么低增益ADC下,32位整数能分出0.09V/1.1nV=大约8千2百万级,清晰度是足够的。而在高增益ADC下,32位整数能分出0.09V/0.021nV=大约43亿级,只不过如果电压超过0.09V后,高增益ADC就削顶失真了。通过32位浮点格式就能将二者的好处合并在一起,而将坏处扔掉


因此用32bit浮点记录声音,表面上看动态范围增加了,但是声音很大的时候,量化噪声增加了。在低音量的时候,量化噪声却很低。
如前所述,这不是什么大问题。如果能出一个ADC系统,无论声音大小,量化噪声都跟低音量的时候一样,那当然更好。问题是必须在现实硬件系统可达到的水平下工作,不断提升。目前的这种多ADC方案已经是对单ADC方案的一个革命性的进步。做声音测量和录音的应该更明白这意味着什么。

如本文前面所述,由于底噪的影响,单个ADC的动态范围很难超过125dB,而最近这一两年,采用多ADC架构、以32位浮点格式输出数据的ADC系统开始成为热点。目前市面上的有浮点ADC系统的厂家大概只有三、四家。UAC-232的动态范围为134.3dB左右,SoundDevice的MixPre II据说可到140+dB,不过贵很多,我还没测过。也许有人会说,这些动态范围仍然低于24位整数的144.5dB的动态范围,更低于32位整数的192.7dB,为什么不将合并后的数据处理为24位整数或32位整数呢?

既然不是采用单个ADC那种直接整数输出方式,而是要做合并处理,那么直接处理成32位浮点更便于后续的DSP处理。窃以为更重要的是,前面测得的动态范围是以底噪电平为基础的,也就是说当处理为整数格式时,底噪电平被认为1Bit,以便硬塞进整数格式所提供的狭小的动态范围内,而浮点数据不一样,底噪部分仍然保存有丰富的细节,为后续的各种DSP处理提供丰富的空间,比如可通过DSP算法,轻松地检测出淹没于底噪中的微弱正弦波信号,这在缺乏细节的整数格式下是困难。

作者: 交响无际    时间: 2023-10-22 22:02
本帖最后由 交响无际 于 2023-10-22 22:05 编辑
testguru 发表于 2023-10-20 01:34
按下面计算SM57应该100%不会爆音,而SE8应该99%不会爆音:

ZOOM UAC-232:XLR输入阻抗2700 欧,最高不削 ...

赞!

还有一个疑问,想请教一下,麦克风上面的-10dB,-20dB的灵敏度切换开关,大概是做什么用的呢?一般不是特别特别大声的话,是不是没什么用呢?

只有当声源的声压级有可能超过139dB spl时,才用得到,对吗?谢谢!

如果声源的声压级是150dB spl,这个麦克风不设置切换到-20dB档位,只是麦克风内部会出现失真,和话放、UAC 232都没什么关系,这样理解对吗?










作者: chaos_xie    时间: 2023-10-22 22:44
testguru 发表于 2023-10-22 18:45
部分同意。同样都是32位数,32位浮点数仅有24位有效位数,比32位整数少了8位,而这丧失的8位有效位数挪 ...

很有道理,学习了。声音处理上分辨率变化不是缺点,是优点:)
注:稍微纠正一下,IEEE754标准里float里还有1个bit表示符号位,所有只有23个bit表示有效数字。

作者: 交响无际    时间: 2023-10-22 23:24
本帖最后由 交响无际 于 2023-10-22 23:28 编辑
testguru 发表于 2023-10-22 18:45
部分同意。同样都是32位数,32位浮点数仅有24位有效位数,比32位整数少了8位,而这丧失的8位有效位数挪 ...

请教一下,32位浮点录音的,除了zoom、sound device、tascam x8,还有什么可选的吗?

搜到这个SoundDevice的MixPre II了,https://www.sounddevices.com/product/mixpre-3-ii/
MixPre-3 II国内TB 7500,https://shop574267538.taobao.com/。明天白天再找人问问看。

大概翻了一遍说明书,感觉还挺好的。还可以接USB键盘控制,还有iOS、安卓app可以蓝牙遥控。又有点长草了,嘻嘻嘻~~

这个MixPre II产品出来好几年了吗?B站上的很多介绍视频,都是2020年的?



作者: 番茄炒蛋饭    时间: 2023-10-23 23:50
我都是用double 64比特浮点来处理音频数据
作者: testguru    时间: 2023-10-24 00:12
内部处理32位浮点够用,64位浮点当然更好。这里主要指多ADC系统输出的原始采样数据。
作者: testguru    时间: 2023-10-24 00:34
本帖最后由 testguru 于 2023-10-24 00:40 编辑
交响无际 发表于 2023-10-22 22:02
赞!

还有一个疑问,想请教一下,麦克风上面的-10dB,-20dB的灵敏度切换开关,大概是做什么用的呢?一 ...
最大声压级139/149/159dBSPL (0/10/20 dB衰减开关)

这个应该是指话筒内部电路削顶失真时的声压级,按照该话筒的灵敏度25mV/Pa计算,其输出电压峰值为:

声压级139dB:0.025*1.414*power(10,(139-94)/20)=6.29 Vp
声压级149dB:0.025*1.414*power(10,(149-94)/20)=19.9 Vp
声压级159dB:0.025*1.414*power(10,(159-94)/20)=62.9 Vp


也可能是预估超过6.29Vp的输出电压应该会造成后续的放大器削顶来指定的。无论如何,如果不衰减,那么62.9Vp的电压不可能在幻像电源48V下输出。同时,后续的放大器也应该会削顶。其实,即使在139dB的声压级下,UAC-232也会削顶,因为其最大不失真输入电压为2.35V,而未衰减的话筒输出电压为6.29Vp,这时也得用衰减开关。


作者: testguru    时间: 2023-10-24 00:49
chaos_xie 发表于 2023-10-22 22:44
很有道理,学习了。声音处理上分辨率变化不是缺点,是优点:)
注:稍微纠正一下,IEEE754标准里float里 ...
IEEE754标准里float里还有1个bit表示符号位,所有只有23个bit表示有效数字。

你说得对,不过二进制的符号位也可算为一位二进制的有效位数。例如:8位PCM格式的WAV文件是按8位无符号数保存的,而16位、24位和32位PCM格式的WAV文件则是按有符号数保存的。这并不影响它们所提供的动态范围的计算,都是20*log10(power(2, n)),其中n为位数。这些计算都没争议,但到了计算32位浮点数的动态范围时,Sound Devices的计算如下(可参考:https://www.sounddevices.com/32-bit-float-files-explained/):


二者相减得1528dB。而我的计算则是1535dB,如下:
=1535 dB


本质上就是这个符号位是否要计算在动态范围内的问题。显然在计算前面的整数格式的动态范围时,符号位是计算了的,如果要保持计算方法的一致性,Sound Devices的计算就是错的。TASCAM则说32位浮点数的动态范围是1680 dB(可参考:https://tascam.com/us/feature/32-bit_float),好像有点要取“一路发”的谐音的意思,怎么计算出来的就不知道了。



作者: testguru    时间: 2023-10-24 00:58
本帖最后由 testguru 于 2023-10-24 01:01 编辑
交响无际 发表于 2023-10-22 23:24
请教一下,32位浮点录音的,除了zoom、sound device、tascam x8,还有什么可选的吗?

搜到这个SoundDe ...

还有个NT1 5th Generation mic from Rode, 好像是今年才出的。SoundDevice貌似是真正的最早。估计其它厂家都会跟进。

作者: chaos_xie    时间: 2023-10-24 03:05
testguru 发表于 2023-10-24 00:49
你说得对,不过二进制的符号位也可算为一位二进制的有效位数。例如:8位PCM格式的WAV文件是按8位无符号 ...

核心问题是有用数值范围。整数计算一般用unsigned,从0开始,所以要算。
对于声音,sounddevices的计算的值域范围不含0和负数。
用负数的话,也失去了你之前说的在0(最低音量)附近需要的高分辨率的优势。

作者: testguru    时间: 2023-10-24 03:17
chaos_xie 发表于 2023-10-24 03:05
核心问题是有用数值范围。整数计算一般用unsigned,从0开始,所以要算。
对于声音,sounddevices的计算 ...

这次就完全不理解你说的了

作者: chaos_xie    时间: 2023-10-24 03:32
testguru 发表于 2023-10-24 03:17
这次就完全不理解你说的了

The minimum positive normal value is 2^-126≈1.18×10^−38,符合公式里的数据。2^-126是可以表达的最小音量,(浮点数无法直接表示0)。
可以看到使用的值域范围是正数。所以符号位在此数据格式中是没有用的。

作者: testguru    时间: 2023-10-24 03:41
本帖最后由 testguru 于 2023-10-24 03:44 编辑
chaos_xie 发表于 2023-10-24 03:32
The minimum positive normal value is 2^-126≈1.18×10^−38,符合公式里的数据。2^-126是可以表 ...

我在前面早已埋下伏笔, 那按你说的,16位,24位,32位都是按有符号数表示的,动态范围就只有:
16位:=20*LOG10(POWER(2,15)) = 90.3 dB
24位:=20*LOG10(POWER(2,23)) = 138.5 dB
32位:=20*LOG10(POWER(2,31)) = 186.6 dB





作者: chaos_xie    时间: 2023-10-24 05:06
本帖最后由 chaos_xie 于 2023-10-24 05:16 编辑
testguru 发表于 2023-10-24 03:41
我在前面早已埋下伏笔, 那按你说的,16位,24位,32位都是按有符号数表示的,动态范围就只有:
16位:= ...

不是这样,如果是整形,用uint32,那么最小音量是0,最大是2^32 - 1。如果你用有符号数,int32,为了使用所有的bit,你不会用0表示静音(或者说底噪)的,而会用int32_min。
浮点你不会用float32_min来表示静音,因为这个时候量化误差非常大,而会用0.0f,此时误差非常小(你前面的或者你引用的观点静音区的信息量丰富,需要更多的精度。)

和浮点比,对于整形而言,每个bit的分辨率是完全一样的。值域的范围因此受到限制。而浮点值域范围很大,但是需要仔细考虑高精度的值域对应哪个范围。


作者: testguru    时间: 2023-10-24 14:49
本帖最后由 testguru 于 2023-10-24 14:55 编辑
chaos_xie 发表于 2023-10-24 05:06
不是这样,如果是整形,用uint32,那么最小音量是0,最大是2^32 - 1。如果你用有符号数,int32,为了使用 ...
不是这样,如果是整形,用uint32,那么最小音量是0,最大是2^32 - 1。如果你用有符号数,int32,为了使用所有的bit,你不会用0表示静音(或者说底噪)的,而会用int32_min。

不明白你说的东西,比如int32_min是什么。Uint32和int32的动态范围是完全一样的,静音都是0,静音不是底噪,底噪都是1bit或者说最细幅度分辨率。更通用地说,动态范围=20*log[(最大值-最小值)/(最细幅度分辨率)],跟有符号或无符号无关。 我们用8bit整数来讲容易点,32bit数值太大。8bit的无符号数整数范围为0~255,有符号整数数范围为:-128~127。二者的静音皆为0,最细幅度分辨率皆为1,动态范围皆为48dB,不会有人说有符号的8bit整数的动态范围就变为42dB,少了6dB。

浮点你不会用float32_min来表示静音,因为这个时候量化误差非常大,而会用0.0f,此时误差非常小
32位浮点数的静音仍然是0,最细幅度分辨率为float32_min (1.17549435×10^-38),这里讨论的是32位浮点数提供的理论上的动态范围。Sound Devices计算的明显是错误的,少了6dB。
作者: chaos_xie    时间: 2023-10-25 02:33
testguru 发表于 2023-10-24 14:49
不明白你说的东西,比如int32_min是什么。Uint32和int32的动态范围是完全一样的,静音都是0,静音不是 ...

Uint32和int32的动态范围是完全一样的,静音都是0--------------------------
动态范围是一样的,但是静音的数值uint32是0,int32的话,需要偏移到最小值,否则平白损失了一半值域,那动态范围就少了。这种偏移是数值计算和存储的一些基本操作。(有时甚至要做几个bit内的压缩)。矛盾的核心是用整形表达音量是值域范围不够,而不是分辨率不够,所以需要尽力扩大值域范围。

32位浮点数的静音仍然是0,最细幅度分辨率为float32_min (1.17549435×10^-38),这里讨论的是32位浮点数提供的理论上的动态范围。Sound Devices计算的明显是错误的,少了6dB。
-------------------------
问题就在这里,因为你不能有比静音更低的声音,因此用0做静音的时候,损失了所有负数范围的值域。你的有效值域是0.f到float32的最大值,损失了float32的最小值到-0.f值域。所以sound devices的计算是正确的。如果你用float32的最小值作为静音,那么动态范围就扩大了。但是你面临静音附近分辨率极低的恶果。




回到为啥要用float32来记录音量?32bit整数的动态范围远远超过人的听力上限,高了很多数量级。因此我认为唯一的好处就是整个数值处理流水线上不再需要整形到浮点转化,方便了很多。



作者: testguru    时间: 2023-10-25 15:57
本帖最后由 testguru 于 2023-10-25 16:12 编辑
chaos_xie 发表于 2023-10-25 02:33
Uint32和int32的动态范围是完全一样的,静音都是0--------------------------
动态范围是一 ...

完全不明白你在说什么,例如:
int32的话,需要偏移到最小值,否则平白损失了一半值域,那动态范围就少了。
因为你不能有比静音更低的声音,因此用0做静音的时候,损失了所有负数范围的值域。你的有效值域是0.f到float32的最大值,损失了float32的最小值到-0.f值域。

貌似你误认为负数范围不可用,哎....


或许你只需要帮忙解释一下这样一个简单的问题:
(1)8位无符号整数:0~255 的动态范围是多少?
(2)8位有符号整数:-128~127 的动态范围是多少?

-128~0不可用吗?


作者: testguru    时间: 2023-10-25 17:04
本帖最后由 testguru 于 2023-10-25 17:10 编辑
chaos_xie 发表于 2023-10-24 05:06
不是这样,如果是整形,用uint32,那么最小音量是0,最大是2^32 - 1。如果你用有符号数,int32,为了使用 ...
如果是整形,用uint32,那么最小音量是0,最大是2^32 - 1。如果你用有符号数,int32,为了使用所有的bit,你不会用0表示静音(或者说底噪)的,而会用int32_min。

I am starting to understand what you were thinking.  正确的说法应该是:无符号整数uint32的静音为2147483648 (即:0x80000000) 而非0; 有符号整数int32的静音才是0。以此类推其它位数,比如无符号整数uint8的静音为128 (即:0x80) ,有符号整数int8的静音为0。对于有符号数,正负数范围都全部可用。编写过WAV文件的读写的码农就知道,标准的8位WAV文件是按无符号整数保存的,而标准的16位、24位和32位WAV文件是按有符号整数保存的。如果不明白有符号数和无符号数的静音点的不同,就无法还原真实的音频数据。

作者: chaos_xie    时间: 2023-10-26 08:49
testguru 发表于 2023-10-25 17:04
I am starting to understand what you were thinking.  正确的说法应该是:无符号整数uint32的静音为2 ...

对于声音,这种波动信号,计算dac输出的dynamic range,需要用RMS Voltage(Root Mean Square)。这个值是非负的。负值平方后并不单独贡献最终结果。所以动态和最小绝对值和最大绝对值相关。

作者: testguru    时间: 2023-10-27 01:33
chaos_xie 发表于 2023-10-26 08:49
对于声音,这种波动信号,计算dac输出的dynamic range,需要用RMS Voltage(Root Mean Square)。这个值 ...

算了,你别误导别人了.....

作者: testguru    时间: 2023-10-27 01:51
本帖最后由 testguru 于 2023-10-27 01:53 编辑

2.8THD、THD+N、底噪电平随输入RMS幅度(经校准)的变化
此测试通过Multi-Instrument的设备检测计划模块实现。测试信号为1kHz正弦波,其幅度经过300步从5μVrms步进到1.66Vrms (2.35Vp,即:0dBFS,见前面的校准结果)。这里采用的是音频分析仪RTX6001的信号发生器,它具有三个输出电压范围:0.1Vrms、1Vrms、10Vrms。当输出电平达到0dBFS后,软件会自动切换到更高的输出范围上。测试结果如下。

XLR话筒输入的底噪电平随输入RMS幅度(经校准)的变化(数字增益= 0dB)
再次重申,在上图中信号幅度的低端测得的底噪电平比前面测得的134.3dBFS略高是因为所用的信号发生器的输出底噪电平相对较高的缘故。从上图可见,在大约信号电平0.03Vrms(等于-34.9dBFS)处,底噪电平突然升高,由于此处仍然处于信号发生器输出的最小量程范围内,不涉及信号发生器的输出范围切换,因此底噪电平的陡升明显是从高增益ADC切换到低增益ADC造成的。

XLR话筒输入的THD随输入RMS幅度(经校准)的变化(数字增益 = 0dB)

上图表明,高增益ADC的THD起初是随着输入信号幅度的增加而降低,直到信号幅度达到大约0.01Vrms。然后THD开始升高,直到信号幅度达到大约0.03Vrms。此后,低增益ADC切入,其THD开始随信号幅度的增加而降低,直到信号幅度达到其大约0.7Vrms的转折点后,THD又重新开始上升。 从图可见,这两个ADC能达到的最低的THD为大约0.0006%。

XLR话筒输入的THD+N随输入RMS幅度(经校准)的变化(数字增益 = 0dB)

上图是更前面的两图的效果叠加,在信号幅度0.03Vrms处,更明显地显示了两个ADC之间的切换。


2.9输入输出线性图
此测试通过Multi-Instrument的设备检测计划模块实现。测试信号为1kHz正弦波,其幅度经过300步从指定的幅度起点步进到幅度终点。横轴代表由信号发生器输出的信号的RMS值,而纵轴代表测得的峰值频率处RMS值。两者都是经校准后的值。采用从频域获得的峰值频率的RMS值而非从时域获得的总的RMS值,有效地消除了噪声的影响,这在信号微弱时是非常关键的。下图显示的是从3.535 μVrms 到1.661 Vrms步进扫幅的测量结果。在对数-对数图上看,几乎是一条完美的直线。

XLR话筒输入的总体输入输出线性图(数字增益= 0dB

为了详细查看这种线性图是否在ADC切换时受影响,需要缩小步进扫幅范围,下图显示的是分300步从0.0141Vrms步进到0.0424Vrms的测量结果。图中可看到在0.03Vrms处有一个小的跳变。这正是前面测试所发现的ADC切换发生的地方。

ADC切换处附近的XLR话筒输入的输入输出线性图(数字增益 = 0dB

为了进一步探究上图中由于ADC的切换导致的小的“非线性”跳变,需要再次缩小扫幅范围,这次是分300步从0.028Vrms步进到0.032Vrms。 测试结果如下。由图可见,跳变的高度大约为0.0003V。

特写ADC切换处的XLR话筒输入的输入输出线性图(数字增益 = 0dB


作者: chaos_xie    时间: 2023-10-27 09:33
testguru 发表于 2023-10-27 01:33
算了,你别误导别人了.....

你似乎认为最小信号是负数中绝对值最大的那个?

作者: testguru    时间: 2023-10-28 01:33
chaos_xie 发表于 2023-10-27 09:33
你似乎认为最小信号是负数中绝对值最大的那个?

在第31楼,我写的动态范围=20*log[(最大值-最小值)/(最细幅度分辨率)]这个公式中,最小值的确是指数学上的最小值,例如:-128 < -127。数学上的最小值不是音频数据的静音点,实际上在负向上它离静音点最远。同理,在正向上,最大值离静音点最远。或者这样描述也许更明确,动态范围=20*log[(最大幅度跨度)/(最细幅度分辨率)]

作者: chaos_xie    时间: 2023-10-28 07:30
testguru 发表于 2023-10-28 01:33
在第31楼,我写的动态范围=20*log[(最大值-最小值)/(最细幅度分辨率)]这个公式中,最小值的确是指数学上 ...

问题就在这里,负数的最大值实际上是信号的接近最大值。
如果你看采样的振幅,大的正数和大的负数都是强信号。接近0的才是小信号。如果考虑正弦波,正值最大和负值最大其实是一回事,振幅总是正的,但是位移是有符号的。
按照动态范围的定义,是最大信号和最小信号(噪声)的比值。



作者: testguru    时间: 2023-10-29 01:29
chaos_xie 发表于 2023-10-28 07:30
问题就在这里,负数的最大值实际上是信号的接近最大值。
如果你看采样的振幅,大的正数和大的负数都是强 ...
如果考虑正弦波,正值最大和负值最大其实是一回事
你的长处明显不在这方面 ,很多时候,我都不知道你在说什么,不好意思,但我不得不说,一些普通常识是需要的。好吧,按你的说法,你计算下8位有符号数和无符号数的动态范围吧。

按照动态范围的定义,是最大信号和最小信号(噪声)的比值。
这样定义也是可以的,只是你是否能按这个定义正确计算出上面说的动态范围?


作者: chaos_xie    时间: 2023-10-31 04:32
testguru 发表于 2023-10-29 01:29
你的长处明显不在这方面 ,很多时候,我都不知道你在说什么,不好意思,但我不得不说,一些 ...

按照动态范围的定义,是最大信号和最小信号(噪声)的比值 - 这个是标准定义,我不知道你的定义是什么?


做了一下功课,关于audio bit depth的dynamic range,没有找到根据动态范围定义的详细推导。或者说我就没有找到准确定义。我是很怀疑20Log(2^n)是怎么推导出来的。Wiki上关于SQNR的推导是可以查到的。你有资料可以贴出来。

作者: testguru    时间: 2023-11-2 04:02
chaos_xie 发表于 2023-10-31 04:32
按照动态范围的定义,是最大信号和最小信号(噪声)的比值 - 这个是标准定义,我不知道你的定义是什么?[ ...

ADC芯片一般只说是N位的,而其具体的数据输出格式通常是可选择的:直接二进制、偏移二进制、二进制补码等,其动态范围不会因为输出数据的格式而改变,否则谁也不会选动态范围小的。

以8位为例,它将满程信号分为256级,最细分辨率为1级,不同格式的范围和零点(或静音点)如下:
直接二进制:0~255,零点(或静音点)为0
偏移二进制:0~255,最常见的是零点(或静音点)为128
二进制补码:-128~+127,零点(或静音点)为0

我前面的理想动态范围的计算公式:20*log(最大幅度跨度/最细幅度分辨率)与按20*log[最大信号/最小信号(i.e.噪声)]完全等价,我看不出有什么区别。算出来都是20*log(256/1)=48 (dB)。

如果用信号来算,最大信号和最小信号必须是相同波形、相同的幅度参数(Vpp、Vp或Vrms)相比。比如信号是正弦波,那么8位整数,无论什么格式,能装入的最大正弦波的峰峰值为MaxVpp=256份 (我这里用的是份数,不是数值255,不必太纠结这个),现在计算的是理想情况,因此最小信号(噪声)的峰峰值为1份: MinVpp=1份。如果用峰值Vp,这个比值也不变;用有效值Vrms也是一样的,只是有效值若概念不清就容易搞错,因为可能会纠结于这个噪声的具体位置,但无论在哪里,计算动态范围时,有效值是必须减去直流成分后才计算的。

作者: testguru    时间: 2023-11-5 00:14
2.10ADC切换算法的实验探究
2.10.1 有/无低增益ADC介入的冲激响应测试
下面两图是测得的两个冲激响应。第一幅图的冲激幅度为0.03Vp(0.021Vrms),因此它应只由高增益ADC单独产生。第二幅图的冲激幅度为0.18Vp (0.127Vrms),因此它应足以触发高增益ADC向低增益ADC切换。



只涉及高增益ADC的XLR话筒输入的冲激响应(数字增益 = 0dB

涉及低增益ADCXLR话筒输入的冲激响应(数字增益 = 0dB

由于冲激信号的时长极短,响应信号的采样点之间的差值极大,足可掩盖两个ADC之间的任何增益和零偏上的差异,因此不能指望在波形图上看到明显的ADC切换痕迹。冲激响应的频谱则为频率响应,从上面两图可看出少许的、由这种方法测得的两ADC的频响差异。

将上面两波形图的纵向放大(如下面两图所示),以观察在冲激前后可能发生的底噪电平的变化。正如所估计的那样,在第一幅图中底噪电平保持不变。而在第二幅图中,底噪电平的变化清晰地反映了两个ADC之间的切换:从冲激前的高增益ADC到冲激之中及以后的低增益ADC,以及60ms之后,由于信号微弱而再次回到高增益ADC。

只涉及高增益ADC的XLR话筒输入的冲激响应(数字增益 = 0dB)

涉及低增益ADC的XLR话筒输入的冲激响应(数字增益 = 0dB)


2.10.2 跨越ADC切换点的扫幅测试
为了探查在ADC切换过程中波形是否发生跳变,可采用连续的线性幅度扫描,用时0.5秒,从0.03Vp增加到0.05Vp,然后再用时0.5秒,从0.05Vp回到0.03Vp,周而复始。结果如下图所示。红线代表波形的幅度包络,它是原始波形经过希尔伯特变换进行幅度解调后而得。较粗的红线表示原始波形中噪声电平较高。ADC切换的上限和下限阈值分别测得为44.2mV和31.8mV。在300Hz〜20kHz的载波频率范围内,这两个阈值保持不变。对于低于300Hz的载波频率,由于未知原因,测试发现,上限阈值增加,而下限阈值降低。

触发ADC切换的线性扫幅 (数字增益 =0dB

在放大上图以检查ADC切换点处的波形时,没有发现任何明显的跳变。波形看起来相当平滑,就好像没有发生ADC切换一样。下图是从高增益ADC到低增益ADC的过渡区的特写。正弦波的顶部(或底部)是检查噪声水平的理想位置,因为它相对平坦。下图中,正弦波的第三个峰比前两个峰明显具有更高的噪声水平,这进一步确认了由红色幅度包络线指示的ADC切换位置。从下面的红色幅度包络线还可以观察到噪声水平是逐渐增加而不是瞬间增加的,这意味着在过渡区域存在一种用于拼接的DSP算法,用于淡入来自低增益ADC的新数据流并淡出来自高增益ADC的旧数据流,实现无缝拼接。过渡区长度似乎约为0.5毫秒。

ADC切换处的过渡区(数字增益= 0dB





作者: testguru    时间: 2023-11-7 18:22
三、线路/HiZ输入
与XLR话筒输入相同,当数字增益为0dB时,32位浮点数1(0dBFS)仍然对应于线路输入(平衡的)和HiZ(单端的)输入的最高电平。经校准后,最高电平分别为23.0Vp(26.4dBu)和4.30Vp(11.9dBu) 。同样地,这些值略高于ZOOM标明的24dBu和 11.5dBu。在动态范围方面,线路输入为129.1dB或131.2dBA,而HiZ输入为123.1dB或125.2dBA。这些指标都比XLR话筒输入略低。在带宽方面则与XLR话筒输入没什么区别。

四、输出
ZOOM UAC-232似乎无法在32位浮点模式下输出信号。但幸运的是,在 Multi-Instrument 中,可以使用 Sound Card ASIO 作为32位浮点数据输入,同时可使用 Sound Card MME 进行24位整数数据输出。

五、结论
在32位浮点模式下,当数字增益设置为0 dB 时,采样值 1 始终对应于最高电平,超过该值后,就会发生削顶失真。在 Multi-Instrument 中,采样值 1 被定义为 0 dBFS。采样值随数字增益设置而变化,因此当数字增益高于 0 dB时,即使信号幅度超过 0 dBFS也不一定会出现削顶失真 (见下图)。

32位浮点ADC的优点

尽管高增益ADC和低增益 ADC之间不可避免地存在着非常微小的错位,但它们之间的切换是非常平滑的,在波形中未发现任何跳变的痕迹,这要归功于其在过渡区域所采用的DSP拼接算法。而且此过渡在非常短的时间内完成,几乎不会引起任何可听出的痕迹,对声音测量引入的误差完全可以忽略不计。ZOOMUAC-232 的XLR 话筒输入的动态范围约为134.3dB 或 136.4dBA,这比那些采用单个 ADC的方案高出了至少10dB以上。配上适当的话筒,可以在不牺牲微弱信号保真度且不引发高强信号削顶失真的情况下捕捉到整个人类听觉范围内的声音,而且省去了手动进行模拟增益调节的麻烦。这在声音录制和测量行业中是一项极具吸引力的技术。




作者: 交响无际    时间: 2023-11-7 18:35
testguru 发表于 2023-11-7 18:22
三、线路/HiZ输入与XLR话筒输入相同,当数字增益为0dB时,32位浮点数1(0dBFS)仍然对应于线路输入(平衡的 ...

请教一下,对Neumann MT48有点感兴趣,好像好评还挺多的,从技术参数角度,大概可以如何看呢?多谢多谢!

作者: chaos_xie    时间: 2023-11-10 13:11
testguru 发表于 2023-11-2 04:02
ADC芯片一般只说是N位的,而其具体的数据输出格式通常是可选择的:直接二进制、偏移二进制、二进制补码等 ...

20*log(最大幅度跨度/最细幅度分辨率)与按20*log[最大信号/最小信号(i.e.噪声)]
-------------------
我没有查到类似的公式推导的出处。我完全不觉得他们等价。相反,SQNR的推导远比“20*log(最大幅度跨度/最细幅度分辨率)”复杂很多,参考wiki https://en.wikipedia.org/wiki/Signal-to-quantization-noise_ratio。需要用到概率分布函数和期望值推导。
我只能说采样值平方以后相加再开方(Vmrs的计算公式),值域范围确实是和2^n相关,而不是2^n-1。因此最终公式里应该有log(2^n)。

作者: chaos_xie    时间: 2023-11-10 22:32
chaos_xie 发表于 2023-11-10 13:11
20*log(最大幅度跨度/最细幅度分辨率)与按20*log[最大信号/最小信号(i.e.噪声)]
--------- ...

之前不是很清楚噪声整形提高信噪比的原理。看了SQNR的大致计算过程,终于明白了。
数字信号处理这块水太深了。

作者: testguru    时间: 2023-11-10 23:59
本帖最后由 testguru 于 2023-11-11 00:09 编辑
交响无际 发表于 2023-11-7 18:35
请教一下,对Neumann MT48有点感兴趣,好像好评还挺多的,从技术参数角度,大概可以如何看呢?多谢多谢! ...

我没测过MT48,所以只能从其指标上看,XLR话筒输入的动态范围为136dBA,与这里谈到的UAC-232几乎完全一样。看了下MT48的电路框图,采用的也是双ADC架构,否则难以达到这么大的动态范围。其输出格式似乎只有24位整数,不支持32位整数和32位浮点,这是个弱点,它牺牲了对弱小信号的解析度。我注意到他们只宣传超大动态范围,而几乎没有提及输出位数和格式。


UAC-232为例,按前面实测的,其XLR话筒输入口的最大输入电压为2.35Vp,而高增益ADC的切入和退出的输入电压大约为44.2mV31.8mV,即20log(0.0442/2.35)= -34.5dBFS20log(0.0318/2.35)= -37.4dBFS。在双ADC架构中,以每个ADC24位计算,单个ADC理论上的动态范围为144.5dB,而双ADC合并后的动态范围为144.5+37.4=181.9 dB。这就远超24位整数所能提供的动态范围,但仍可容纳于32位整数所提供的192.7dB的动态范围之内。如果这种双ADC架构将来继续发展为多ADC架构,或者ADC切换的阈值再降低些,那么32位整数也可能变得不够用。如果要将双ADC合并后的结果硬塞进24位整数中,则必须将高增益ADC输出的24位整数数据的最低端的大约37.4dB的信息切掉,这实际上强行降低了对弱信号的分辨率,使其与用于强信号的低增益ADC的分辨率一致。


如果有人说,既然动态范围为134.3dB (或136.4dBA),那么最低端的大约181.9-134.3=47.6dB的信息都在底噪电平之下,切掉也没关系。其实不然,前面第17楼,我已经提及了这个问题:
也许有人会说,这些动态范围仍然低于24位整数的144.5dB的动态范围,更低于32位整数的192.7dB,为什么不将合并后的数据处理为24位整数或32位整数呢?

既然不是采用单个ADC那种直接整数输出方式,而是要做合并处理,那么直接处理成32位浮点更便于后续的DSP处理。窃以为更重要的是,前面测得的动态范围是以底噪电平为基础的,也就是说当处理为整数格式时,底噪电平被认为是1Bit,以便硬塞进整数格式所提供的狭小的动态范围内,而浮点数数据不同,底噪部分仍然保留有丰富的细节,为后续各种DSP处理提供丰富的空间,比如通过DSP算法,轻松地检测出淹没于底噪中的微弱正弦波信号,这在缺乏细节的整数格式下是困难的。

举个例子,1KHZ的正弦波与等幅(有效值RMS相等)的白噪声混合后,人耳可清楚地听出1KHZ正弦波。更极端点,1KHZ的正弦波与比它高30dB的白噪声混合后,人耳也能识别出1KHZ正弦波。就是说淹没于底噪电平下的信号是可提取的,有一定价值的。



作者: testguru    时间: 2023-11-11 00:03
chaos_xie 发表于 2023-11-10 13:11
20*log(最大幅度跨度/最细幅度分辨率)与按20*log[最大信号/最小信号(i.e.噪声)]
--------- ...

计算动态范围用不到Signal-to-quantization-noise ratio,假定噪声在1BIT以下即可。





欢迎光临 耳机网-耳机大家坛 (http://www.erji.net/) Powered by Discuz! X3.2