我 在 ARM cortex 中找不到像 arm_fir_demate_q15这样的 FIR 抽取器函数。
如果有的话、您能帮助我找到它的位置吗? 但如果没有、我应该怎么做才能实现它?
使用简单抽取器算法的普通 FIR 在其最终工作时是否有效?
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.
我 在 ARM cortex 中找不到像 arm_fir_demate_q15这样的 FIR 抽取器函数。
如果有的话、您能帮助我找到它的位置吗? 但如果没有、我应该怎么做才能实现它?
使用简单抽取器算法的普通 FIR 在其最终工作时是否有效?
尊敬的 Ismail:
如果有的话,您能帮我找到它的位置吗?
根据 DSP FPU 库中包含的用户指南、没有 FIR 抽取函数。
但如果没有、我应该怎么做才能实现它?
使用简单抽取器算法的普通 FIR 在其最终工作时是否有效?
[/报价]您应该能够对 FIR 数据使用任何想要使用的抽取器函数、只要 数据采用所需的正确格式(我不熟悉这一点)。 如果您还有其他问题、敬请告知。
此致、
阿米尔·奥马尔
我是一名软件开发人员、几乎对控制算法一无所知、 还有一个传统设计实现了抽取器、通过两个滤波步骤将30KHz 采样率降至3.75KHz、我需要将其移植到我自己的 DSP。 第一个是抽取因子为4的 CIC 滤波器、第二个是 CIC 补偿解码器(FIR +除以2因子)。 本例稍微有所不同、实际采样率为5kHz、奈奎斯特频率约为1250Hz、因此我想采用十进制因数为4的 CIC 滤波器、它位于上述第一级至 FIR 滤波器的末端。 当然、抽取因子为2、而不是4。 但是、我不知道我的想法适合控制基础知识。
我还应该问一下、该 FIR 滤波器的截止频率遵循什么经验法则。 这是抗混叠滤波器吗?
我 分别见过 FIR16_calc 和 FIR16_alt_calc 函数。 它们之间有什么区别?
Ismail,
定点 DSP 库中的 fir16_alt_calc 使用替代寻址模式、支持实现更大(超过256个)的滤波器系数滤波器。
您会说您的采样频率是5kHz。 为避免混叠、您的模拟信号的最大带宽为2.5kHz。 让我们假设这是对的。 现在您将有一个采样速率为5kHz 的数字信号、其带宽限制为2.5kHz。 现在、对于您的设计、您希望将采样值降低4倍(而不是8倍、这是您之前的设计)。 这意味着您需要将采样率一直降低到1.25kHz。 为了能够做到这一点、您需要进一步将信号带宽减小到625Hz 以下。 如果您要分2个阶段完成此操作、即 filter_1 -> 2次下采样-> filter_2 -> 2次下采样。 那么 FILTER_1需要将信号带宽降至1.25kHz、以便将采样率降至2.5kHz。 然后、FILTER_2需要将带宽减小到625Hz、以便采样率可以降低到1.25kHz。 是的、FILTER_1和 FILTER_2都是低通抗混叠滤波器。 截止频率将如我所提到的那样。 取决于您的应用使这些滤波器抑制超出带宽分量的力度。
谢谢。
Sira
Hey Sira 感谢您提供信息、
然而, 我可能是错的,但似乎我的情况和你的方法之间有混淆。
采样频率为5kHz。
截止频率为1.25 KHz。
我认为可以按因数2应用简单的 CIC 滤波器。 这一个很简单、并且只包含积分器和 Comb、因此、数据会被下采样至2.5KHz、然后我想可以应用截止频率为1.25KHz 的 FIR 滤波器。
运行是否正常?
另一个问题 是、我在想是否可以使用 Python 构建此滤波器、提取滤波器的系数、然后直接或不直接在 DPS FIR 滤波器函数中使用。
Ismail,
我的问题更基本。 您会提到"采样频率为5kHz"。 我的问题是、信号的带宽是多少? 是2.5kHz 还是1.25kHz? 如果频率已经是1.25kHz、那么您可以在采样前直接进行2倍采样、而无需进行任何抗混叠滤波。
原理很简单-确保信号带宽小于采样频率的一半。 如果要降低采样频率、则需要减小带宽(通过抗混叠滤波器)。
如果您牢记这一原理、就可以根据您的系统需求进行设计。
是的、您可以在 MATLAB 或任何其他工具中设计滤波器、并使用 C2000 MCU 中的系数。 确保设计采用相同的格式(即本例中的定点32位 Q15值)以避免截断/舍入问题。
谢谢。
Sira
尊敬的 Sira:
很抱歉耽误你的时间。
我将更新下面的一些数字。
带宽是个好问题、我还没有记录或找到以5kHz 采样的数据集、因此无法回答。
我知道的唯一一点是、目前我们对高于50Hz 和低于1kHz 的信号感兴趣、这个间隔就是我们感兴趣的区域。
不过,现在我请你再次验证我。
如果我对在5kHz 频率下采样的数据应用1kHz 低通滤波器、这意味着它会使频率衰减到高于1kHz 的频率、并允许我们将采样率降低到2.5kHz、这仍然很好、因为仍然可以看到高达1kHz 的信号。
但是、这一决定应该在我们确信较高频率不会产生我们真正不希望的效果的情况下做出。
这可能是因为、首先分析数据会很好。 (过去针对不同设备进行了一些不同的训练,并已发现1kHz 在某种程度上是经验法则。)
最后、您说过、如果我的信号的"带宽"为1.25khz (旧值)、则无需设计低通滤波器、对吗?
关于我在上面分享的内容、能否核实一下?
希望他们是真的:)
Ismail,
如果我对在5kHz 频率下采样的数据应用1kHz 低通滤波器、这意味着它会使频率衰减到高于1kHz 的频率、并允许我们将采样率降低到2.5kHz、这仍然很好、因为仍然可以看到高达1kHz 的信号。
改正
最后、您说过、如果我的信号的"带宽"为1.25khz (旧值)、则无需设计低通滤波器、对吗?
正确、前提是您的信号在1.25kHz 以上无噪声。 另一方面、可能存在噪声+干扰等。因此、在实践中、在下采样之前应用抗混叠滤波器始终是一个好主意。
谢谢。
Sira