音频信号特征提取

音频信号特征提取

ID:4129556

大小:194.51 KB

页数:4页

时间:2017-11-29

音频信号特征提取_第1页
音频信号特征提取_第2页
音频信号特征提取_第3页
音频信号特征提取_第4页
资源描述:

《音频信号特征提取》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数字音频实验5音频特征提取一、实验目的加深对数字音频特征的理解,了解短时能量与短时平均过零率的作用及求法。二、实验设计编写一个求音频文件短时能量和过零率的应用程序。具体程序要求:¾音频文件为根目录下的test_exp5_1.wav的16位采样位数的文件;¾计算所得的短时能量是一个相对值,即对每个数据与最大值的相对值进行加权运算;¾将结果输出至文件。三、基本理论1.短时能量音频信号的能量随着时间变化比较明显,其短时能量分析给出了反映这些幅度变化的一个合适的方法。对于信号{x(n)},其短时能量的定义如下:∞∞222En=∑∑[x(m)w(n−m)]=x(m)h(n−m)=

2、x(n)∗h(n)mm=−∞=−∞2其中,h(n)=w(n),表示在信号的第n个点开始加窗函数时的短时能量。如果用x(n)表wn+N−12示x(n)经过加窗处理后的信号,窗函数的长度为N,短时能量可表示为En=∑xw(m),m=nn+N−12所以如果所加窗为矩形窗,短时能量为En=∑x(m)。m=n短时能量可以有效地判断信号幅度的大小,并可用于有声/无声的判定,这对音频信号的检测非常重要。2.短时平均过零率短时平均过零率是音频信号时域分析中最简单的一种特征。顾名思义,它是指每帧内信号通过零值的次数,它在一定程度上可反映频率信息,进而得到频谱特性,通过短时平均过零率可获得

3、谱特性的一种粗略估计。计算短时平均过零率的公式为:∞n+N−111Zn=∑∑sgn[x(m)]−sgn[x(m−1)]=sgn[xw(m)]−sgn[xw(m−1)]2m=−∞2m=n其中,sgn[•]是符号函数,即⎧1x(n)≥0sgn[x(n)]=⎨⎩−1x(n)<0四、思考题1.8位数据与16位数据文件在求短时平均过零率时有何不同?2.怎样通过短时平均过零率粗略估计信号频率?五、编程指导1.数据表示与存储¾帧处理类——CAFrameclassCAFrame{public:unsignedintnFrameSize;//每帧采样点数float*frame;//存储每

4、帧采样值floatst_energy;//短时能量floatzcr;//过零率public:CAFrame();~CAFrame();voidinitialize(unsignedintdata_size);//初始化函数intfill_data(short*data,unsignedintdata_size);//填入数据voidzeromean();//去直流floatget_st_energy();//求短时能量floatget_zcr();//求过零率};2.示范程序要点说明示范程序为控制台应用程序,工程中包含5个文件。main.cpp文件为函数入口;WavFi

5、leOperation.h和WavFileOperation.cpp文件定义和实现了wav文件操作的类CWavFileOperation;AFrame.h和AFrame.cpp文件定义和实现了帧操作类CAFrame类,下面对CAFrame类进行详细介绍。¾CAFrame类CAFrame类主要定义了针对帧数据进行特征提取的一些函数,下面就对它们进行详细的说明。voidinitialize(unsignedintdata_size)参数:data_size——帧长度。作用:为该类中的frame参数开辟缓冲区。说明:开辟缓冲区因计算所需的实际空间的大小,由于frame为flo

6、at类型指针,所以内存大小为data_size*4。intfill_data(short*data,unsignedintdata_size)参数:data——指向的带数据的缓冲区;data_size——数据长度。返回值:-1——data_size设置有误;1——成功赋值。作用:将data所指向的数据缓冲区的内容复制到该类中的frame所指向的缓冲区中,data_size控制赋值个数。voidzeromean()作用:去直流。说明:求一帧数据的平均值,然后每个数据都减去这个平均值就得到了去直流的结果。floatget_st_energy()返回值:此帧数据的短时能量。作

7、用:求一帧数据的短时能量,保存在该类的变量st_energy,并返回。说明:floatmaxenergy=(float)pow(2,30)-因为采样是16位的,并且是有符号的数,所以每个样值的最大值是2^15,最大能量是2^30,对没个样点的能量用maxenergy进行归一化。floatget_zcr()返回值:此帧数据的短时平均过零率。作用:求一帧数据的短时平均过零率。说明:计算相邻两点采样值乘积,若小于0,则算作过零一次,利用总过零次数除以帧长,即得过零率。六、基本实验1.在CAFrame类中编写一个函数,此函数功能为求8位数据位数的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。