我是使用 dsps 和定点的新手,我真的需要知道: 1. 是将浮点数转换为 Q 格式的定点 dsp 还是设备在馈送 Dsp 之前会这样做?2. 谁指定要使用的 Q 格式。每个 DSP 是否带有指定的 Q_format 或程序员在他的代码中这样做。3. 我能知道如何在 C++ 中执行简单的 4 乘 4 定点矩阵乘法吗?
感谢期待
我是使用 dsps 和定点的新手,我真的需要知道: 1. 是将浮点数转换为 Q 格式的定点 dsp 还是设备在馈送 Dsp 之前会这样做?2. 谁指定要使用的 Q 格式。每个 DSP 是否带有指定的 Q_format 或程序员在他的代码中这样做。3. 我能知道如何在 C++ 中执行简单的 4 乘 4 定点矩阵乘法吗?
感谢期待
对于给定的 DSP,格式通常是固定的,例如,摩托罗拉 DSP 56k 系列使用24 bit signed fractional format (Q23)
.
定点实际上与普通整数相同,但有一个隐含的比例因子。对于大多数操作,这没有区别,例如加载/存储/添加/减去都以相同的方式工作,无论数据是整数还是定点。
然而,当涉及到乘法或除法时,需要考虑隐式缩放因子 - 通常在操作后会有一个偏移来纠正这一点。DSP 指令会自动处理此问题,而普通 CPU 必须明确执行此操作。
例如,当您进行 4x4 矩阵乘法时,您只需使用 DSP 的本机定点算术指令,所有缩放都会自动处理。