Skip to main content
欢迎来到PAWPAW技术文档网站了解更多信息

示例应用

提供了几个示例应用程序,以通过实际的简单代码示例演示如何使用 lib_xcore_math 的 API。

构建示例

在配置了 CMake 项目(使用 -DDEV_LIB_XCORE_MATH=1 选项)之后,可以在构建目录中使用 make lib_xcore_math-examples 命令构建所有示例。可以使用 make EXAMPLE_NAME 命令构建单个示例,其中 EXAMPLE_NAME 是要构建的示例名称。

运行示例

要在 XCORE-AI-EXPLORER 开发板上运行示例 EXAMPLE_NAME,请在 CMake 构建目录中运行以下命令(在构建之后):

xrun --xscope example/EXAMPLE_NAME/EXAMPLE_NAME.xe

例如,要运行 bfp_demo 示例,请使用以下命令:

xrun --xscope example/bfp_demo/bfp_demo.xe

要在 xCore 模拟器上运行示例,请使用以下命令:

xsim example/EXAMPLE_NAME/EXAMPLE_NAME.xe

bfp_demo

该应用程序的目的是通过示例演示如何使用 lib_xcore_math 的块浮点数 API 中的算术函数。

在该示例中,分配了三个32位的块浮点数向量,并初始化并填充了随机数据。然后,使用这些向量作为输入和/或输出应用了几个块浮点数操作。

该示例仅演示了实数32位块浮点数函数(即名称为 bfp_s32_* 的函数)。实数16位(bfp_s16_*)、复数32位(bfp_complex_s32_*)和复数16位(bfp_complex_s16_*)函数都使用类似的命名约定。

vect_demo

该应用程序的目的是通过示例演示如何使用 lib_xcore_math 的较低级别向量 API 中的算术函数。

通常,低级别算术 API 是该库中以 vect_* 开头的函数,例如 vect_s32_mul() 用于对32位向量进行逐元素乘法,vect_complex_s16_scale() 用于将复数16位向量乘以复数标量。

我们假设使用低级别 API 是因为需要一些与高级块浮点数 API 的默认行为不同的行为。鉴于此,该示例首先介绍如何实现与 BFP API 相似的行为,然后介绍如何修改该行为的方法。

fft_demo

该应用程序的目的是通过示例演示如何使用 lib_xcore_math 的块浮点数 API 中的 FFT 函数。

在这个示例中,我们演示了 BFP API 提供的每个正向和逆向 FFT。

filter_demo

该应用程序的目的是通过示例演示如何使用 lib_xcore_math 的滤波向量 API 中的函数。

滤波 API 目前支持三种不同的滤波器类型:

  • 32位 FIR 滤波器
  • 16位 FIR 滤波器
  • 32位 Biquad 滤波器

该示例应用程序提供了如何使用每种滤波器类型的简单演示。