Ambiq Apollo3 音频驱动录音的 am_hal_pdm_config_t 配置参数的注释说明
eClkDivider = AM_HAL_PDM_MCLKDIV_1,// 主时钟分频器设置为1,即不分频。.eLeftGain = AM_HAL_PDM_GAIN_0DB,// 左声道增益设置为0dB。.eRightGain = AM_HAL_PDM_GAIN_0DB,// 右声道增益设置为0dB。.ui32DecimationRate = 64,// 降采样率设置为64。
am_hal_pdm_config_t g_sPdmConfig =
{
.eClkDivider = AM_HAL_PDM_MCLKDIV_1, // 主时钟分频器设置为1,即不分频。
.eLeftGain = AM_HAL_PDM_GAIN_0DB, // 左声道增益设置为0dB。
.eRightGain = AM_HAL_PDM_GAIN_0DB, // 右声道增益设置为0dB。
.ui32DecimationRate = 64, // 降采样率设置为64。
.bHighPassEnable = 0, // 禁用高通滤波器。
.ui32HighPassCutoff = 0xB, // 高通滤波器截止频率(未启用)。
.ePDMClkSpeed = AM_HAL_PDM_CLK_6MHZ, // PDM 时钟速度设置为6 MHz。
.bInvertI2SBCLK = 0, // 不反转I2S时钟。
.ePDMClkSource = AM_HAL_PDM_INTERNAL_CLK, // 使用内部时钟源。
.bPDMSampleDelay = 0, // PDM采样延迟设置为0。
.bDataPacking = 1, // 启用数据打包。
.ePCMChannels = AM_HAL_PDM_CHANNEL_RIGHT, // 仅使用右声道PCM通道。
.ui32GainChangeDelay = 1, // 增益变化延迟设置为1。
.bI2SEnable = 0, // 禁用I2S接口。
.bSoftMute = 0, // 禁用软静音。
.bLRSwap = 0, // 不交换左右声道。
};
参数说明:
-
eClkDivider:主时钟分频器,用于调整PDM模块的时钟频率。
-
eLeftGain 和 eRightGain:分别设置左右声道的增益,单位为dB。
-
ui32DecimationRate:降采样率,用于将PDM信号转换为PCM信号。64倍降采样率意味着PDM时钟频率为PCM采样率的64倍。
-
bHighPassEnable 和 ui32HighPassCutoff:高通滤波器的启用和截止频率设置。在该配置中,高通滤波器未启用。
-
ePDMClkSpeed:PDM时钟速度,此处设置为6 MHz。
-
bInvertI2SBCLK:是否反转I2S时钟,此处未启用。
-
ePDMClkSource:时钟源选择,此处使用内部时钟。
-
bPDMSampleDelay:PDM采样延迟,此处设置为0。
-
bDataPacking:数据打包功能,用于优化数据传输效率。
-
ePCMChannels:PCM通道选择,此处仅使用右声道。
-
ui32GainChangeDelay:增益变化延迟,用于平滑增益调整。
-
bI2SEnable:是否启用I2S接口,此处未启用。
-
bSoftMute:软静音功能,此处未启用。
-
bLRSwap:是否交换左右声道,此处未启用。
这些配置参数主要用于设置PDM模块的时钟、增益、降采样率、滤波器等功能,以适应不同的音频输入和处理需求。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)