预览加载中,请您耐心等待几秒...
1/2
2/2

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

QSC60X0的音频调试 高通音频部分的原理都是大同小异的,所以对于其他平台也有借鉴作用。首先我们要熟悉QSC60X0平台的音频通路: 一,音频通路说明 发送通路(TX)---表示本地到远端,即发送给对方的声音通路 声音一开始是从MIC进入,这里有2个MIC,默认MIC1用于手机(handset),MIC2用于耳机(headset)。之后声音进过2个可选增益的AP,注意第一个AP只能选择0db或+24db,而第二个AP的增益范围就大了很多,从-6db~+24db,步长1.5db。通过codec的寄存器,可以选择AP的增益,以及使用哪个AP(全选,全不选,或则只用一个,另一个bypass)。经过ADC之后,有两个滤波器HPF和SLOPE,HPF滤出120Hz以下信号,SLOPE会增强1kHz以上的高频信号。在进入QDSP前,有一个可编程增益CodecTxGain,范围-84dB~12dB。这里还有直连到RX后级的侧音增益控制side_tone_gain。进入QDSP后,首先经过EC(回声消除器),然后经过NS(噪声抑制器)和TXAGC,到这里声音信号已经达到最大信噪比。然后通过TxPCMFilter,这是个FIR滤波器,根据自身的幅频和相频特性影响SFR(发送频响)。最后还有一级可编程增益TxVolume,也会影响到SLR(发送响度)。 接收通路(RX)---表示远端到本地,即本地听到声音的通路 与TX部分类似。需要补充一点,除图中所示外,SPEAKER还会在PMIC中进行最后一级放大,声音从MIC进来以后,流到CODEC,然后从AUXOP,AUXON输出,流到SPKR_IN_M,SPKR_IN_P,即进入PMIC,这时可以通过PMIC的APIpm_set_speaker_gain(PM_SPKR_GAIN_PLUS12DB)定义增益大小(在sndhw_init()中),放大增益范围为[-16,-12,-8,-4,0,4,8,12]dB,最后通过SPKR_OUT_P,SPKR_OUT_M输出到喇叭。 二,音频校准主要修改2个文件sndcal.c,voccal.c 1.先要理解两个常量,一个是voccal.c中的常量voc_pcm_on_chip_0_gsm_cal,结构如下: typedefstruct{ voc_ec_typeec_mode;/*EchoCancellationmode*/ voc_ns_typens_enable;/*Noisesuppressorenable*/ uint16tx_gain;/*TXVoiceVolume*/ uint16dtmf_tx_gain;/*TXDTMFgain*/ uint16codec_tx_gain;/*CODECTXgain*/ uint16codec_rx_gain;/*CODECRXgain*/ uint16codec_st_gain;/*CODECSTgain*/ qdsp_cmd_pcm_filter_typetx_filter;/*TXPCMfiltercoefficients*/ qdsp_cmd_pcm_filter_typerx_filter;/*RXPCMfiltercoefficients*/ sint15rx_dbm_offset;/*RXoffsetindBm*/ qdsp_cmd_agc_param_typeagc_param;/*AGC/AVCparameters*/ …… …… }voc_pcm_path_cal_type; 根据注释,很容易找到TxCodecGain,TxVolume,RxCodecGain,STCodecGain,TxPCMFilter,RxPCMFilter。这里找到的Gain和Volume增益计算公式为:Gain(dB)=20*LOG(Value/16384) 另一个是Sndcal.c中的snd_cal_handset_voice_vol。平台默认为四级音量,数组的第一竖列就是每级音量对应RxVolume的大小。 VOL_MEMORYsnd_gen_level_voc_typesnd_cal_handset_voice_vol[]={ {VOC_VOL_SILENCE,VOC_VOL_SILENCE,0}, {-1100,-3400,0}, {-500,-3300,0}, {100,-3200,0}, {700,-3100,0} };Rxvolume计算公式为:Value=100*Gain(dB)。上例四级音量分别为-11,-5,1,7dB,最大音量7dB。需要说明的是每级音量至少间隔4dB,才能被人耳区分出来。