打印
[应用相关]

关于stm32 dsp库中的arm_recip_q31函数

[复制链接]
856|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
豌豆爹|  楼主 | 2024-7-29 11:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在STM32的dsp中有一个arm_recip_q31函数,应该是求倒数的,哪位大神知道这个函数怎么用?

使用特权

评论回复
沙发
kzlzqi| | 2024-7-29 15:01 | 只看该作者
arm_recip_q31 函数计算一个 Q31 固定点数的倒数,结果也以 Q31 格式返回。

使用特权

评论回复
板凳
kzlzqi| | 2024-7-29 15:01 | 只看该作者
arm_recip_q31 函数是 ARM CMSIS-DSP 库中的一个函数,用于计算 Q31 格式数据的倒数。Q31 格式是固定点格式的一种,通常用于低功耗嵌入式系统中的信号处理,以节省计算资源和存储。

使用特权

评论回复
地板
申小林一号| | 2024-7-29 22:53 | 只看该作者
感谢分享

使用特权

评论回复
5
申小林一号| | 2024-7-29 22:53 | 只看该作者
感谢分享

使用特权

评论回复
6
纠结的那些年| | 2024-7-31 11:55 | 只看该作者
arm_recip_q31 计算输入的 Q31 数据的倒数,并返回结果。这是特别适用于低功耗应用中的固定点运算,通常用在 DSP(数字信号处理)操作中。

使用特权

评论回复
7
纠结的那些年| | 2024-7-31 11:56 | 只看该作者
Q31 数据格式的范围是从 -2^31 到 2^31 - 1。在计算过程中要注意溢出问题。

使用特权

评论回复
8
AdaMaYun| | 2024-7-31 13:28 | 只看该作者
应该有相关的函数说明手册

使用特权

评论回复
9
七毛钱| | 2024-8-4 16:35 | 只看该作者
以下是一个简单的示例,演示如何使用 arm_recip_q31 函数:

c
#include "arm_math.h"  
  
int main() {  
    q31_t value = 0x40000000; // 这是一个 Q31 格式的数字,代表 2.0  
    q31_t recip;  
  
    // 计算倒数  
    arm_recip_q31(&value, &recip);  
  
    // 输出结果  
    printf("Reciprocal of 2.0 in Q31 format is: %d\n", recip);  
  
    return 0;  
}
在这个示例中,value 是我们要计算倒数的数字,recip 用于存储计算结果。arm_recip_q31 函数接受两个参数:一个是指向输入值的指针,另一个是指向输出结果的指针。

使用特权

评论回复
10
公羊子丹| | 2025-3-20 08:20 | 只看该作者
这个函数是求 Q31 格式的倒数的,输入一个 Q31 数,输出它的近似倒数,用的是查表+迭代的方法。

使用特权

评论回复
11
周半梅| | 2025-3-20 08:21 | 只看该作者
这个 arm_recip_q31 算出来的倒数是近似值,精度不是特别高,你对误差有什么要求吗?

使用特权

评论回复
12
帛灿灿| | 2025-3-20 08:22 | 只看该作者
你可以参考 CMSIS-DSP 的官方文档,arm_recip_q31 主要是为了提高计算效率,比直接用除法快。

使用特权

评论回复
13
童雨竹| | 2025-3-20 08:23 | 只看该作者
这个函数的输入范围要注意,0 是不能输入的,否则会导致异常,你可以自己加个检查避免问题。

使用特权

评论回复
14
万图| | 2025-3-20 08:24 | 只看该作者
你试过 arm_recip_q31 计算的结果和 1.0/x 直接转换 Q31 比较吗?看看误差大不大?

使用特权

评论回复
15
Wordsworth| | 2025-3-20 08:25 | 只看该作者
这个函数用的是牛顿迭代法,有时候精度不够的话,可以手动多跑几次迭代提高精度。

使用特权

评论回复
16
Bblythe| | 2025-3-20 08:26 | 只看该作者
你是在哪种场景下用这个函数?如果是滤波或者 FFT 计算,可能 arm_recip_q31 不是最好的选择。

使用特权

评论回复
17
Pulitzer| | 2025-3-20 08:27 | 只看该作者
你试试看 arm_recip_q31 计算出来的值,再和原值相乘,看看误差是多少?

使用特权

评论回复
18
Uriah| | 2025-3-20 08:28 | 只看该作者
这个函数的效率比普通浮点除法高不少,如果你的应用是对运算速度要求比较高的,还是挺合适的。

使用特权

评论回复
19
Clyde011| | 2025-3-20 08:29 | 只看该作者
如果 Q31 不太熟悉的话,可以用 q31_t 类型测试一下,这样不容易搞错数据格式。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

518

主题

2019

帖子

6

粉丝