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,                                 // 不交换左右声道。
};

参数说明:

  1. eClkDivider:主时钟分频器,用于调整PDM模块的时钟频率。

  2. eLeftGain 和 eRightGain:分别设置左右声道的增益,单位为dB。

  3. ui32DecimationRate:降采样率,用于将PDM信号转换为PCM信号。64倍降采样率意味着PDM时钟频率为PCM采样率的64倍。

  4. bHighPassEnable 和 ui32HighPassCutoff:高通滤波器的启用和截止频率设置。在该配置中,高通滤波器未启用。

  5. ePDMClkSpeed:PDM时钟速度,此处设置为6 MHz。

  6. bInvertI2SBCLK:是否反转I2S时钟,此处未启用。

  7. ePDMClkSource:时钟源选择,此处使用内部时钟。

  8. bPDMSampleDelay:PDM采样延迟,此处设置为0。

  9. bDataPacking:数据打包功能,用于优化数据传输效率。

  10. ePCMChannels:PCM通道选择,此处仅使用右声道。

  11. ui32GainChangeDelay:增益变化延迟,用于平滑增益调整。

  12. bI2SEnable:是否启用I2S接口,此处未启用。

  13. bSoftMute:软静音功能,此处未启用。

  14. bLRSwap:是否交换左右声道,此处未启用。

这些配置参数主要用于设置PDM模块的时钟、增益、降采样率、滤波器等功能,以适应不同的音频输入和处理需求。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐