尝试使用当前CMSIS DSP库中的旧代码。旧代码:

const unsiged fftlen=128;
arm_cfft_radix4_instance_q31 forward_cfft_instance = {0};
arm_rfft_instance_q31 forward_rfft_instance = {0};
arm_rfft_init_q31(&forward_rfft_instance, &forward_cfft_instance,fftlen, 0, 1);

编译器告诉我,arm rfft_init_q31函数不再接受当前版本的DSP库中的第二个参数(_cfft_)
由于rfft结构仍然有一个指向cfft实例的指针,我想知道现在如何初始化这个指针?
我试图找到一个相关的changelog条目来向我解释这一点,但迄今为止还没有成功。

最佳答案

函数声明为

arm_status  arm_rfft_init_q31 (arm_rfft_instance_q31 *S, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag);

当您传递指向uint32_t的指针时,它期望arm_cfft_radix4_instance_q31作为第二个参数。而且,根据名字,你想要的只是:
uint32_t fftlen=128;
arm_rfft_instance_q31 forward_rfft_instance = {0};
arm_rfft_init_q31(&forward_rfft_instance, fftlen, 0, 1);

关于c - arm_rfft_init_q31:cfft成员如何初始化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36890313/

10-11 18:26