|
我目前使用 STM32F407G-DISC1 开发板,通过 PMOD I2S2 接口采集音频输入。已经完成了多个示例测试,硬件工作正常,示例代码如下: 。。。。。。。。。 for (int i=0; i<BUFFER_LENGTH*4; i=i+4) { txBuf[i] = rxBuf[i]; txBuf[i+1] = rxBuf[i+1]; txBuf[i+2] = 0; txBuf[i+3] = 0; } 。。。。。。 现在我想对输入的音频缓冲区执行 FFT,对频域数据进行处理,首要目标是实现音高变换算法,然后再执行 IFFT。 编写了如下代码: .... for (int i=0; i<BUFFER_LENGTH*4; i=i+4) { fft_in_buf[fft_in_ptr] = (float) ((int) (rxBuf[i]<<16)|rxBuf[i+1]); fft_in_ptr++; } arm_rfft_fast_f32(&fft_handler, fft_in_buf, fft_out_buf, 0); arm_rfft_fast_f32(&fft_handler, fft_out_buf, fft_in_buf, 1); fft_in_ptr = 0; for (int i=0; i<BUFFER_LENGTH*4; i=i+4) { txBuf[i] = (fft_in_buf[fft_in_ptr] >> 16) & 0xFF; // 高位字节 txBuf[i + 1] = fft_in_buf[fft_in_ptr] & 0xFF; // 低位字节 txBuf[i + 2] = 0; txBuf[i + 3] = 0; fft_in_ptr++; } ......... 在主程序初始化部分,我也调用了: arm_rfft_fast_init_f32(&fft_handler, BUFFER_LENGTH); 问题是使用上述代码后,音频输出音量极小,几乎听不见。 我怀疑是缩放 / 增益问题,但即使对 fft_in_buf[fft_in_ptr] 进行缩放处理,问题依然没有解决。 |
printf 使用 % llu 输出错误
printf运行报错
ai部署
STM32F303K8搭配 FreeRTOS 时出现 RAM 溢出
keil有什么调试方法可以追踪链表被破坏的地方吗
MMT 在工具菜单中不显示
将 IAR 的 __no_init 指令移植到 GCC 编译器
无法通过 SPI 读取 TCD1304数据
MotorControl Workbench 6.4.1 生成 FOC 项目代码后运行死机。
关于H750VB的SDMMC开启DMA读写SD卡
微信公众号
手机版