设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> Visual C++ >> Windows环境下的麦克风录音系统
精品推荐
Visual C++点击TOP10
·用WINSOCK实现聊天室的VC++程序设计
·利用mfc编写activex控件
·用vc实现生产者消费者问题
·DirectX8.0
·C/C++ 大量经典编程书籍下载
·VC快捷键大全
·CreateFileMapping的MSDN翻译和使用心得
·Windows环境下的麦克风录音系统
·挂钩Windows API
·如何开发OPC Server
编程开发点击TOP10
·数字小键盘指法练习
·用C语言编通讯录程序(初学者级别的)
·ASP.NET 程序中常用的三十三种代码
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·java笔试题
·Modem 常用AT指令集
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

Windows环境下的麦克风录音系统

作者: 来源:网络文章 时间:2005-12-13 17:18:58

Windows环境下的麦克风录音系统(2)  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位的采样大小.

 6. 音频编码方法
      目前已经发展了许多音频编码的方法用以减少存储量或是传输的时间,以下所列为两种较普遍的编码方法:
   a.PCM(Pulse code modulation);
脉冲编码调制,即对波形按照固定周期频率采样。为了保证采样后数据质量,采样频率必须是样本声音最高频率的两倍,这就是Nyquist频率.
   b.ADPCM(Adaptive delta pulse modulation).

3.RIFF文件结构和WAVE文件格式

Windows支持两种RIFF(Resource Interchange File Format,"资源交互文件格式")格式的音频文件:MIDI的RMID文件和波形音频文件格式WAVE文件,其中在计算机领域最常用的数字化声音文件格式是后者,它是微软专门为Windows系统定义的波形文件格式(Waveform Audio),由于其扩展名为"*.wav",因而该类文件也被称为WAVE文件。为了突出重点,有的放矢,本文涉及到的声音文件所指的就是WAVE文件。常见的WAVE语音文件主要有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值)。这里的采样率是指声音信号在进行"模→数"转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH);而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位和低八位分别代表左右两个声道。WAVE文件数据块包含以脉冲编码调制(PCM)格式表示的样本。在进行声音编程处理以前,首先让我们来了解一下RIFF文件和WAVE文件格式。

RIFF文件结构可以看作是树状结构,其基本构成是称为"块"(Chunk)的单元,每个块有"标志符"、"数据大小"及"数据"所组成,块的结构如图2所示:

                                                    图2

从上图可以看出,其中"标志符"为4个字符所组成的代码,如"RIFF","LIST"等,指定块的标志ID;数据大小用来指定块的数据域大小,它的尺寸也为4个字符;数据用来描述具体的声音信号,它可以由若干个子块构成,一般情况下块与块是平行的,不能相互嵌套,但是有两种类型的块可以嵌套子块,他们是"RIFF"或"LIST"标志的块,其中RIFF块的级别最高,它可以包括LIST块。另外,RIFF块和LIST块与其他块不同,RIFF块的数据总是以一个指定文件中数据存储格式的四个字符码(称为格式类型)开始,如WAVE文件有一个"WAVE"的格式类型。LIST块的数据总是以一个指定列表内容的4个字符码(称为列表类型)开始,例如扩展名为".AVI"的视频文件就有一个"strl"的列表类型。RIFF和LIST的块结构如下:

共17页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [178 :>

Windows环境下的麦克风录音系统 相关文章:
Windows环境下的麦克风录音系统 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com