转:HiRes高采样率的必要性

文章原文地址 :http://tieba.baidu.com/p/4176851934?pn=1&red_tag=w1529407323
浏览贴吧发现的一篇不错的文章,如有侵权请联系删除。

HiRes高采样率的必要性

发这个贴子首先的原因是想纠正一个很多人对数字音乐都有的误解,那就是HiRes高采样率(比如96khz, 192khz等)肯定比主流的采样率(44.1khz和48khz)好,高采样率也肯定是必要的,因为很多人说他们自己明明能听出区别。实际有没有区别或者耳朵的感受我最后再说,我先来说说理论上是怎样的,因为很多人认为有区别的原因是和显示器分辨率类似的,1080p就是不如2K,4K在一定尺寸的屏幕上也肯定比2K清晰,同理192khz在好系统上肯定就比48khz要好,毋庸置疑。但是有这种想法的人很多都有个错误的认识,那就是数字音乐的波形就是锯齿,就是阶梯型,而不是声波应有的顺滑和连续,所以提高采样率也就能减小这种效果,数字音乐你要有无穷大采样率才能说是完美的,否则就是锯齿。

开始讨论之前先让我贴个免责声明,懒得看可以跳过。
1、我说的肯定不可能绝对完全正确,本来我并不想发这个贴的,因为第一这种科普贴怕是没什么人会看,看得懂的自然懂也不需要我科普,看不懂的估计也没几个会真想搞懂这些“没用”的东西,肯定都跑去开箱撕逼喷水跟风去了。
第二知道的越多就越是觉得不知道的更多,我不是数学专业的,EE电子工程也不是我第一专业,我更不是专业研究这些的,所以专门来发个贴还打着科普的旗号就显得有些班门弄斧,但因为实在看不下去有些更加不懂的到处科普伪科学,所以不要脸了也要来反驳一下,如果专业大神发现我哪里说错了,请用证据轻拍就好。

2、我只讨论PCM,DSD是有着本质区别的东西,不可简单比较,如果你想讨论一下当然也可以,但请不要无脑用DSD的东西来反驳我说的PCM的东西。

3、我只讨论回放,不讨论录音后期等情况,那些情况下事情略有不同,而且大部分人也不必关心那些,所以我就不讨论了。

4、如果你还没搞清PCM,DSD,采样率,位深,码率,WAV,FLAC,MP3,无损有损这些概念的意思和关系,你应该去科普一下这些最基本的东西,不是说这些对你烧器材,欣赏音乐有什么帮助,只是说知道这些基本的能然你烧得更明白更理智一点。

首先我还是来简单说下PCM采样的原理,不然你不知道的话后面没法讨论,已经知道的可以跳过。

大家知道声波是连续的,在平面上画个振幅-时间图表示声波的话上面有无数个点,数字音乐肯定不可能把每个点都记录下来,所以人们就想了个办法,每隔一小段时间(约0.0227ms以44.1khz采样率为例),记录当时的振幅就好了,这样得到一个discrete具体函数,也就可以保存在内存硬盘上了。

下图为例,红色的是连续的波形图,蓝色的点是采样,数字音乐记录的就是那些蓝色点的纵坐标,顺便说下这里的纵坐标只划分了16级,也就是4-bit(4位),所以你可以看到有些点根本不在红色的波形上,但这就是位深的问题了,这个如果要讨论也放到后面吧,但是你要知道现在主流位深都有16-bit,也就是有65536个等级,精度比这个4-bit要高得多,至于HiRes宣传的24-bit甚至32-bit有没有提升和实际作用以后再说。
转:HiRes高采样率的必要性

既然数字音乐记录的只是一个一个单独的点,那回放的时候,DAC(数模转换器,俗称解码)如何把这些点转换成连续的声波来重现记录的声音呢?这就是产生问题的地方,很多人觉得自然DAC只能把这些点用直线连起来,不过最让人产生误解的罪恶根源要数下面这种阶梯图,这样乍一看卧槽都是锯齿,然后就开始各种YY,什么我终于知道为什么CD不如唱片好了,因为唱片是“模拟信号”,是“连续”的,没有阶梯,我也知道SACD等高采样率的东西为什么好了,因为采样率越大,自然锯齿就没有那么严重,就越能更接近原始的声波。
转:HiRes高采样率的必要性

但事实是不是真的数字音乐就只能产生锯齿波形或者有瑕疵的波形呢?答案是否定的,如果真是这样你下载的数字音乐可以说简直不能听,因为全是明显的噪音,还不是那种很微弱的底噪。
本来我想先继续铺垫理论的,不过好像理论大家已经看不下去了,所以为了让大家先有个直观的感性认识,理论放到后面,我先做个演示给大家看一下数字音乐是如何被DAC还原的。(下面的演示都是我用JavaScript HTML5 Canvas做的,如果感兴趣可以向我要源代码)

为了演示方便,先拿个简单的正弦波为例(当然声波不可能都是这么完美的正弦波,为什么可以拿正弦波演示以及实际声波是怎样的这个问题有点复杂,后面再说)
转:HiRes高采样率的必要性

以一定的采样率采样以后得到这么多个点。
转:HiRes高采样率的必要性

你可能觉得DAC还原的时候就是连点成线,于是还原出来的声波是这个鬼样子的。
转:HiRes高采样率的必要性

或者受到锯齿图的影响,你觉得是这个样子的,反正都是惨不忍睹。
转:HiRes高采样率的必要性

但实际情况是,一个正常的DAC根本不会还原成上面那个样子,而会是下面这种你几乎看不出和原来的波形有什么区别的样子。
转:HiRes高采样率的必要性

我知道你肯定会说,卧槽这不是作弊,你都知道原来是什么样子的,依葫芦画瓢谁不会。但我想告诉你哪怕我不知道原来是什么样子的,只要我知道原来的波形是频带限制的(band limited),并且你用的采样率是大于最高频率两倍的,我就能还原任何波形,不信你可以把任何采样结果发给我,我给你还原。至于怎么还原,为什么能还原,何为频带限制,为什么又要两倍频率的采样率,待我慢慢道来。

不过首先如果你有Adobe Audition之类的音频处理软件或者任何能显示波形的软件,你仔细看一下波形就会发现,并不是简单的连点成线,而是有一定规律的曲线。

比如下面这个15khz正弦波,上面是波形图,下面是频谱图,通过频谱图可以看到是纯净的15khz正弦波,再看上面的波形图,你觉得是简单的连点成线么?
转:HiRes高采样率的必要性

接下来会开始讲各种理论和论证来支持我前面说的东西,中间会涉及到现实生活中实际与理论的区别,因为理论不能完全代表实践,实践也不能直接写成理论。我说理论没区别不代表实际也没区别,你实际听出区别了也不能证明理论有区别,刚才也有人提到DAC是电路不是软件模拟,区别肯定是有的,我只是先简化了而已,这些问题要认真讨论你可以把你一生,你儿子孙子的一生都奉献进去都可能依然讨论不清楚,我后面会力求简单直白地讨论一下,但是因为他们会掺杂在各种大部分人看了头大的理论的讨论中,所以先讨论一下更简化的版本。

质疑:HiRes到底有没有意义?
观点:HiRes是有意义的,但主要的意义在于录音和后期处理等环节,录音上来说,麦克风录制的信号是需要过滤掉超声波和次声波内容的,否则这些在之后的处理以及回放会造成问题,后期上来说,一些处理可能会降低精度,比如你用16bit/44.1khz录音然后处理,出来的有效精度可能就只能等效13bit/24khz了,如果用HiRes,比如24bit/96khz,24bit/192khz甚至是32bit/384khz,处理完了精度依然会很高,再转成CD音质16bit/44.1khz也不会有什么损失。
但是只论回放的话,也就是大多数人关心的,我总觉得意义很寥寥,24bit/192khz差不多是CD音质16bit/44.1khz的5倍大小,一首歌动辄几百M,甚至于有人还在到处传播那个64bit/192khz还是384khz的加州旅馆,一首歌超过1G,现在硬盘存储确实廉价,但是廉价不代表就可以随意浪费,有些人为了追求这种脑放级别的提升,不惜每首歌都要HiRes版本才能听,然后去买一堆内存卡(你们知道谁是这些人的代表的,不过我并不是有什么针对他的意思,希望不要开始撕逼,我只是想问大家自己问过自己没有,这样是不是真的更好,或者这样值不值,当然你若是不在乎自然开心就好,哪怕你吃的药只是理论上毫无作用的东西,只要吃了能安慰自己,或者能鼓励自己战胜病魔,这种精神上的作用也就够了)。

而且在你追求HiRes的同时,请至少认清什么是真的HiRes,什么是从CD音质强行拉高的假HiRes,别的不说,加州那首64bit位深我就不能再多地质疑真实性,现在哪有这么高位深的录音技术,同样哪有这么高位深的回放技术,64bit拥有384db的动态范围,也就是2^64倍的差距,你们知道2^64有多大么?

说DAC之前先说说理想状态下采样应该如何还原成连续的波形。

采样本质上是离散函数,也就是说两个采样之间的值是未定义的,要想得到一个连续函数就得有一个插值算法来计算采样中间应该是什么值,插值算法一般的通式如下:
转:HiRes高采样率的必要性

y(t)是连续函数,也就是我们想得到的东西,t是时间。y[n]是离散的采样,n是整数,y[n]代表第n个采样的值。,后面的Ts是采样周期,也就是1/采样率。

那么p是个什么鬼?如果你知道一点插值的原理就应该可以想到是加权函数,下面列举了四种插值加权方式。
转:HiRes高采样率的必要性

Triangular Pulse一次插值(或者三角脉冲?)的结果就是连点成线,大概的逻辑就是一个点的值只由离它最近的两个采样的值决定,这里以采样0和采样1为例,如果这个点正好是采样0或者采样1,那么它的值就是采样0或者采样1,否则的话就看它距采样0和采样1的距离之比,如果是1:1,也就是50%:50%,那么它的值就是50%采样0+50%采样1,如果距离之比是30%:70%那么它的值就是30%采样0+70%采样1,如果你知道贝塞尔曲线的话就很好理解了。
转:HiRes高采样率的必要性

Square Pulse零次插值的结果就是锯齿,也就是一个采样前后半个采样周期的值都和它一样。
转:HiRes高采样率的必要性

但是这两个都不能很好还原正弦波,即便是下面这个虽然已经开始接近了但在采样不够多的时候依然不够好。
转:HiRes高采样率的必要性

不过我们发明了sinc这个东西,它很简单,其实就是sin(x)/x,用它不但能相当好的还原波形而且数学上已经证明了还原后的波形和原来的是一模一样的东西,是完美还原而不仅仅是近似,也就是说不存在任何信息的损失,至于为什么它能还原正弦波以及怎么得到这个东西的或者相关证明就请自行搜索了,比如可以看一下这个题为Introduction to Shannon Sampling and Interpolation Theory(香农采样法和插值论导论)的文章

http://marksmannet.com/RobertMarks/REPRINTS/1999_IntroductionToShannonSamplingAndInterpolationTheory.pdf

现在来说实际的DAC,有一些比我更了解硬件方面的告诉我DAC只负责把数字信号也就是二进制的采样数据转换成一个一个的电平值,高采样率对DAC的作用是很明显的,这个没有什么问题,但是第一我们常说的DAC指的一般应该是包含DAC的音频芯片,而不仅仅是真的只说DAC一个元件,在DAC之后还有重构过滤器(比如低通什么的)去掉锯齿产生的高频来得到一个比较平滑的波形,但这不是重点,重点是DAC之前应该有数字插值处理,来为之后的DAC提升采样率,如下图(来源:http://www.analog.com/media/en/training-seminars/tutorials/MT-017.pdf)。
转:HiRes高采样率的必要性

就算是某人专门提到的sigma-delta型DAC也会加上插值过滤器。
转:HiRes高采样率的必要性

第二我讨论的是音频文件高采样率的必要性而不是DAC需不需要高采样率,之前我说明了只需两倍最高频率的采样率即可保留所有声波信息,也就是说如果需要,DAC之前的数字插值器完全可以把44.1khz采样率的音频转换成任意更高采样率再传输给DAC做数模转换,并且不会有任何损失,实际上真实的播放器如CD播放器应该确实有这样的过程(这个我虽然无法验证,但是我上面给出的文档和我之前楼层的那篇文章也都提到了这回事,而且我记得MIT EECS6003那门课上也说到过这一点),回放时首先会把44.1khz提升4x,8x甚至更多,然后再送给DAC。

再插播一个同样来自Monty的视频演示

https://xiph.org/video/vid2.shtml

再一次说明了44.1khz采样率下哪怕是20khz的信号,每个周期不到三个采样的情况下,依然能非常好地还原。

更多内容请看:https://xiph.org/~xiphmont/demo/neil-young.html

最后配图

转:HiRes高采样率的必要性