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.

[参考译文] AFE032:数字滤波器系数-定制滤波器

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/907999/afe032-digital-filter-coefficients---custom-filter

器件型号:AFE032

您好吗、请描述 REG_COEFFx_BLOCK_x_XS 寄存器与两个通用数字滤波器规范格式系数之一之间的连接:

规范形式 I:   

Canonical Form II:

根据 R:中的表8 (SBOS669A、第30页)、我找到了图23的滤波器系数-块2的传递函数- CENELEC A 频带系数

> E2 <- ellip (3、1、20、95/200、"低"、 "z")
> E2
b 美元
[1] 0.2365224 0.368227 0.368227 0.2365224

A 美元
[1] 1.0000000 -0.3599084 0.7529883 -0.1835697

> plot (efr2$f、abs (efr2$h)、type="l"、xlim=c (30、210)、ylim=c (0、1)、 xlab="f (Hz)"、xaxp=c (30、210、6))

但无法找到滤波器 E2$a 和 E2$b 系数与寄存器值之间的关系

十六进制 十进制 D12符号 标准
寄存器 =hex.dEC (A10)/16 =if (B10>2048;B10-4096;B10) =C11/2048
1040 260 260 0、126953
0000 0 0 0
0CF0 207. 207. 0、101074
0CF0 207. 207. 0、101074
0000 0 0 0
06E0 110 110 0、053711
D180 3352. -744 -0、36328
0AC0 172. 172. 0、083984
0600 96 96 0、046875
0AC0 172. 172. 0、083984
2D20 722 722 0、352539
6960. 1686 1686 0、823242

谢谢、

Attila

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

    您好 Attila、

    我必须向您回复有关该调查的信息。 您是否尝试通过 Matlab 验证 z 域中的系数值? 如果我为您提供 s 域中的传输函数、您是否能够在 Z 域中生成极点和零点。 我不能在 z-Transforms 中使用数字滤波器设置?

    通常、我们将对传入的接收信号使用无源4极带通滤波器。  尽管 C2000能够通过 DSP 路径过滤传入信号、但我不使用 DSP 软件功能、因为我们通过硬件进行信号过滤和衰减。  

    最棒的

    Raymond

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

    您好、Raymond、

    非常感谢您的回复和关注。

    在我的第一篇文章中、我描述了在图22的块2中的 TX 路径中找到一个已实现的数字滤波器(AFE032数据表第27页、SBOS669A):

    实际上、我之前 在块1中发现了另一个已实现的数字滤波器:

    #图24。 块1
    > e <- ellip (2、1、20、400/600、"低"、 "z")
    >EFR <- freqz (e、fs=1200)
    plot (EFR$f、abs (EFR$h)、type="l"、xlim=c (100,600)、ylim=c (0、1)、 xlab="f (Hz)"、ylab="Magnite"、xaxp=c (100、600、5)、 mgp=c (1.8、0.6、0)、xaxs="i"、 yaxs="i"、col="red")
    >grid ()
    > e
    b 美元
    [1] 0.5101542 0.9562067 0.5101542
    A 美元
    [1] 1.0000000 0.7890983 0.4285881
    属性(、"类")
    [1]"Arma"

    此图不是数据表中的复制粘贴图、而是由 R 使用给定的滤波器参数单独绘制的:ellip (2、1、20、400/600、"低电平"、 "z"):

    但是、再说一次、我找不到这些数字滤波器系数(实现了 DSP 项中的滤波器)与表7中的建议值之间的对应关系。 第29页 ARIB 栏。

    使用这些滤波器、我刚才说明了数字滤波器 Canonical Form ai bi 参数(数字滤波器设计算法的输出)与 AFE032滤波器寄存器值之间的连接并不简单、实际上没有记录、 使 AFE 块1和块2中的定制硬件滤波器无法实现的原因是什么。

    我的目标不是在可以在 C2000上运行的 RX 路径中编写一个软件 DSP 滤波器、而是将 TX 路径中的 AFE032硬件 DSP 滤波器与块1或块2的推荐系数值和其他采样频率之外的其他寄存器值一起使用 Fs 400Hz 和 Fs 1200Hz、属于块1和块2的建议系数值。

    那么、我的问题是:如果我设计一个数字滤波器并获取 ai 和 bi Canonical 格式系数、那么我如何设置 REG_COEFFx_BLOCK_x_XS 寄存器值、以便在 AFE032 Block1或 Block 2硬件中实现该滤波器。

    请帮我解决这个问题。

    谢谢、

    Attila

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

    您好 Attila、

    问题:

    我的目标不是在可以在 C2000上运行的 RX 路径中编写一个软件 DSP 滤波器、而是  将 TX 路径中的 AFE032硬件 DSP 滤波器与块1或块2的推荐系数值和其他采样频率之外的其他寄存器值一起使用 Fs 400Hz 和 Fs 1200Hz、属于块1和块2的建议系数值。

    那么、我的问题是:如果我设计一个数字滤波器并获取 ai 和 bi Canonical 格式系数、那么我如何设置 REG_COEFFx_BLOCK_x_XS 寄存器值、以便在 AFE032 Block1或 Block 2硬件中实现该滤波器。

    在 AFE032数据表第26页的表5中、有 R/W 位控制 SPI 模式下的读取或写入。 您需要在 SPI 模式下按照16位命令 来读取/写入寄存器。  Data0-DATA7、8位数据是 SPI 数据被定义的地方。 如果位15=1=READ、则返回的 DATA0-DATA7是内容。 如果位15=0=WRITE、则将数据以十六进制格式放置在 DATA0-DATA7中、该数据将写入定义的寄存器地址 ADDR0-Addr6。 AFE032中大约有75个寄存器(已发布)。  

    数据表的表13中显示了数据电阻器内存映射。 如果该寄存器指定为 R、则它是只读寄存器。 如果指定为 R/W、则设计为使用表5中定义的 SPI 命令执行这两种操作。  

    从第39页-第60页定义了寄存器的内容/定义、位和结构。 它们都是8位长度。 这些寄存器控制 AFE032 IC 中定义的全部特性。  

    从第51页-第60页 定义了如何读取或写入 Reg_Coeff 块内容(例如、表39)。 您可以读取整个寄存器的内容。 但是、如果 将寄存器的一部分定义为只读、则不能对其进行写操作。 同样、R/W 意味着您可以根据表5中定义的 SPI 命令执行读取和写入操作。  

    如果这不清楚,我可以作进一步的解释。 请发表问题、我将回答。  

    如果您仍有兴趣了解、我仍在处理您之前的查询。 我必须找到从事该项目的工程师、因为他们中的许多人不再在当前团队中。 您的问题非常具体、我对 z 变换的工作原理非常了解、但我不知道如何将拉普拉斯 s 域变换为 z 域、反之亦然。 当然、Matlab 在这方面非常专业。  

    最棒的

    Raymond  

     

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

    尊敬的 Raymond:

    非常感谢您的回复。

    对于我来说、您编写的所有内容都是明确的、涉及 SPI 通信以及如何写入 REG_COEFFx_BLOCK_x_XS 寄存器。 我的问题是 、当我有一个定制设计的具有 ai 和 bi 系数的 DSP 滤波器时、应该如何写入 REG_COEFFx_BLOCK_x_XS 寄存器。 也就是说、如何转换滤波器等  

    ellip (2、1、20、400/600、"低"、 "z")  

    电容器

    b 美元
    [1] 0.5101542 0.9562067 0.5101542
    A 美元
    [1] 1.0000000 0.7890983 0.4285881

    到 REG_COEFFx_BLOCK_x_XS 值。 更详细地介绍:如何从 上面列出的六个实值数字中获得七个四位十六进制数、这些数将被写入 REG_COEFFx_BLOCK_x_XS。 它的算法是什么?

    感谢您在 Z 和拉普拉斯变换问题上所做的努力。 我知道这些、因此我不需要滤波器设计方面的帮助。 我只需要帮助-正如我在上面提到的-如何将生成的数字滤波器转换为 REG_COEFFx_BLOCK_x_XS 值。

    感谢您的努力和致以最诚挚的问候、

    Attila

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

    您好 Attila、

    是的、我正在研究如何将浮点转换为寄存器中的十六进制数。   

    您能否通过 E2E 向我发送朋友请求、以便我们可以在私人电子邮件中讨论该信息? 此外、 您请求的信息可能需要几天以上的时间。  

    一旦我们通过 E2E 私人消息建立连接、如果您认为此公开查询正常、我将关闭此公开查询。  

    最棒的

    Raymond