Hello DSPC Team,
I want to smooth the FFT results along the time axis.
Specifically, I want to calculate a moving average across n adjacent frames for each frequency bin.
Is there any existing dsp concept module that can do this efficiently?
```
For example:
bins-1: b[0], b[1], ..., b[n]
bins-2: B[0], B[1], ..., B[n]
...
bins-m: m[0], m[1], ..., m[n]
result: (b[0] + B[0] + ... + m[0]) / m,
(b[1] + B[1] + ... + m[1]) / m,
...,
(b[n] + B[n] + ... + m[n]) / m
```
Thanks,
7:01pm
Sone-san
To my knowledge there is not a singular block that can do this. However, it is achievable using multiple blocks which are already individually optimized.
I think a layout similar to the one in the image achieves what you are looking for. Although this would not be configurable at run-time, as the number of block extracts, divide constant, etc would need to be configured during design-time according to n adjacent frames (my example shows n=3 frames). There are ways to make a similar process configurable at run-time, but this will involve a signal flow of additionally non-trivial complexity.
Let me know what you think or you have questions!
4:13am
Hello ajbdspc,
Thank you for your kind support. Once I’ve confirmed the behavior of BlockExtract, it seems I’ll be able to move forward with the implementation.
I might have more questions later — thanks in advance!