DSP库包括以下几个系列:
BasicMathFunctions
基本数学函数:提供浮点数的各种基本运算函数,如向量加减乘除等运算。
CommonTables
arm_common_tables.c 文件提供位翻转或相关参数表。
ComplexMathFunctions
复杂数学功能,如向量处理,求模运算的。
ControllerFunctions
控制功能函数。包括正弦余弦,PID电机控制,矢量 Clarke变换,矢量 Clarke 逆变换等。
FastMathFunctions
快速数学功能函数。提供了一种快速的近似正弦,余弦和平方根等相比 CMSIS 计算库要快
的数学函数。
FilteringFunctions
滤波函数功能,主要为 FIR和 LMS(最小均方根)等滤波函数。
MatrixFunctions
矩阵处理函数。包括矩阵加法、矩阵初始化、矩阵反、矩阵乘法、矩阵规模、矩阵减法、
矩阵转置等函数。
StatisticsFunctions
统计功能函数。如求平均值、最大值、最小值、计算均方根 RMS、计算方差/标准差等。
SupportFunctions
支持功能函数,如数据拷贝,Q格式和浮点格式相互转换,Q 任意格式相互转换。
TransformFunctions
变换功能。包括复数 FFT(CFFT)/复数 FFT 逆运算(CIFFT)、实数 FFT(RFFT)/实数
FFT 逆运算(RIFFT)、和 DCT(离散余弦变换)和配套的初始化函数。
下面测试一下复数求模运算。函数定义如下:
void arm_cmplx_mag_f32(float32_t * pSrc,float32_t * pDst, uint32_t numSamples)
参数定义:
*pSrcA points to the first input vector
*pSrcB points to the second input vector
numSamples number of complex samples in each vector
*realResult real part of the result returned here
*imagResult imaginary part of the result returned here
其中pSrc代表输入复数数据(第一个数实部、第一个数虚部、……)
pDst代表结果输出(第一个数模值、第二个数模值……)
numSamples代表需要做几个复数求模数据个数
复数数据是信号的FFT结果,因为这些在实际项目中也会经常使用FFT求模。
在Keil中用arm_cmplx_mag_f32进行计算和data_abs进行对比,把结果通过debug printf输出,可以看出结果相当精确。
将KEIL计算结果发送到串口,然后和Matlab中数据进行对比。