我想使用苹果的加速功能来有效地剪辑音频信号。如果信号大于1或小于-1,我希望它等于1或-1。vDSP_vmaxmg
看起来几乎就是我想要的,但不完全是。文件上说它是这样做的:
输出矢量C的每个元素是来自输入矢量A和B的相应值的幅度中较大的。
所以看起来vDSP_vmaxmg
的输出总是输入的绝对值,总是正的。如果我想保持信号输出的绝对值,但限制幅度,加速框架能帮助我吗?
您想要vDSP_vclip( )
:
#include <Accelerate/Accelerate.h>
...
float min = -1.0f;
float max = 1.0f;
vDSP_vclip(inputBuffer, inputStride, &min, &max,
outputBuffer, outputStride, length);