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.

[参考译文] TAS5717:TAS5717 BIquad传输功能

Guru**** 2382680 points
Other Parts Discussed in Thread: TAS5717, TAS5782M
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/649805/tas5717-tas5717-biquad-transfer-function

部件号:TAS5717
主题中讨论的其他部件: TAS5782M

您好,

我需要使用TAS5717双四组棺材实施参数均衡器。 这意味着我需要动态计算双曲面,而不能使用您的TI工具。

能否告诉我放大器中使用的H (z)转换功能? TAS使用的函数似乎与筛选器计算中使用的通用H (z)=(b0 + B1* z[-1]+ B2 * z[-2])/(1 + A1 * z[-1]+ A2 * z[-2])不同。

谢谢

Petr

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

    您好,Petr:

    有关TAS设备上的BQ过滤器方程式,请参阅随附的文档。

    e2e.ti.com/.../0027.Biquad-Filters-Application-Note.pdf

    此致,

    郑少文

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

    非常感谢这份文件,它提供了很好的见解。 TI工具是这样计算系数的吗?
    我使用不同的系数计算公式(来自Bristow-Johnson Shephazu.GitHub.io/.../audio-eq-cookbook.html),但我想如果系数相应标准化,它们也应该起作用?

    我不理解标准化过程中的一件事。 在第25页的示例中,在步骤2中,由于b0 > 1,所有分子系数均按1/b0进行缩放。 数学似乎不合适。 b0 *(1/b0)如何产生1以外的结果? (在示例中,结果为0.9924645424)

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

    您好,Petr:

    很抱歉混淆了。 本文档基于1.23 格式(AIC编解码器),因此有一个标准化步骤可避免浮点过高。 但对于我们的开环音频放大器设备(例如 TAS5717),3.23 实际上 没有此步骤。 请忽略文档中的此步骤,直接 将计算系数转换为26位3.23 格式。 TAS5717   数据表第31页介绍了隐蔽方法。  但 该文档中的EQ系数计算公式适用于  TAS5717开环设备。 很抱歉 再次出现混淆。

    此致,

    郑少文     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Petr:
    如果您还有其他问题,请联系Plesase。 如果您没有其他问题,请帮助关闭它。
    此致,
    郑少文
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shawn您好!

    我现在已经使用您的帮助实施了我的筛选器,尽管我使用"食谱"公式,因为我的输入是FC,Gain和Q (而不是BW)。 我仍未关闭此主题的原因是,筛选器执行的筛选器操作似乎与预期的不同。 然而,它们并不像以前那样完全错误。 在发生砰砰声之前,噪音和放大器正在切换,这可能是由于数学运算中的超限。

    我使用以下计算(C):

       浮点b0,b1,b2,a0,a1, A2;

       float omega0 = 2* M_PI * freq / fs;
       float cos_o0 = cos (omega0);
       float alpha = sin (omega0)/(2 * Q);
       浮点A =粉末(10,增益/ 40);

       /*
       *我们的计算使用以下转换函数
       *        b0*x[n]+ B1*x[n-1]+ B2*x[n-2]
       * H (z)=------------------
       *        a0*y[n]+ a1*y[n-1]+ a2*y[n-2]
       */

       /*陷波滤波器*/
       B0 = B2 = 1;
       B1 = A1 =-2 * cos_o0;
       A0 = 1 +字母;
       A2 = 1 -α;

       /*归一为a0 == 1 (即创建5个系数)*/
       b0 /= a0;
       b1 /= a0;
       B2 /= a0;
       a1 /= a0;
       a2 /= a0;

       /*
       *转换为TI传输函数
       *        b0*x[n]+ 2*B1*x[n-1]+ B2*x[n-2]
       * H (z)=------------------
       *        y[n]- 2*A1*y[n-1]- A2*y[n-2]
       */
       B1 *= 0.5 ;
       A1 *=- 0.5 ;
       A2 =-A2;

       uINT32_t b0_323 = to3_23 (b0);
       UINT32_t B1_323 = TO3_23 (B1);
       UINT32_t B2_323 = TO3_23 (B2);
       UINT32_t A1_323 = TO3_23 (A1);
       UINT32_t A2_323 = TO3_23 (A2);

    这里是转换函数
    UINT32_t至3_23 (浮点数x)

       uINT32_t r;
       如果(x >= 0)
          R = x *(1<23);
       否则{
          r =(-x)*(1<23);
          r =-r;
       }

       返回r和0x03ffffffff;
    }


    然后,将按b0_323,b1_323,b2_323,a1_323,a2_323的顺序写入系数。
    这是否正确?

    此致
    Petr

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

    您好,Petr:

    感谢您的更新。 我之前上载的文档的1.3 部分介绍了缺口筛选计算公式。 在这里,我上传了另一个可用于模拟缺口筛选器响应的工具。 可以使用它为任何陷波过滤器设置生成寄存器配置。

    e2e.ti.com/.../notch_5F00_filter.xlsx

    此致,

    郑少文

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

    Shawn您好!

    非常感谢,最后一份文档帮了我们很多! 应用手册0027中所写的A1和B1不除以2。 因此,传输功能实际上是:

       /*
       * TI传输功能
       *        b0*x[n]+ B1*x[n-1]+ B2*x[n-2]
       * H (z)=------------------
       *        y[n]- a1*y[n-1]- a2*y[n-2]
       */

    即,仅A1和A2乘以-1。

    通过这种修改,过滤听起来就像做正确的事情。 当我更改EQ参数太快(EQ连接到UI)时,我只收到一些音频伪影,响亮的砰声和音频静音。
    我怀疑系数载荷是一个一个加载它们的。 遗憾的是,我使用的中间SW API不允许同时设置所有5个系数。 因此,可能会有一些过渡时期,其中一些是旧的,而有些则是新的。 这当然会导致计算错误。 是否有办法先写入这些缓冲区,然后告诉放大器使用新的缓冲区(某种双重缓冲)?

    此致
    Petr

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Petr:
    很高兴知道您的软件现在按预期工作。 遗憾的是,无法在TAS5717上同时写入系数,因为这是一个旧设备。 因此,在TAS5717上更改BQ系数时,需要将输出信号静音,以避免扬声器上的杂音。 对于较新的器件,例如TAS5782M,5个系数首先写入缓冲区,然后同时加载过滤器。 但TAS5717不支持此功能。
    此致,
    郑少文
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shawn您好!

    在更新两个字段之前,在EQ控制寄存器(0x50)中设置"EQ关"位(位7),然后将其清除为"EQ打开"是否足够?

    此致
    Petr
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Petr:
    这是一个很好的观点,您可以尝试一下。 但通常我们建议用户先将输出静音,然后对BQ分路器进行编程,以避免此设备产生意外噪音。
    此致,
    郑少文