2
$\begingroup$

If a system operates on a signal with a time-domain IIR or FIR, why would an acquisition system chunk the audio into powers of two? I can understand filling a buffer by a power of two for an FFT operation. Is there a difference?

I am still confused by the difference between block processing and sample by sample processing. Some clarification would be greatly appreciated.

$\endgroup$
3
$\begingroup$

Note that FIR filters are sometimes implemented using an FFT (overlap-add, overlap-save). In that case it makes sense to have power of 2 buffers lengths (depending on the FFT implementation). This is of course an example of block processing, where you have to wait for a whole block before the computation of the output signal can begin. The consequence is that you always have some latency. Sample by sample processing is possible with a time-domain implementation, where you get one output sample for each input sample. Note that a time-domain implementation is not necessarily sample-by-sample but could also be using block processing.

$\endgroup$
  • $\begingroup$ another advantage of processing samples in "blocks" or "chunks" is that the overhead you have gearing up for a loop is distributed or amortized over all of the samples. in other words, processing 16 samples in a block is likely to cost fewer instruction cycles than 16 times processing one sample. in both cases you have to load up states before processing and save the states after processing. in the 16-sample chunk case, that cost of loading and storing states happens only once for all 16 samples, but happens 16 times if you're doing it sample-by-sample. $\endgroup$ – robert bristow-johnson Nov 21 '14 at 2:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.