主题中讨论的其他器件:MSPM0L1306
CCS IQMath 1D 内插
使用 CCS 12.2.0
mspm0_SDK_0_57_00_00_eng
是否有一种使用 IQMath 或其他库进行1D 内插的简单方法?
谢谢。
黄昌河
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 IQMath 1D 内插
使用 CCS 12.2.0
mspm0_SDK_0_57_00_00_eng
是否有一种使用 IQMath 或其他库进行1D 内插的简单方法?
谢谢。
黄昌河
尊敬的 Chang He:
IQmath 库利用基本数学函数、允许快速浮点计算。 如果您想执行某种线性内插、则必须创建公式并利用 IQmath 库函数来提高处理速度。
例如、要基于2个点获得斜率、可以使用公式(Y2 - Y1)/(X2 - X1)并使用 IQmath 加速浮点计算。
//Initialize variables, using global type for example _iq qY2, qY1, qX2, qX1; qY2 = _IQ(2.5); qY1 = _IQ(1.0); qX2 = _IQ(4.5); qX1 = _IQ(3.0); _iq deltaY = qY2 - qY1; _iq deltaX = qX2 - qX1; _iq slope = _IQdiv(deltaY, deltaX); _iq intercept = qY2 - _IQmpy(slope, qX2);
此致、
Luke
Luke、您好:
感谢您的快速回复。
我需要创建一个包含32个元素的数组、即32 X 的表和32 Y 的表、并从某个 x 进行线性内插以获得 y 值、类似于 用于计算 正弦函数的 IQMath。 这用于传感器校准。
我不熟悉 TI MCU。 MSPM0L1306是一款非常强大的硬件、但在 IQMath 示例中、我找不到如何处理数组函数。
在诸如 NXP KEA8系列的其他 MCU 中、它们具有库函数、使该计算非常简单。
为了使用 您提供的2元素数组示例、需要执行以下步骤:
首先计算表示执行线性插值的间隔的索引。
第二个计算插值间隔内的横坐标偏移。
最后、通过计算间隔开始和结束时从表中读取的序数之间的线性内插来计算内插值。
请告诉我是否正确、或者是否有更简单的方法 。
好的
黄昌河