西西河

主题:哪位搞音频或者语音的,请教一个基本概念 -- 黑猫夜行

共:💬46 🌺36
全看分页树展 · 主题 跟帖
家园 答黑猫的问题,说说我的看法

wav文件,或者pcm文件里面每个采样点的数据究竟是什么啊,为了把问题简化,我们假设,44.1k、16bit的线性pcm。我狗了一通,没找到详细解释,人人都说那是个采样后“量化”的数据,依靠什么量化的,怎样量化的呢?
这是采样和编码问题.

按这个假设的数据,就是以44.1K的采样频率对源信号进行采样,然后把每一个采样点的采样结果,用一组16bit长的数字码来表示它的大小(幅度),这个过程称为数字编码,也可称作量化.采样频率的大小决定了采样过程中对高次谐波成分丢失的程度(如按44.1K采样就会丢掉源信号中22.05K以上的谐波成分),而编码的码元长度则决定了编码的精度,也就是码元越长,精度越高.这两者共同决定了采样编码过程中产生的失真的大小.

幅度采样的过程,简单地说,就是用一系列等幅度等间隔的脉冲,与源信号相乘,得到一系列幅度高低不同(按源信号变化规律变化)的脉冲.其波形就如前面njdy所说的"直方图"的样子(找不到相应的图片,只好干说了).这还不算真正的"数字信号",还要进行编码,也就是量化.量化的过程就是把这些高低不同的脉冲分别用一组组的二进制码元替代,每一组(16位)表示一个脉冲的大小,也就是把脉冲的幅度用一组16位的二进制数字表示了出来,这样得到的信号才是数字编码信号,在调制之前,称为数字基带信号.

所以,所谓量化就是把采样点的信号幅度,用二进制数字表达出来.量化的依据,当然就是源信号的被采样点的幅度了.

我把某一个wav的data chunk里所有采样点都减少或者增加一个常量后生成新的wav,要么裁减得太狠了干脆不出声要么就跟原来的听上去没什么区别。所以我想wav在经过声卡D/A转换再到speaker时一定不是一个点一个点独立的。

那么究竟是怎么回事呢?

把每一个采样点的编码数值,都增加或减少一个常数,在线性编码的前提下,这个过程的物理含义就是:在源信号上叠加了一个直流信号.这个直流信号的大小,取决于你加上的那个常数的大小.在后面经过D/A还原成模拟信号后,再进行放大,均衡...等等处理的过程中,如果信号的变化幅度,还在电路的动态允许范围以内,也就是不会对它产生新的失真的话,被还原后的信号将"跟原来的听上去没什么区别",也就是,与你不加减那个常数完全一样,因为直流是听不出来的.

但是你若"裁减得太狠了",超出了后续电路的动态允许范围,那么还原出来的信号幅度将被电路切割("削顶"),也就是产生失真,听起来就大不一样了,什么都听不到了也是有可能的.

D/A转换以后的信号是还原的连续波模拟信号,当然"不是一个点一个点独立的"。

说得不对的地方欢迎砸砖.

关键词(Tags): #采样 编码
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河