Jump to content

Talk:Overlap–save method

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Bob K (talk | contribs) at 16:39, 16 January 2015 (Dubious). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
WikiProject iconComputing Unassessed
WikiProject iconThis article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
???This article has not yet received a rating on Wikipedia's content assessment scale.
???This article has not yet received a rating on the project's importance scale.

new pseudocode, Mar 5, 2014

Yes, the previous algorithm is "simple", which is a good thing. The difference is that it chooses the FFT size (N) in an optimal way, and derives the arbitrary segment length (L) accordingly. No zero-padding is necessary, so the claim "circular convolution used in it may be wrong, because we should pad zeroes in the head at initial step" is wrong and misleading. Your more-complicated algorithm, prioritizes the choice of L above the FFT size, P, (an important performance parameter). The claim that your inefficient and complicated code achieves the same result as conv(•) (as does the efficient, simple code) is not sufficient.
--Bob K (talk) 20:07, 5 March 2014 (UTC)[reply]

Dubious

The figure illustrating the overlap-save algorithm is misleading/wrong

  • the vertical axis labels indicate that the signals have an offset. The mean value seems to be 1. However, the convolution result itself indicates that the signals have zero-mean. Most likely the vertical axis is wrongly labeled. The labels should 0,1,2 should be replaced by -1,0,1.
  • the double arrow below the horizontal axis is misleading. The arrows should be removed or only the one pointing to the right should be shown
  • the length of the segments is not clear. From the caption it seems to 100 taps, but the red portion of the upper plot indicates a different length
  • it is not clear which part is overlapping from the previous segment
  • the impulse response should also be shown

Sascha.spors (talk) 13:58, 16 January 2015 (UTC)[reply]

Plot #1 (top) is labeled "X[n], with segment k=3 in red". A similar label for plot #3 would be:
"Convolution of X3 and a lowpass filter, with Y3 shown in red. The non-red portions are the filter's discarded transient responses. Note that the rise-time response for Y1 (in plot #4) was not discarded, meaning that the filter is causal."
That's a bit long for a label... perhaps you would like to add it to the caption.
The vertical axes are all labeled correctly. I think that will be obvious to you, once you understand the rise and fall times.
The traditional algorithm name (Overlap-save) is not helpful. Overlap-discard would be more helpful. But we can't re-write history.
--Bob K (talk) 15:37, 16 January 2015 (UTC)[reply]
Thanks. That makes things much clearer to me und the labels are indeed correct.
Do you know what overlap was used for the computation? How long was the impulse response of the lowpass? This information put into the caption would be helpful to understand the process better.
Sascha.spors (talk) 16:22, 16 January 2015 (UTC)[reply]
The filter is a 16-sample boxcar.
The script is available for inspection here: https://commons.wikimedia.org/wiki/File:Overlap-save_algorithm.png
--Bob K (talk) 16:39, 16 January 2015 (UTC)[reply]