This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TAC5111:如何消除背景噪声并避免音频失真

Guru**** 2470860 points
Other Parts Discussed in Thread: TAC5111

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1547844/tac5111-how-to-eliminate-background-noise-and-avoid-audio-distortion

器件型号:TAC5111


工具/软件:

尊敬的专家:

当我尝试通过 amixer 增加编解码器增益时、背景噪声也会明显变大、当音量很大时会发生失真。

因此、我想了解如何增加编解码器增益、同时避免增加背景噪声并防止音频失真

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我假设您讨论的是 ADC 增益、而不是 DAC、但如果有问题、请告诉我。 通常、如果增益(或音量)增加、则会统一提高所有输入的信号电平、包括背景噪声和预期主题电平、因此我们会看到噪声电平增加以 dB 为单位的增益量和主题电平、直到超过信号上限、我们会看到削波、这被听到为失真。 为了帮助缓解这种情况、我首先建议您确保麦克风尽可能靠近受试者、朝向正确的方向、以避免在声学空间中产生尽可能多的背景噪音。 接下来、我们可以调整编解码器输入增益。 我们的许多采用 ADC 的器件都具有一项功能、包括称为 AGC 或自动增益控制的 TAC5111。 使用 AGC、您可以设置一个始终需要受试者关注的阈值电平、该器件将增大增益、直到输入音量与预期的 dBFS 匹配、并在超过该阈值时减小增益、以避免削波。 您还可以设置噪声阈值、这是输入信号被视为噪声且增益会降低的电平。 当信号高于此噪声阈值时、它将激活此自动增益增加、因此您仍会听到噪声水平增加的声音。 有关 TAC5111 中 AGC 的说明、请查看数据表中的第 7.3.9.1.9 节。 如果您需要更清楚地说明、请告诉我。

    此致、

    Mir

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jeffres

    是的、我讨论的是 ADC 增益。   为 AGC 设置一个阈值 、该阈值将均匀地提高所有输入(包括背景噪声)的信号电平、对吧?

     是否有办法过滤背景噪音?  例如、通过配置寄存器来滤除特定频率下的噪声

    此致

    基因

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Gene:

    是的、如果噪声处于特定频率、您可以在每个 ADC 通道上实现多达 3 个双二阶滤波器。 您可以在以下应用手册中详细了解双二阶滤波器: www.ti.com/lit/ab/slaaeh6/slaaeh6.pdf

    此致、
    Mir

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jeffres

      我发现 tac5111  双二阶滤波器无效、 我使用 TIBQ 计算器工具 生成 系数 并写入寄存器、请帮助进行检查  

    以下是通道 1 的命令;

    i2cset -f -y 4 0x50 0x00 0x08
    #N0
    i2cset -f -y 4 0x50 0x08 0x25
    i2cset -f -y 4 0x50 0x09 0x7C
    i2cset -f -y 4 0x50 0x0A 0xEC
    i2cset -f -y 4 0x50 0x0B 0xB2
    #N1
    i2cset -f -y 4 0x50 0x0C 0x25
    i2cset -f -y 4 0x50 0x0D 0x7C
    i2cset -f -y 4 0x50 0x0E 0xEC
    i2cset -f -y 4 0x50 0x0F 0xB2
    N2
    i2cset -f -y 4 0x50 0x10 0x25
    i2cset -f -y 4 0x50 0x11 0x7C
    i2cset -f -y 4 0x50 0x12 0xEC
    i2cset -f -y 4 0x50 0x13 0xB2

    #D1
    i2cset -f -y 4 0x50 0x14 0x00
    i2cset -f -y 4 0x50 0x15 0x00
    i2cset -f -y 4 0x50 0x16 0x00
    i2cset -f -y 4 0x50 0x17 0x00

    #d2
    i2cset -f -y 4 0x50 0x18 0xEA
    i2cset -f -y 4 0x50 0x19 0x0C
    i2cset -f -y 4 0x50 0x1A 0x4D
    i2cset -f -y 4 0x50 0x1B 0x35

    #N0
    i2cset -f -y 4 0x50 0x58 0x6C
    i2cset -f -y 4 0x50 0x59 0x58
    i2cset -f -y 4 0x50 0x5A 0x2E
    i2cset -f -y 4 0x50 0x5B 0xEC
    #N1
    i2cset -f -y 4 0x50 0x5C 0x93
    i2cset -f -y 4 0x50 0x5D 0xA7
    i2cset -f -y 4 0x50 0x5E 0xD1
    i2cset -f -y 4 0x50 0x5F 0x14
    N2
    i2cset -f -y 4 0x50 0x60 0x6c
    i2cset -f -y 4 0x50 0x61 0x58
    i2cset -f -y 4 0x50 0x62 0x2E
    i2cset -f -y 4 0x50 0x63 0xEC

    #D1
    i2cset -f -y 4 0x50 0x64 0x6A
    i2cset -f -y 4 0x50 0x65 0xD3
    i2cset -f -y 4 0x50 0x66 0xA3
    i2cset -f -y 4 0x50 0x67 0x9A

    #d2
    i2cset -f -y 4 0x50 0x68 0xA4
    i2cset -f -y 4 0x50 0x69 0x46
    i2cset -f -y 4 0x50 0x6A 0x8B
    i2cset -f -y 4 0x50 0x6B 0x81

    i2cset -f -y 4 0x50 0x00 0x00
    i2cset -f -y 4 0x50 0x72 0x38

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 BERT:

    尝试使用 I2C 8 位目标地址 0xa0 而非 7 位 0x50 再次将双二阶系数写入器件。 此格式包括 7 位器件地址和 R/W 位。

    此致、

    Garret

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Garret

     我们使用 Linux 系统。 我不知道你是否学习 Linux i2c,Linux 会 自动在驱动程序中填充读/写位。 我 还 会使用 i2cget 命令从寄存器读取值、这与写入值也是相同的。 请帮助再次检查  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Garret

       对不起错误的结果、再次验证后,实际上 tac5111 双二阶滤波器是生效的。 但我们发现 双二阶滤波器对背景噪声没有太大影响、 正常的语音和 背景噪声增益同时降低或增加、可能是我们使用的方式不正确。 那么您有什么使用 双二阶滤波器的建议吗?

      n‘t 我们没有 频谱分析仪、所以我们不知道噪声 频率、我们也没有太多的噪声抑制经验,根据您的经验, 对于这种情况、您知道 电路中的常见噪声吗?  常用的过滤器类型是什么?   

      期待您的经验指导、谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 BERT:

    您是否可以附加信号的音频样本或示波器截图? 如果您无法查看频谱、我们可以通过音频示例以数字方式查看频谱。 否则、很难提供帮助、因为我们不确定您所遇到的噪音的性质。

    这种噪音可能出现在几个阶段。 首先、可能是您的麦克风距离音频源太远、或者您正在录制的房间中的噪音太大。 在这种情况下、请尝试降低房间内的噪声并将麦克风放置在更靠近的位置。 其次、如果是单端信号、或差分信号且电线未缠绕在一起、则可能会注入噪声。 我建议在差分输入模式下使用 ADC、并将+导线和 — 导线相互缠绕,以便消除长导线拾取的任何噪声。 接下来、确保您的器件电源适当去耦、这意味着在电路板上芯片附近包含建议的去耦电容器。 器件有噪声的电源可能会在音频信号上引入噪声。 您使用的是自己的电路板还是 EVM? 如果您自己的电路板、请发送原理图、我们可以对其进行审阅。 我还想了解您使用的 I2C 命令、不仅是滤波器寄存器、还包括用于配置芯片的所有寄存器。 请告诉我这一点。

    此致、
    Mir

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jeffres

    我有附加音频样本,编解码器寄存器值, 原理图 文件在下面的 docx 文件,请帮助检查它.  由于客户需要、我们必须  对 ADC 使用单端模式。

    e2e.ti.com/.../to_2D00_TI.docx

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    很抱歉、我明天会联系您。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    从这里的音频文件中、我们可以看到信号被削波、因此增益过高。 我在寄存器 0x52 中看到、您已在 ADC CH1 上设置为 29.5dB 的数字增益、我可以看到在此配置下禁用了 AGC。

    如果我们放大并将其设置为 dB、我们可以看到本底噪声约为–25dB、如果不存在 29.5dB 的增益、则本底噪声 约为–55dB。 因此、您可以将 AGC 设置为具有一个约为–55dB 且目标电平为~–12dB 左右的噪声门、因此、当检测到信号超过本底噪声时、它将达到比削波增益值额外 30dB 的最大增益。 我建议使用 PPC3 对 AGC 进行编程。  

    使用 PPC3 在此处配置 AGC:

    此致、
    Mir

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Jeffres  

      我已经按照您所说的 AGC、进行了操作、但仍然有很强的 背景噪声。 我在下面的 DOCX 文件中附加记录样本,请帮助检查、 寄存器 0x52 ,我设置它 0 dB

    e2e.ti.com/.../to_5F00_ti_5F00_0813.docx

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

      ?我们可以使用 tac5111 双二阶滤波器过滤背景噪声  、即使我们打开 AGC、背景噪声仍然随着正常语音的增加而增加?语音和噪声重叠

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 BERT:

    观察更新后的音频信号、许多噪声伪影已经消除、但仍然保留了很多、因为任何高于–55db 噪声阈值的噪声都会被最大增益 21.5dB 放大。 当放大的本底噪声高达–25db 时、您的实际本底噪声大约为–46dB。

    我将尝试增加本底噪声来消除更多噪声、可能一直到–40dB、或者可能–45dB 将起作用。 此外、提高目标电平和降低最大增益有助于进一步区分噪声。

    在不知道确切噪声频率的情况下、双二阶滤波器很难实现、并会影响预期的输入信号。

    如果需要进一步的帮助或解释、我们可以关闭此主题并召开会议。

    此致、

    Garret

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Garret

    我们之前提供了原理图。 您能看一下硬件的任何改进吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Garret

     将 本底噪声设置为  –40dB 后,确实 没有 背景噪音时不说话, 但说话时仍有少许背景噪音, 特别是 当 扬声器远离麦克风时,背景噪音更大。  如何解决这类问题?  

    此外、提高目标电平和降低最大增益有助于进一步区分噪声。  

    对于您的上述评论、 我已经对其进行了测试、但不能区分噪音、您能解释更多吗?  为什么提高目标电平和降低最大增益有助于 区分噪声?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Holly:

    对于硬件、我建议将未使用的输入交流耦合至 GND。

    BERT、

    目标电平是 AGC 尝试保持输入的电平、最大增益是其将应用于该电平的最大放大倍数。 通过增加目标电平、您可以将预期信号放大到更高的 dB 电平、同时噪声将保持不变(因为它已经被最大增益放大)。 此外、预期信号需要较小的增益才能达到目标电平、因此增大最大增益可能只会增加噪声。

    但是、扬声器距离麦克风越远、预期的信号将更接近本底噪声。 在这种情况下、您必须增加最大增益才能使其更接近目标电平。

    此致、

    Garret

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 BERT:

    这里还有一个注意事项、您听到的扬声器讲话背景噪音不是编解码器问题、而是麦克风/房间的声音问题。 在任何基于麦克风的系统中、除非您处于消声室中、否则都会出现背景噪声。 这种背景噪音会随着预期的语音而放大、因为两种声音都存在于房间中。 我们不能只是过滤掉它、通常这种背景噪声也在人类语音范围内。 因此、与扬声器相比、为了减少信号中的背景噪音、您可以将麦克风移到 更靠近主题的位置、或者获得一个更具方向性的麦克风、以便它在空间中占用更小的物理范围并面向扬声器。 您也可以尝试使用一些降噪算法、但这是一个 DSP 问题、通常需要大量的实时处理能力、需要一台计算机。 我们不支持我们的音频编解码器上的降噪算法。 我们的编解码器只将模拟麦克风信号转换为数字数据、因此如果麦克风信号有噪声、数字域中将出现相同的噪声。 我们的 AGC 具有噪声门功能、在没有 主题时对信号进行门控、但它无法与语音同时消除背景中的噪声。

    此致、
    Mir

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jeffres &  Garret

     明白了、 非常感谢