音频性能测试(音频性能测试软件)

来源网友投稿 1624 2022-12-22

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
本篇文章给大家谈谈音频性能测试,以及音频性能测试软件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享音频性能测试的知识,其中也会对音频性能测试软件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

蓝牙音频测试

蓝牙技术的实用性使它在人们的日常生活中已经随处可见。通过灵活多变的配置文件,蓝牙技术在消费领域得到广泛的应用,从头戴式耳机, TWS耳机到智能音箱等,甚至车载 娱乐 系统。对这些产品进行电声测量比较复杂(AP另有文章作相关的介绍),在这些产品中加入蓝牙协义与各种编解码支持,使产品的音频测量变得更加复杂。

尽管蓝牙技术有超过30种不同的配置协议,但在音频应用方面主要只有4种:

- Hands Free Profile (HFP) – 作为发送端(Audio Gateway)或接收端(Hands Free). 音频的发送, 接收采用CVSD 和 mSBC(wideband speech)编解码
- Headset Profile (HSP) - 作为发送端(Audio Gateway)或接收端(Headset). 音频的发送, 接收采用CVSD 和 mSBC(wideband speech)编解码
- Advanced Audio Distribution Profile (A2DP) - 作为发送端或接收端.采用指定的音频编解码传输高质量的立体声音频。
- Audio Video Remote Control Profile (AVRCP) - 作为发送端(Target)或接收端(Controller). AVRCP 通过传输指令, 延迟补偿, 绝对音量设置等对A2DP提供支持。

从上面的配置文件介绍可以了解到, 一个蓝牙音频设备可能需要采用不同的配置文件进行验证, 而且, 在不同配置文件时作为发送端或接收端也要分别验证. 这就意味着测量设备作为发送端或接收端, 必须支持相同的配置文件, 还需要对产品采用不同的编码方式进行支持。

编解码的功能是在发送端进行编码, 在接收端进行解码, 在编解码过程中尽量做到无损的前提下降低数据速率, 不同的编解码的性能差异会影响感知音频的质量。 因为编解码的非线性, 与线性产品对比, 经过编解码的测量结果肯定会差一些, 比如,在分析信号经过编解码电路时, 可以看到额外的失真, 噪声, 或其它与信号不相关的成份。

除了需要配置文件, 一个蓝牙设备就是在不断地发送和接收无线信号, 当发送音频信号时,可看作音源,当接收音频信号时,可看作音频接收器。拿一个蓝牙音箱的喇叭测试举例,AP音频分析仪的输出端口设置为蓝牙发送端,作为音源, 输入端口设置为模拟输入,连接测量麦克风用于采集喇叭输出的电声信号。当测试蓝牙产品的麦克风时,如我们常见的蓝牙耳机上的麦克风, AP音频分析仪的输出端口则设置为模拟输出, 并通过一功率放大器驱动人工嘴或喇叭, 以在麦克风端产生额定的声压信号, 输入端口设置为蓝牙接收端。
APx Bluetooth Duo Option Datasheet

APx Bluetooth Duo 是AP推出的新一代蓝牙数字模块, 它提供了比上一代更多的A2DP 编解码支持, 更快地与产品配对与连接, 扩展了APx500软件的控制界面, 并且针对产线测试环境改进了对RF的屏蔽. APx Duo 支持蓝牙内核规范v4.2, HFP v1.7, HSP v1.2, AVRCP v1.4 和 A2DP v1.3。

A2DP 配置文件适用于高质量音乐传输, 兼容多种编解码, 包括MPEG-1, MPEG-2, MPEG-4, AAC, ATRAC, aptX 和 aptX Low Latency. TechNote 123 介绍了蓝牙设置界面, 设置所需的编解码, 状态监测窗口, 测量延迟, 以及与蓝牙音频相关的参数测量, 如频响曲线, THD等。

音频电性能测试有哪些方案进行测试?

科电Audio Precision 音频电性能测试有两种方案进行测试,方案1:车载音响测试
主要针对USB/CD播放语音、网络播放语音、蓝牙播放语音、车载音响放大器等产品和项目进行音频电性能测 试,可以做到客观的评价语音播放链路性能。 方案2:车载收音机测试
可以满足对调频、调幅广播收音机的音频电性能测试。主要使用AM/FM信号发生器、音频分析仪等设备。

用什么测量喇叭的音频

喇叭要安装在音箱,才有低音。
有音频信号测试碟,频率20-20000赫兹都有。
一般落地音箱有40赫兹超低音。
书架箱在50-60赫兹以上。
对比信号声音响度,误差不大,在正负3分贝就是有效频率。
音箱误差太大的,就是无用频率。

音频检测指标的信噪比及分离度都是基于1KHZ的比较么?

4. 音频测试项目简介 4.1. FFT 首先介绍一个最重要的概念:FFT音频性能测试,即快速傅立叶变换,上述软件的许多测试项目都是基于快速傅立叶变换分析的结果。这是现代电子学频谱分析的常规手段,特别是引入计算机技术后,更是方便快捷而且直观精确的不二选择。简单讲,一般信号波形的记录都是以时间-幅度相关的形式直观表现出来的,称为时域分析音频性能测试;而快速傅立叶变换就是分析计算信号波形中的频谱成分强度,将其能量从时间积分,从而得出频率-能量相关的形式,称为频域分析。注意这里讲的是频率-能量相关,而非一般认为的频率-幅度相关,因为傅立叶变换实际上已经无法确认信号不同频率间的幅度关系,而只能计算出其能量关系。理解这一点对理解快速傅立叶变换分析的结果很重要,据笔者所知大部分教科书或工具辞书都没有讲明这一点,软件的帮助文件也常常做出频率-幅度相关的错误解释,所以提请读者注意。 对于完全随机分布的信号,例如白噪声、粉红噪声,其每一频段能量平均分布在所有时段,因此与振幅是完全成正比的,故而FFT分析的结果称为频率-幅度关系也是可以的;但对于那些各频段能量分布随时间变化的信号,例如对数扫频信号、一般的语音、音乐,就不能这样理解了,事实上它们的高频部分振幅与低频相同或甚至更高,但FFT分析的结果却是低于低频的,因为它们占的时间比例小,这时必须用能量的观点去理解,否则会令人困惑,这是笔者长时间学习和分析思考得出的结论。 在用Spectra和Adobe Audition进行扫频测试时,上述思路会对我们分析和做结论有所帮助。例如对数扫频的振幅实际是恒定的,但FFT分析的结果为-3dB/oct衰减(oct:octave,八度音,倍频程)。 4.2. 频率响应测试 频率响应的平直与否直接关系到重放频带的范围以及重放信号的保真度。对于所有电声设备,频率响应无疑是最基本的指标,因而成为所有测试项目中最基本的一项。传统的频率响应测量大多采用扫频/点频信号或白噪声/粉红噪声信号,电路测试比较简单,只需将待测设备接入回路并调节好回路电平即可,声学测量大多在专业消声室进行。由于消声室构造复杂投资大而难以普及,近几十年开发了许多适用于普通房间环境的测试方法和测试系统,其基本原理一般都是用一个合适的时间窗口来接受信号,其它时间关闭以舍去反射的影响。近年来计算机技术的进步使得复杂的程序和计算得以快速完成,FFT分析普遍使用。现在几乎所有的专业测试系统都是基于计算机的,大多具有时间窗口功能,可以在普通环境进行声学测试,比较好的系统具有脉冲响应FFT分析和前/后沿累积频谱三维显示功能,能够对电声器材的特性进行更全面和深刻的反映。 这些系统当然都是相当昂贵的,不过本文介绍的软件可以完成所有类似的测试项目。 先说噪声测试,即用白噪声、粉红噪声作测试信号。Spectra和Adobe Audition都可以产生精确的噪声,而RMAA的普通测试模式为一段类白噪声,频带范围为5Hz至1/2取样频率,其实质是一系列点频的混合,在1KHz至10KHz间最密集,而且其高低频都有衰减,其目的是与实际的音乐频谱尽量接近,并不是严格的白噪声。 再看扫频测试。Spectra和Adobe Audition都可以自己定义扫频特性,特别是Adobe Audition,可以非常自由地产生想要的信号。RMAA的声学测量模式为20至20000Hz的对数扫频,但与Spectra和Adobe Audition的分析方法有所不同,正常的结果是完全平直的。 脉冲响应测试和FFT分析需要Spectra和Adobe Audition配合,也可以称为“瞬态响应”,放到5.4节讨论。 4.3.信噪比 信噪比是反映器材质量的又一重要指标,由器材产生的与输入信号无关的信号都是噪声。信噪比指的是设备能够处理的最大信号与噪声的比值,一般以最大信号为0dB,噪声用负分贝值表示,即在最大不失真信号的若干分贝以下,取正值就是信噪比。噪声大的设备会将小信号淹没,丢失许多信号细节,因此噪声应该越小越好。噪声也是有频带的,有时可能频带很宽,但我们计量时一般只取音频范围,而且要用人耳的敏感曲线(A计权)去均衡,可以得到实用的,也是更好看的噪声指标。例如-120dB的噪声表示噪声有效值是最大不失真信号的百万分之一,差不多是现代声卡、放大器所能达到的最好水平。而-80dB 的噪声表示噪声有效值是最大不失真信号的一万分之一,只能算一般水平。 噪声的测量是比较简单的,只需测量无输入信号时的输出电平即可,不过要注意应该将设备的增益调节到最大不失真状态,否则会给出虚假的高指标。这在任何测试系统里都是一样的。 在用FFT分析时可以引入“分段噪声”的概念,与我们听音的要求是不一样的。例如某系统的噪声是-85dBA,那么一般认为-85dB以下的信号就无法还原了。但事情并没有那么简单,-85dBA的噪声到底是由哪些频段产生的呢音频性能测试? 图4 让我们看一看噪声频谱分析的情况。如图4,这是一个典型的主板集成声卡的噪声频谱,由Adobe Audition分析出的结果。RMAA测试的结果为噪声水平-53.0dBA,可以说是相当差的结果,而且二者是吻合的。由图中我们可以看出,其噪声能量大部分分布在300Hz以下,而且主要是由50Hz和75Hz的谐波产生的,可以推断是交流电源和显卡的干扰造成的,而其余频段则能量小得多,到1KHz以上都在-86dB以下。这就是“分段噪声”的体现。 怎么理解上述的分析结果呢?简单的办法就是将上述曲线看作“掩蔽曲线”(峰谷多的地方取峰值顶点连线),凡是频谱在此曲线以下的信号都是不可能正确还原的,而不是简单的所有低于-53.0dB的信号。比如在1KHz以上-80dB的信号就可以还原(当然质量不高),由FFT分析检测出来,实际上人耳也有类似的检测能力,只不过由于掩蔽效应,灵敏度比计算机的精确FFT分析要低很多。 4.4.动态范围 动态范围是指设备能够处理的最大信号与最小信号的比值。这个概念容易与“信噪比”的概念混淆,那么二者有什么区别呢?可以理解,小于噪声幅度的信号是无法正确还原的,但是有的设备能够在无信号或信号特别低时从某些环节将噪声连同小信号切除,从而得出更好的信噪比指标(这就是“动态降噪”的基本原理)。这时实质上还是无法正确处理小信号的,而动态范围的测量就可以避免这样的人为优化。动态范围的测量是用一个小信号(一般用-60dB/1000Hz的正弦波)输给设备,然后滤除信号,测量其余频率的噪声和谐波水平,再用最大信号与之相比,结果就是动态范围。 可以预见动态范围一般要低于信噪比,但在没有特殊电路或软件处理噪声的情况下,一般二者差距不大,可以互相参考。图5给出了动态范围测试的结果。这里基本没有产生大于噪声的谐波,因此动态范围和信噪比是基本一样的。 图5 需要指出,测量出的动态范围与“理论上”的动态范围是不同的。例如现在的数字音源,大多用数字信号能够还原的理论值来标注,例如CD的动态范围96 dB ,DVD采用24bit记录能达到144dB音频性能测试!实际上由于模拟器件的限制,那样的指标是根本不可能实现的,你只需测试一下其噪声水平就知道了。只不过目前音像节目后期制作大部分都是用计算机数字处理的,在许多环节的处理过程中用高比特可以尽量避免信号劣化。(实际上甚至可能用48bit量化来处理!) 4.5. 总谐波失真THD 总谐波失真是指由输入信号激发的其它频率的能量总和,是典型的非线性失真。其测量方法是输入一个强信号(一般为-3dB/1000Hz,略低于最高值,防止削顶而产生大量谐波),然后测量其余频率的总能量与信号能量的比值。可以理解,总谐波失真越小,设备的保真度越高,信号的纯度越高。特别对于晶体管电路,其谐波成分大部分为奇次即基波的3、5、7倍,失真大时使声音发毛刺耳,很不耐听,因此该指标值越小越好。而电子管电路有些例外,其谐波成分以偶数为主,结果使声音显得温暖、甜润,结果虽然失真较大却挺讨人喜欢,但这已涉及到人的主观感受而不是严格的高保真概念了。 传统的测试方法THD只测1000 Hz,这其实是远远不够的,许多设备在不同的频段THD值差别很大,特别是在电声测试时,一个频点根本不可能反映全貌。好在这里介绍的三个软件都可以方便地改变THD测试信号的频率并很快得出希望的计算结果,特别是RMAA的声学测量同时附带全音频范围THD测量功能(实际可以单测2、3次谐波,也可以是THD+N,即包含噪声),可以生成一条THD曲线,如图6所示为THD+N,直观地显示出THD变化的规律。 图6 4.6. 互调失真IMD 互调失真是由两个频率互相调制,相加相减,再加减其结果而产生的一系列谐波。当然了,本来没有的东西,还是越少越好。有些设备的频响很好,但互调失真很严重,结果表现为音质不好听。 标准的IMD测试常用的测试信号有两种,分别为250/8020 Hz和60/7000 Hz按4/1的比例混合。与THD测试一样,软件的取值范围是很广的,可以进行自由的设置。 4.7. 通道分离度 通道分离度是指各声道间互相干扰的隔离能力,也不必多言,当然越高越好了。随着数字音响系统取代普通磁带录放机,数字环绕声代替模拟系统,获得高的通道分离度已困难不大,关键在于A-D/D-A和模拟电路的性能。

音频设备测试无法播放声音

一.播放声音文件的简单方法
在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中参数lpszSound是需要播放声音的.WAV文件的路径和文件名音频性能测试, hmod在这里为NULL音频性能测试,fuSound是播放声音的标志,详细说明请参考VC++中的帮助。 例如播放C:soundmusic.wav可以用sndPlaySound ("c:\sound\music.wav",SND_ASYNC);或PlaySound("c:\sound\music.wav",NULL, SND_ASYNC|SND_NODEFAULT );如果没有找到music.wav文件,第一种格式将播放系统默认的声音,第二种格式不会播放系统默认的声音。
二.将声音文件加入到程序中
在VC++的程序设计中,可以利用各种标准的资源,如位图,菜单,对话框等。同时VC++也允许用户自定义资源,因此我们可以将声音文件作为用户自定义资源加入程序资源文件中,经过编译连接生成EXE文件,实现无.WAV文件的声音播放。
要实现作为资源的声音文件的播放,首先要在资源管理器中加入待播放的声音文件(实现过程并不复杂,这里不在叙述)。假设生成的声音文件资源标识符为IDR_WAVE1。在播放时只需要调用下面的语句:
PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(), SND_ASYNC|SND_RESOURCE|SND_NODEFAULT|SND_LOOP);
其中MAKEINTRESOURCE()宏将整数资源标识符转变为字符串,AfxGetResourceHandle()函数返回包含资源的模块句柄,
SND_RESOURCE是必须的标志。
作为资源的声音文件的第二种播放方法是把资源读入内存后作为内存数据播放。具体步骤入下:
1.获得包含资源的模块句柄:
HMODULE hmod=AfxGetResourceHandle();
2.检索资源块信息:
HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_WAVE1),_T("WAVE"));
3. 装载资源数据并加锁:
HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource);
LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem);
4.播放声音文件:
sndPlaySound(lpMemSound,SND_MEMORY));
5.释放资源句柄:
FreeResource(hGlobalMem);
三.播放声音文件的高级方法
在VC++中提供了一组对音频设备及多媒体文件直接进行操作的函数。利用这些函数可以灵活地对声音文件进行各种处理。
首先介绍几个要用到的数据结构。WAVEFORMATEX结构定义了WAVE音频数据文件的格式。WAVEHDR结构定义了波形音频缓冲区。读出的数据首先要填充此缓冲区才能送音频设备播放。WAVEOUTCAPS结构描述了音频设备的性能。MMCKINFO结构包含了RIFF文件中一个块的信息。详细的说明请参考VC++中的帮助。
下面给出程序流程简图及程序源代码清单,在VC++环境下可直接使用:
源程序清单如下:
LPSTR szFileName;//声音文件名
MMCKINFO mmckinfoParent;
MMCKINFO mmckinfoSubChunk;
DWORD dwFmtSize;
HMMIO m_hmmio;//音频文件句柄
DWORD m_WaveLong;
HPSTR lpData;//音频数据
HANDLE m_hData;
HANDLE m_hFormat;
WAVEFORMATEX * lpFormat;
DWORD m_dwDataOffset;
DWORD m_dwDataSize;
WAVEHDR pWaveOutHdr;
WAVEOUTCAPS pwoc;
HWAVEOUT hWaveOut;
//打开波形文件
if(!(m_hmmio=mmioOpen(szFileName,NULL,MMIO_READ|MMIO_ALLOCBUF)))
{
//File open Error
Error("Failed to open the file.");//错误处理函数
return false;
}
//检查打开文件是否是声音文件
mmckinfoParent.fccType =mmioFOURCC(’W’,’A’,’V’,’E’);
if(mmioDescend(m_hmmio,(LPMMCKINFO)mmckinfoParent,NULL,MMIO_FINDRIFF))
{
//NOT WAVE FILE AND QUIT
}
//寻找 ’fmt’ 块
mmckinfoSubChunk.ckid =mmioFOURCC(’f’,’m’,’t’,’ ’);
if(mmioDescend(m_hmmio,mmckinfoSubChunk,mmckinfoParent,MMIO_FINDCHUNK))
{
//Can’t find ’fmt’ chunk
}
//获得 ’fmt ’块的大小,申请内存
dwFmtSize=mmckinfoSubChunk.cksize ;
m_hFormat=LocalAlloc(LMEM_MOVEABLE,LOWORD(dwFmtSize));
if(!m_hFormat)
{
//failed alloc memory
}
lpFormat=(WAVEFORMATEX*)LocalLock(m_hFormat);
if(!lpFormat)
{
//failed to lock the memory
}
if((unsigned long)mmioRead(m_hmmio,(HPSTR)lpFormat,dwFmtSize)!=dwFmtSize)
{
//failed to read format chunk
}
//离开 fmt 块
mmioAscend(m_hmmio,mmckinfoSubChunk,0);
//寻找 ’data’ 块
mmckinfoSubChunk.ckid=mmioFOURCC(’d’,’a’,’t’,’a’);
if(mmioDescend(m_hmmio,mmckinfoSubChunk,mmckinfoParent,MMIO_FINDCHUNK))
{
//Can’t find ’data’ chunk
}
//获得 ’data’块的大小
m_dwDataSize=mmckinfoSubChunk.cksize ;
m_dwDataOffset =mmckinfoSubChunk.dwDataOffset ;
if(m_dwDataSize==0L)
{
//no data in the ’data’ chunk
}
//为音频数据分配内存
lpData=new char[m_dwDataSize];
if(!lpData)
{
//faile
}
if(mmioSeek(m_hmmio,SoundOffset,SEEK_SET)<0)
{
//Failed to read the data chunk
}
m_WaveLong=mmioRead(m_hmmio,lpData,SoundLong);
if(m_WaveLong<0)
{
//Failed to read the data chunk
}
//检查音频设备,返回音频输出设备的性能
if(waveOutGetDeVCaps(WAVE_MAPPER,pwoc,sizeof(WAVEOUTCAPS))!=0)
{
//Unable to allocate or lock memory
}
//检查音频输出设备是否能播放指定的音频文件
if(waveOutOpen(hWaveOut,DevsNum,lpFormat,NULL,NULL,CALLBACK_NULL)!=0)
{
//Failed to OPEN the wave out devices
}
//准备待播放的数据
pWaveOutHdr.lpData =(HPSTR)lpData;
pWaveOutHdr.dwBufferLength =m_WaveLong;
pWaveOutHdr.dwFlags =0;
if(waveOutPrepareHeader(hWaveOut,pWaveOutHdr,sizeof(WAVEHDR))!=0)
{
//Failed to prepare the wave data buffer
}
//播放音频数据文件
if(waveOutWrite(hWaveOut,pWaveOutHdr,sizeof(WAVEHDR))!=0)
{
//Failed to write the wave data buffer
}
//关闭音频输出设备,释放内存
waveOutReset(hWaveOut);
waveOutClose(hWaveOut);
LocalUnlock(m_hFormat);
LocalFree(m_hFormat);
delete [] lpData;
说明:1)以上使用的音频设备和声音文件操作函数的声明包含在mmsystem.h头文件中,因此在程序中必须用#include "mmsystem.h"语句加入头文件。同时在编译时要加入动态连接导入库winmm.lib,具体实现方法是从Developer Studio的Project菜单中选择Settings,然后在Link选项卡上的Object/Library Modules控制中加入winmm.lib。2)在pWaveOutHdr.lpData中指定不同的数据,可以播放音频数据文件中任意指定位置的声音。3) 以上程序均在VC++6.0中调试通过,在文中省略了对错误及异常情况的处理,在实际应用中必须加入。
四.结论
在VC++中可以根据应用需要采用不同的方法播放声音文件。简单应用可以直接调用声音播放函数。第二种方法可以把声音作为资源加入可执行文件中。如果在播放之前要对声音数据进行处理,可用第三种方法。 关于音频性能测试和音频性能测试软件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 音频性能测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于音频性能测试软件、音频性能测试的信息别忘了在本站进行查找喔。
上一篇:光伏电站在线运维,常见故障及解决办法—安装应用类
下一篇:虚实融合高效运维,AI打造智慧换流站
相关文章

 发表评论

暂时没有评论,来抢沙发吧~