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.

[参考译文] CCS/TMS320C6748:McASP staterware 上的 FIR 滤波器(如何筛选 rxBuf 值)

Guru**** 2540720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/601818/ccs-tms320c6748-fir-filter-on-mcasp-staterware-how-to-filter-rxbuf-values

器件型号:TMS320C6748

工具/软件:Code Composer Studio

您好!

我正在尝试在 LCDK6748 Starterware McASP 上实施 FIR 滤波器。 在 e2e 论坛上、我已经浏览过每个可能的主题3个月、但我仍然无法在 McASPPlayBk.c 上实施带通滤波器 我在一些主题中看到、这是因为 I2S 协议?

我知道 rxBufPtr 一次获取左右两个通道,而原始 memcpy()函数将其值直接复制到 txBufPtr。

我已经尝试了我可以在这里找到的每一个解决方案或帮助、但仍然无法筛选出任何内容...

我已经尝试将 rxBufPtr[lastFullRxBuf]复制到本地缓冲区、然后 FIR 对其进行过滤、将结果(另一个缓冲区)复制到 txBufPtr[lastSentTxBuf]、它会进行编译、但我听到的只是噪声。

我缺少了一些东西,再加上我在编程/实施方面缺乏技能,所以任何帮助都是非常受欢迎的:)

提前感谢、

Loane

PS:McASP 本身工作正常

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

    Loane、

    您提供的信息很难准确地说明正在发生什么情况。  如果您尝试使用 DSPLib FIR 滤波器、则需要在立体声音频数据逐样本步执行时对其进行去交错处理。  否则、请确保一次单步执行两个缓冲区采样(即仅过滤奇数或偶数采样)。

    一些尝试的事情和帮助我的事情:

    -当复制到本地缓冲区时,请确保在添加处理前传递音频。

    -留意数据类型。  PCM 数据是一个有符号整数、示例中的缓冲区是无符号的(我认为"void *"…… 已经有一段时间了)。  这可能会导致一些奇数失真。

    -在示波器上查看波形以尝试辨别数据发生了什么会很有帮助。  这对我来说是最大的帮助之一。

    -请不要忘记、滤波器需要一些历史记录(以前的输入样本)才能工作。  时间为零时的样本需要之前的"n"个样本进行计算、其中"n"是脉冲响应的长度(或滤波器系数的数量)。

    复制方法应该起作用,但您可能需要尝试复制到较大的(r)缓冲区。  例如、我过去使用了4096个采样长缓冲器、像循环缓冲器一样以1024个采样块复制数据。  使用单独的读取和写入偏移量来复制到该缓冲区和从该缓冲区复制到该缓冲区中、并在滤波器处理数据后的某个点进行读取。

    希望这对您有所帮助、

    Jeff

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

    我n`t 使用 Starterware 在该器件上提供带通滤波器示例、但我们在 TI 参考设计中使用了高通和低通滤波器以及带通滤波器实现了音频均衡器、您可以在此处参考:
    www.ti.com/.../tidubq2.pdf

    您可以在此处参考代码:
    git.ti.com/.../master

    使用 Starterware、 我不确定音频采样是单个 TDM 插槽上的16位打包数据还是2个插槽上的32位数据、但正如 Jeff 提到的、去交错、然后应用滤波器、然后将其以正确的格式返回接收端、这正是您所需要的 以便正确实施滤波。

    测试这种情况的一种好方法是使用 Audacity 等实用程序生成已知的立体声音频数据、如正弦波、方波、然后将其传递到 LCDK 并查看输入数据的显示方式。 该软件允许您仅生成左通道数据或右通道数据(如果有用)。

    此致、
    Rahul