原文地址:
http://blog.csdn.net/lg1259156776/article/details/51854717
1. 声卡的工作原理
声卡的工作原理其实很简单 ,我们知道,麦克风和喇叭所用的都是模拟信号,而电脑所能处理的都是数字信号,两者不能混用,声卡的作用就是实现两者的转换。从结构上分,声卡可分为模数转换电路和数模转换电路两部分,模数转换电路负责将麦克风等声音输入设备采到的模拟声音信号转换为电脑能处理的数字信号,而数模转换电路负责将电脑使用的数字声音信号转换为喇叭等设备能使用的模拟信号,就这么简单 。
上图就是一块典型的声卡 , Mic 插口 用于连接麦克风 , 通过它可以录制外界的声音
2. 数字音频基础知识
麦克风录音的过程其实就是将模拟信号转化成数字信号的过程 , 其中涉及的一些概念如下 :
1. 采样率 (Sampling Rate)
采样率指声卡在一秒之中对声音 ( 波形 ) 作记录的次数 , 根据研究声音播出时的质量常常只能达到采样率的一半 , 因此必须采取双倍的采样率才能将声音标准重现 . 也就是只要采样率大于原始信号频率的两倍以上即可减低错误 , 达到和原始声音差不多的质量 . 人的听力大概是 20KHZ, 所以高品质的采样率应为其两倍以上 .
当声音来源为音乐时 , 因为它所横跨的频率变化极为宽广 , 通常以 44.1KHZ 的频率为 CD 音乐采样率的标准 . 但是若以语言为主由于人说话的语音大概是 10KHZ, 因此加倍采样 , 只取 22KHZ 即可 , 采样率越高所记录下来的音质就越清晰 , 当然 , 越高的采样所记录下的文件就越大 .
2. 采样位
解析度决定了采样的音波是否能保持原来的形状 , 越接近原型则需解析度越高 , 若以 8 位来采样的话其能表达的组合种类是 2 的 8 次方 , 即 256, 表示用 8 位的采样大小能分辨出 256 个层次的声音 , 若用 16 位来采样 , 则能分辨的差异将高达 2 的 16 次方 , 为 65536, 其精度自然大为提高 .16 位 ,8 位采样的差别在于动态范围的宽窄 , 动态范围宽广 , 音量起伏的大小变化就能够更精细的被记录下来 , 如此一来不论是细微的声音或是强烈的动感震撼 , 都可以表现的淋漓尽致 , 而 CD 音质的采样规格正式 16 位采样的规格 .
3. 量化误差 (Quantization error)
在采样的过程中 , 不断连续变化的模拟信号要用数字化的数值来表示 , 这样的过程就会发生所谓的量化误差 (Quantization error). 所谓的量化误差指的是实际的信号的振幅 (smplitude) 和数字化之后所的数字之间的差异 . 如果用将数字信号还原成模拟信号的角度看 , 量化误差就是失真 (Distortion). 我们可以用增加采样大小的方式来降低量化误差 , 也就是更多的位 (bits) 来表示一个采样信号 , 这样可以提高精度 .
4. 量化 (Quantization), 线性量化法 (Linear quantization) 和非线性量化法 (Nonlinear quantization)
所谓的量化 (Quantization) 就是将模拟信号所代表的连续范围分成一段一段的区间 (Interval), 每一段区间我们定义一个数字化的值 . 区间的数目是跟采样大小有关 , 举例来说 , 有一种最简单的量化法称为 ” 线性量化法 ”(Linear quantization), 这种量化法采用等距离的间隔空间 , 架设一个讯号它的最大值是 5.0, 采样大小为 3 位 , 则每个量化区间就时 5.0/2^3, 也就是 0.625 单位 . 另外一种相反的量化方法就是 ” 非线性量化法 ”(Nonlinear quantization), 这种量化法采用不同的间隔空间 . 以 ” 对数量化法 ”(Logarithm quantization) 为例 . 低振幅范围的量化区间就比高振幅的范围的区间较为接近 , 用这种量化的法产生的结果就是在低振幅时我们会得到佳好的效果 . 通常如果使用同样的采样大小 , 非线性量化法会比线性量化法得到更好的声音品质 . 但是如果是要对声音做滤波 (filtered) 或一些运算的时候 , 使用线性量化法会比较容易处理 .
5. 声音强度
波形振幅的平方.两个声音强度上的差常以分贝 (db) 为单位来度量 ,计算公式如下:
20*log(A1/A2) 分贝 , A1,A2 为两个声音的振幅 .
a. 如果采样大小为 8 位 ,则采样的动态范围为 20*log(256) 分贝 =48db;
b. 如果样本大小为 16 位 ,则采样动态范围为 20*log(65536) 大约是 96 分贝 ,接近了人听觉极限和痛苦极限,是再线音乐的理想范围, windows 同时支持8 位和 16 位的采样大小 .