TI论坛
直播中

djelje

9年用户 1092经验值
擅长:光电显示
私信 关注
[问答]

用C5509A和AIC23进行音频采集实验,为什么输出来的没有声音全是噪声?


  • 我用C5509A和AIC23进行音频采集实验 初始化是DSP通过IIC总线将配置命令发送给AIC23  我采样率设置的是44.1K
    具体音频采集存储和播放的代码如下   请高手工程师帮忙解答下吧 为什么输出来的没有声音全是噪声 是不是采样点数的问题 不太明白 万分感谢!

    while(1)
    {
    for(i=0;i<8000;i++)
    {
    while (!ReadMask(pMCBSP0 -> spcr2, SPCR2_XRDY)); // 等待McBSP0准备好

    input=Read(pMCBSP0->ddr2); // 读取左右声道的数据
    input=Read(pMCBSP0->ddr1); // 因为耳机输入左右声道相同,所以读两次即可
    // far_poke(lpWork++,nWork); // 保存到缓冲区

    }
    ///
    if(8000==i) i=0;
    for(j=0;j<8000;j++)
    {
    output[j]=input;
    Write(pMCBSP0->dxr2,output[j]); // 送数据到McBSP0
    Write(pMCBSP0->dxr1,output[j]);
    } // 声音输出由AIC23完成

                                                               

回帖(4)

关睿

2024-11-6 14:22:32
可以做个简单的实验将DIN和DOUT短接,看DAC输出是否正常,来确认下AIC23 DAC部分的设置是否有问题。如果设置没有问题,那么原因应该是在DSP端了。
 
举报

倪梁靓

2024-11-6 14:22:51
你看下你的保存的数据的格式与你采集的数据的格式是否一致。比如你采用的是CHAR型的,但是保存成Float或者Int那么就会出问题
举报

刘嵘

2024-11-6 14:22:59
   你的保存的中断时间和你的采样率一致吗?还有就是你加大你保存的数据试下。
            你可以用正弦波作试验,采集进去后用数字的方式看是不是正弦波的信号,确保采集的数据没错。。
举报

h1654155275.5669

2024-11-7 09:24:01
根据您提供的代码和描述,您在使用C5509A和AIC23进行音频采集实验时遇到了输出全是噪声的问题。以下是一些可能的原因和解决方案:

1. 采样率设置问题:您提到采样率设置为44.1K,但是您需要确保您的音频输入设备(如麦克风)和输出设备(如耳机)支持这个采样率。如果不支持,可能会导致噪声。您可以尝试降低采样率,例如设置为22.05K或11.025K,看看是否有改善。

2. 音频输入信号问题:请检查您的音频输入设备(如麦克风)是否正常工作,以及连接是否正确。如果输入信号有问题,可能会导致输出噪声。

3. 音频输出信号问题:请检查您的音频输出设备(如耳机)是否正常工作,以及连接是否正确。如果输出信号有问题,可能会导致输出噪声。

4. 代码问题:您的代码中有一些可能的问题。首先,您的循环变量i应该设置为16000(44.1K采样率下的样本数),而不是8000。其次,您的代码中缺少了对左右声道数据的处理。以下是修改后的代码:

```c
while(1){
    for(i=0;i<16000;i++){
        while (!ReadMask(pMCBSP0 -> spcr2, SPCR2_XRDY)); // 等待McBSP0准备好
        input=Read(pMCBSP0->ddr2); // 读取左声道的数据
        while (!ReadMask(pMCBSP0 -> spcr2, SPCR2_XRDY)); // 等待McBSP0准备好
        input=Read(pMCBSP0->ddr1); // 读取右声道的数据
        // far_po ...
    }
}
```

5. 硬件问题:如果以上方法都无法解决问题,可能是硬件问题。请检查您的C5509A和AIC23芯片是否正常工作,以及连接是否正确。

希望以上建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们进一步分析。
举报

更多回帖

×
20
完善资料,
赚取积分