英文名称:Audio
音频信号定义
音频信号是(Audio)带有语音、音乐和音效的有规律的声波的频率、幅度变化信息载体。
根据声波的特征,可把音频信息分类为规则音频和不规则声音。其中规则音频又可以分为语音、音乐和音效。规则音频是一种连续变化的模拟信号,可用一条连续的曲线来表示,称为声波。声音的三个要素是音调、音强和音色。声波或正弦波有三个重要参数:频率 ω0、幅度A n 和相位ψn ,这也就决定了音频信号的特征。
音频信号特征
一、基频与音调:
频率是指信号每秒钟变化的次数。人对声音频率的感觉表现为音调的高低,在音乐中称为音高。音调正是由频率ω所决定的。音乐中音阶的划分是在频率的对数坐标(20×log)上取等分而得的:
音阶 C D E F G A B
简谱符号 1 2 3 4 5 6 7
频率(Hz) 261 293 330 349 392 440 494
频率(对数) 48.3 49.3 50.3 50.8 51.8 52.8 53.8
二、谐波与音色:
n×ωO 称为ωO 的高次谐波分量,也称为泛音。音色是由混入基音的泛音所决定的,高次谐波越丰富,音色就越有明亮感和穿透力。不同的谐波具有不同的幅值An 和相位偏移ψn ,由此产生各种音色效果。
三、幅度与音强:
人耳对于声音细节的分辨只有在强度适中时才最灵敏。人的听觉响应与强度成对数关系。一般的人只能察觉出3 分贝的音强变化,再细分则没有太多意义。我们常用音量来描述音强,以分贝(dB=20log)为单位。在处理音频信号时,绝对强度可以放大,但其相对强度更有意义,一般用动态范围定义: 动态范围=20×log(信号的最大强度 / 信号的最小强度) (dB)
四、音宽与频带:
频带宽度或称为带宽,它是描述组成复合信号的频率范围。
音频信号采集
电台等由于其自办频道的广告、新闻、广播剧、歌曲和转播节目等音频信号电平大小不一,导致节目播出时,音频信号忽大忽小,严重影响用户的收听效果。在转播时,由于传输距离等原因,在信号的输出端也存在信号大小不一的现象。过去,对大音频信号采用限幅方式,即对大信号进行限幅输出,小信号不予处理。这样,仍然存在音频信号过小时,用户自行调节音量,也会影响用户的收听效果。随着电子技术,计算机技术和通信技术的迅猛发展,数字信号处理技术已广泛地深入到人们生活等各个领域。其中语音处理是数字信号处理最活跃的研究方向之一,在IP电话和多媒体通信中得到广泛应用。语音处理可采用通用数字信号处理器DSP和现场可编程门阵列(FPGA) 实现,其中DSP实现方法具有实现简便、程序可移植行强、处理速度快等优点,特别是TI公司TMS320C54X系列在音频处理方面有很好的性价比,能够解决复杂的算法设计和满足系统的实时性要求,在许多领域得到广泛应用。在DSP的基础上对音频信号做AGC算法处理可以使输出电平保持在一定范围内,能够解决不同节目音频不均衡等问题。
TI公司DSP芯片TMS320VC5402具有独特的6总线哈佛结构,使其能够6条流水线同时工作,工作频率达到100MHZ。利用VC5402的2个多通道缓冲串行口(McBSP0和McBSP1)来实现与AIC23的无缝连接。VC5402的多通道带缓冲的串行口在标准串口的基础上加了一个2K的缓冲区。每次串口发送数据时,CPU自动将发送缓冲中的数据送出;而当接收数据时,CPU自动将收到的数据写入接收缓存。在自动缓冲方式下,不需每传送一个字就发一次中断,而是每通过一次缓冲器的边界,才产生中断至CPU,从而减少频繁中断对CPU的影响。
音频芯片采用TLV320 AIC23,它是TI公司的一款高性能立体声音频A/D,D/A放大电路。AIC23的模数转换和数模转换部件高度集成在芯片内部,采用了先进的过采样技术。AIC23的外部硬件接口分为模拟口和数字口。模拟口是用来输入输出音频信号的,支持线路输入和麦克风输入;有两组数字接口,其一是由/CS、SDIN、SCLK和MODE构成的数字控制接口。AIC23是一块可编程的音频芯片,通过数字控制口将芯片的控制字写入AIC23内部的寄存器,如采样率设置,工作方式设置等,共有12个寄存器。音频控制口与DSP的通信主要由多通道缓冲串行口McBSP1来实现。
AIC23通过数字音频口与DSP的McBSP0完成数据的通信,DSP做主机,AIC23做从机。主机提供发送时钟信号BCLKX0和发送帧同步信号BFSX0。在这种工作方式下,接收时种信号BCLKR0和接收帧同步信号BFSR0实际上都是由主机提供的。图1是AIC23与VC5402的接口连接。
AIC23的数字音频接口支持S(通用音顿格式)模式,也支持DSP模式(专与TIDSP连接模式),在此采用DSP模式。DSP模式工作时,它的帧宽度可以为一个bit长。图2是音频信号采集的具体电路图。
电路的设计和布线是信号采集过程中一个很重要的环节,它的效果直接关系到后期信号处理的质量。对于DSP达类高速器件,外部晶体经过内部的PLL倍频以后可达上百兆。这就要求信号线走等长线和绘制多层电路板来消除电磁干扰和信号的反射。在两层板的前提下,可以采取顶层与底层走交叉线、尽量加宽电源线和地线的宽度、电源线成"树杈型"、模拟区和数字区分开等原则,可以达到比较好的效果。
音频AGC算法
AGC算法
使放大电路的增益随信号强度的变化而自动调整的控制方法,就是AGC-自动增益控制。实现AGC可以是硬件电路,即AGC闭环电子电路,也可以是软件算法。本文主要讨论用软件算法来实现音频信号的AGC。
音频AGC是音频自动增益控制算法,更为准确的说是峰值自动增益控制算法,是一种根据输入音频信号水平自动动态地调整增益的机制。当音量(无论是捕捉到的音量还是再现的音量)超过某一门限值,信号就会被限幅。限幅指的是音频设备的输出不再随着输入而变化,输出实质上变成了最大音量位置上的一条水平线;当检测到音频增益达到了某一门限时,它会自动减小增益来避免限幅的发生。另一方面,如果捕捉到的音量太低时,系统将自动提高增益。当然,增益的调整不会使音量超过用户在调节向导中设置的值。图3是音频AGC算法的结构框图。
AGC算法的实现过程
首先从串口获取音频数据,它是16位的整型数,一般来说,这些数都是比较小的,通过AGC算法将输入的音频数据投影在一个固定区间内,从而使得不论输入的数据点数值大小都会等比例地向这个空间映射。一方面将获得的音频数据最大值与原来的峰值进行比较,如果有新的峰值出现就计算新的增益系数;另一方面在一定的时间周期内获取一个新的峰值,这个峰值就具有检测性能,又与原峰值比较,然后就计算新的增益系数。这个增益系数是相对稳定的。当音量加大时,信号峰值会自动增加,从而增益系数自动下降;当音量减小时,新的峰值会减小并且取代原来的峰值,从而使峰值下降,使增益系数上升。最后输出的数据乘以新增益系数后映射到音频信号输入的投影区间内。图4是音频信号AGC算法的程序流程图。
AGC_Coff是初始增益系数,初始值为1;maxAGC_in是增益峰值,初始值为0;time是采样点计数,门限值为4096;AGC_in是新的音频数据,MAXArrIn是新的音频增益峰值;映射区间【-20000,20000】。
整个系统的软件部分为5人模块。系统主函数main( )、CMD文件、中断向量表、DSP5402头文件和专为C语言开发的库函数rtdx.lib。其中主函数部分是核心,主要包括:DSP器件初始化、MCBSP1初始化、MCBSP0初始化、AIC23初始化(内部12个可编程寄存器设置)及算法程序等。
在CCS2.0集成开发环境下,采用*.c语言和*.asm语言相结合的方式编写程序。将编写的程序*.c、*.asm和链接程序*.cmd文件编译链接后生成执行目标文件*.out,通过仿真器将执行目标文件*.out下载到系统板上,经过调试、编译并运行,以音乐作为音频信号源输入到系统板上。
音频信号数字化
普通的CD采用了数字技术,不过它只是简单地把模拟信号加以数字化。为了把模拟信号数字化,首先要对模拟信号进行采样。根据Nyquest采样定律,通常其采样频率至少是信号中的最高频率分量的两倍。对于高质量的音频信号,其频率范围是从20Hz-20kHz。所以其采样频率必须在40kHz以上。在CD中采用了44.1kHz的采样频率。在对模拟信号采样以后,还必须对其幅度上加以分层。在CD中,其分层以后的幅度信号用16比特的二进制信号来表示,也就是把模拟的音频信号在幅度上分为65,536层。这样,它的动态范围就可以达到96分贝=20Log65536(6分贝/比特)。这种直接模数(A/D)变换的方法也称为PCM编码。直接数字化的最大缺点是比特率非常高。达到44.1x16=705.6kBbps,或即88.2kBbps。比特率高就意味着要求的存储容量很大。要记录1分钟的音乐,就需要5.292MB的存储容量。对于两路立体声,就需要10.584MB。而要记录几十分钟的音乐就需要几百兆的存储容量。
PCM编码原理
把模拟信号转换成数字信号的过程称为模/数转换,它主要包括:
采样:在时间轴上对信号数字化;
量化:在幅度轴上对信号数字化;
编码:按一定格式记录采样和量化后的数字数据。
脉冲编码调制PCM(Pulse Code Modulation)是一种模数转换的最基本编码方法,CD-DA就是采用的这种编码方式。
数字音频的技术指标
采样频率
采样频率是指一秒钟内采样的次数。奈奎斯特(Harry Nyquist)采样理论:如果对某一模拟信号进行采样,则采样后可还原的最高信号频率只有采样频率的一半,或者说只要采样频率高于输入信号最高频率的两倍,就能从采样信号系列重构原始信号。
根据该采样理论,CD激光唱盘采样频率为44KHz,可记录的最高音频为22KHz,这样的音质与原始声音相差无几,也就是我们常说的超级高保真音质(Super High Fidelity-HiFi)。采样的三个标准频率分别为:44.1KHz,22.05KHz和11.025KHz。
量化位数
量化位是对模拟音频信号的幅度轴进行数字化,它决定了模拟信号数字化以后的动态范围。由于计算机按字节运算,一般的量化位数为8位和16位。量化位越高,信号的动态范围越大,数字化后的音频信号就越可能接近原始信号,但所需要的存贮空间也越大。
量化位 等份 动态范围(dB) 应用
8 256 48-50 数字电话
16 65536 96-100 CD-DA
声道数
有单声道和双声道之分。双声道又称为立体声,在硬件中要占两条线路,音质、音色好,但立体声数字化后所占空间比单声道多一倍。
编码算法
编码的作用一是采用一定的格式来记录数字数据,二是采用一定的算法来压缩数字数据。压缩编码的基本指标之一就是压缩比:
压缩比通常小于1。压缩算法包括有损压缩和无损压缩;有损压缩指解压后数据不能完全复原,要丢失一部分信息。压缩比越小,丢掉的信息越多、信号还原后失真越大。根据不同的应用,可以选用不同的压缩编码算法,如PCM,ADPC,MP3,RA等等。
数据率及数据文件格式
数据率为每秒bit数,它与信息在计算机中的实时传输有直接关系,而其总数据量又与计算机的存储空间有直接关系。因此,数据率是计算机处理时要掌握的基本技术参数,未经压缩的数字音频数据率可按下式计算:
数据率=采样频率(Hz)×量化位数(bit)×声道数(bit/s)
用数字音频产生的数据一般以WAVE的文件格式存贮,以“.WAV”作为文件扩展名。WAV文件由三部分组成:文件头,标明是WAVE文件、文件结构和数据的总字节;数字化参数如采样率、声道数、编码算法等等;最后是实际波形数据。WAVE格式是一种Windows下通用的数字音频标准,用Windows自带的媒体播放器可以播放WAV文件。MP3的应用虽然很看好,但目前还需专门的播放软件,其中较成熟的为RealPlayer。
为了存储数字化了的音乐,就只能尽量开发高容量的存储系统。在70年代末,终于开发出了利用激光读写的光盘存储系统。因为这种光盘比起密纹唱片,无论在体积和重量上都要小得多,轻得多,所以称它为CD(CompactDisk)。意思为轻便的碟片。而一张CD的容量大约为650MB,也就只能存储61.4分钟音乐。
纯粹音乐CD通常也称为CD-DA。DA就是数字音频(Digital Audio)的缩写。它的技术指标是由一本所谓的“红皮书”所定义。这本红皮书是菲立普公司和索尼公司在1980年公布的。以后,在1987年,又由国际电工委员会(IEC)制定为IEC908标准。根据这些标准可以比较精确地计算一张CD所能存储的音乐时间。实际上在CD碟片中是以扇区为单位的,每个扇区中所包含的字节数为2352个字节。总共有345k个扇区。因此总的字节数为345kx2352=811440kB。可以存放76.92分钟的立体声音乐。还有一种方法来计算播放的时间,CD在播放时,其播放的速度为每秒钟75个扇区。一张CD有345k个扇区,因而可以播放的时间为345k/75=4600秒=76分40秒。两种方法计算的结果是一样的。
数字音频信号的压缩
因为音频信号数字化以后需要很大的存储容量来存放,所以很早就有人开始研究音频信号的压缩问题。音频信号的压缩不同于计算机中二进制信号的压缩,在计算机中,二进制信号的压缩必须是无损的,也就是说,信号经过压缩和解压缩以后,必须和原来的信号完全一样,不能有一个比特的错误。这种压缩称为无损压缩。但是音频信号的压缩就不一样,它的压缩可以是有损的只要压缩以后的声音和原来的声音听上去和原来的声音一样就可以了。因为人的耳朵对某些失真并不灵敏,所以,压缩时的潜力就比较大,也就是压缩的比例可以很大。音频信号在采用各种标准的无损压缩时,其压缩比顶多可以达到1.4倍。但在采用有损压缩时其压缩比就可以很高。下面是几种标准的压缩方法的性能。按质量由高往低排列。
需要注意的是,其中的Mbyte不是正好1兆比特,而是1024x1024=1048576Byte。必须指出,这些压缩都是以牺牲音质作为代价的,尤其是最后两种方法,完全靠降低采样率和降低分辨率来取得的。这对音质的损失太大,所以这些方法并不可取。