STM32F407 - CMSIS DSP - IFFT not working with audio input/output
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-04-28 2:18 PM
Solved! Go to Solution.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-04-29 11:21 PM
Hi, thank you for pointing me in the right direction. My issue was in fact with converting back the tx buffer.
for (int i=0; i<BUFFER_LENGTH*4; i=i+4) {
txBuf[i] = (fft_in_buf[fft_in_ptr] >> 16) & 0xFFFF; // MSB
txBuf[i + 1] = fft_in_buf[fft_in_ptr] & 0xFFFF; // LSB
txBuf[i + 2] = 0;
txBuf[i + 3] = 0;
fft_in_ptr++;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-04-28 10:37 PM - edited ‎2024-04-28 10:53 PM
You use a float fft , so scaling is not the problem, i suppose. (float giving about 1500 dB dynamic range)
What comes out, if you just comment out the two // arm_rfft_fast_f32() lines ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-04-29 11:21 PM
Hi, thank you for pointing me in the right direction. My issue was in fact with converting back the tx buffer.
for (int i=0; i<BUFFER_LENGTH*4; i=i+4) {
txBuf[i] = (fft_in_buf[fft_in_ptr] >> 16) & 0xFFFF; // MSB
txBuf[i + 1] = fft_in_buf[fft_in_ptr] & 0xFFFF; // LSB
txBuf[i + 2] = 0;
txBuf[i + 3] = 0;
fft_in_ptr++;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-04-30 3:52 AM
Thanks for coming back with the solution.
JW
