工具/软件:
尊敬的专家:
当我尝试通过 amixer 增加编解码器增益时、背景噪声也会明显变大、当音量很大时会发生失真。
因此、我想了解如何增加编解码器增益、同时避免增加背景噪声并防止音频失真
谢谢!
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.
您好、
我假设您讨论的是 ADC 增益、而不是 DAC、但如果有问题、请告诉我。 通常、如果增益(或音量)增加、则会统一提高所有输入的信号电平、包括背景噪声和预期主题电平、因此我们会看到噪声电平增加以 dB 为单位的增益量和主题电平、直到超过信号上限、我们会看到削波、这被听到为失真。 为了帮助缓解这种情况、我首先建议您确保麦克风尽可能靠近受试者、朝向正确的方向、以避免在声学空间中产生尽可能多的背景噪音。 接下来、我们可以调整编解码器输入增益。 我们的许多采用 ADC 的器件都具有一项功能、包括称为 AGC 或自动增益控制的 TAC5111。 使用 AGC、您可以设置一个始终需要受试者关注的阈值电平、该器件将增大增益、直到输入音量与预期的 dBFS 匹配、并在超过该阈值时减小增益、以避免削波。 您还可以设置噪声阈值、这是输入信号被视为噪声且增益会降低的电平。 当信号高于此噪声阈值时、它将激活此自动增益增加、因此您仍会听到噪声水平增加的声音。 有关 TAC5111 中 AGC 的说明、请查看数据表中的第 7.3.9.1.9 节。 如果您需要更清楚地说明、请告诉我。
此致、
Mir
尊敬的 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
您好、 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
尊敬的 BERT:
观察更新后的音频信号、许多噪声伪影已经消除、但仍然保留了很多、因为任何高于–55db 噪声阈值的噪声都会被最大增益 21.5dB 放大。 当放大的本底噪声高达–25db 时、您的实际本底噪声大约为–46dB。
我将尝试增加本底噪声来消除更多噪声、可能一直到–40dB、或者可能–45dB 将起作用。 此外、提高目标电平和降低最大增益有助于进一步区分噪声。
在不知道确切噪声频率的情况下、双二阶滤波器很难实现、并会影响预期的输入信号。
如果需要进一步的帮助或解释、我们可以关闭此主题并召开会议。
此致、
Garret
尊敬的 Holly:
对于硬件、我建议将未使用的输入交流耦合至 GND。
BERT、
目标电平是 AGC 尝试保持输入的电平、最大增益是其将应用于该电平的最大放大倍数。 通过增加目标电平、您可以将预期信号放大到更高的 dB 电平、同时噪声将保持不变(因为它已经被最大增益放大)。 此外、预期信号需要较小的增益才能达到目标电平、因此增大最大增益可能只会增加噪声。
但是、扬声器距离麦克风越远、预期的信号将更接近本底噪声。 在这种情况下、您必须增加最大增益才能使其更接近目标电平。
此致、
Garret
尊敬的 BERT:
这里还有一个注意事项、您听到的扬声器讲话背景噪音不是编解码器问题、而是麦克风/房间的声音问题。 在任何基于麦克风的系统中、除非您处于消声室中、否则都会出现背景噪声。 这种背景噪音会随着预期的语音而放大、因为两种声音都存在于房间中。 我们不能只是过滤掉它、通常这种背景噪声也在人类语音范围内。 因此、与扬声器相比、为了减少信号中的背景噪音、您可以将麦克风移到 更靠近主题的位置、或者获得一个更具方向性的麦克风、以便它在空间中占用更小的物理范围并面向扬声器。 您也可以尝试使用一些降噪算法、但这是一个 DSP 问题、通常需要大量的实时处理能力、需要一台计算机。 我们不支持我们的音频编解码器上的降噪算法。 我们的编解码器只将模拟麦克风信号转换为数字数据、因此如果麦克风信号有噪声、数字域中将出现相同的噪声。 我们的 AGC 具有噪声门功能、在没有 主题时对信号进行门控、但它无法与语音同时消除背景中的噪声。
此致、
Mir