Forums

New low spectral noise window function

Started by Bill Cox December 24, 2010
You can read about the OLA-Hann window function at:

http://vinux-project.org/ola-hann.

Features of this technique include non-tapering at the edges, more
like a rectangle window, zero spectral noise from sine waves that fall
exactly in the middle of FTT buckets, or exactly in between buckets,
and far lower spectral leakage overall.  It is especially handy for
pitch-synchronous speech analysis, as 100% of purely harmonic energy
is assigned to the correct bin, with zero leakage, leaving only noise
and changing components and pitch estimation error that cause any
spectral leakage at all.

On the down side, two frames of equal length are required to form one
OLA-Hann frame.  Thus, the time resolution is equivalent to windows
that overlap 50% of both the previous and next frames, such as MDCT.

Bill
On 12/24/2010 11:40 AM, Bill Cox wrote:
> You can read about the OLA-Hann window function at: > > http://vinux-project.org/ola-hann. > > Features of this technique include non-tapering at the edges, more > like a rectangle window, zero spectral noise from sine waves that fall > exactly in the middle of FTT buckets, or exactly in between buckets, > and far lower spectral leakage overall. It is especially handy for > pitch-synchronous speech analysis, as 100% of purely harmonic energy > is assigned to the correct bin, with zero leakage, leaving only noise > and changing components and pitch estimation error that cause any > spectral leakage at all. > > On the down side, two frames of equal length are required to form one > OLA-Hann frame. Thus, the time resolution is equivalent to windows > that overlap 50% of both the previous and next frames, such as MDCT. > > Bill
The equations in the paper seem so suggest a discontinuity in the window functions being used with the separation in x of N. And, that's not the same as the words in the paper that say a Hann window on each of two frames. And, that's not the same as "non-tapering" at the edges as above exactly. What am I missing? Fred
On Dec 24, 11:40 am, Bill Cox <waywardg...@gmail.com> wrote:
> You can read about the OLA-Hann window function at: > > http://vinux-project.org/ola-hann. > > .. > Bill
It's always nice to see someone new rediscover the advantages of the independence of window size from DFT size. The approach is not new. It can be found in a number of guises. It has long been used as one form of FFT based polyphase filter. For examples: "polyphase DFT filterbank", "PolyDFT" and "PFT" as used in places such as: http://www.rfel.com/download/W03006-Comparison_of_FFT_and_PolyDFT_Transient_Response.pdf fred harris presents the concept in the 'Time Domain Signal Processing with the DFT' chapter in Doug Elliot&#2013266066;s 1987 book Handbook of Digital Signal Processing. He considers the name "data-wrapping" but considers that too close to the context of "wrapping" in "phase unwrapping" and suggests "data folding" instead. A couple more terms approaching yours are "weighted overlap-add structure" or "windowed-presum FFT" from "Understanding Digital Signal Processing, Second Edition" by Richard G. Lyons as explained in: http://www.eetimes.com/design/embedded/4007611/DSP-Tricks-Building-a-practical-spectrum-analyzer The most complete exposition on it that I have found comes in a 300+ page opus: TIME ALIASING METHODS OF SPECTRUM ESTIMATION by Jason F Dahl A dissertation submitted to the faculty of Brigham Young University, Dept. of Mechanical Engineering, April 2003. 305pp Available at: http://contentdm.lib.byu.edu/ETD/image/etd157.pdf I personally prefer Dahl's "time aliasing" as having the least conflict with other uses of the component words. This literature provides comparisons to other windows and window design methods. Dale B. Dalrymple
Fred, you are correct, I messed up the equations.  I've posted the python
programs used to generate the plots, in case my equations on the HTML page
remain broken.  I wrote the equations for a centered pair of windows, and
then wrote the Python with 0 being the leftmost element of the first frame,
and of course I failed to update the equations properly.  I think it's
correct now, but the proofs at the bottom are still broken.

Dale, thanks for all the background.  I'm old enough to have experienced
several times that new ideas are more often than not just rediscoveries of
old ideas.  I'll read up on all the links you posted.  I think that maybe
if we market this particular old idea under OLA-Window names, maybe it will
stick, but maybe I've simply read too many articles with OLA in the title. 
I'd like to credit the original researchers if I can find them.

Thanks,
Bill


>On Dec 24, 11:40 am, Bill Cox <waywardg...@gmail.com> wrote: >It's always nice to see someone new rediscover the advantages of the >independence of window size from DFT size. The approach is not new. It >can be found in a number of guises.
Wow. Thanks for the excellent links! Yes, my algorithm is a specific subset of the algorithms discussed in your first link, as well as your second link. So far as I can tell, there may be nothing new at all in my algorithm. Have you seen weighted overlapp-add applied pitch synchronously to speech before? I'm seeing extra benefits in this case, because harmonic components have even lower spectral noise. Bill
On Dec 25, 6:14&#2013266080;am, "waywardgeek" <waywardgeek@n_o_s_p_a_m.gmail.com>
wrote:
>...
>&#2013266080;Have you seen weighted overlapp-add applied pitch synchronously > to speech before? &#2013266080;I'm seeing extra benefits in this case, because harmonic > components have even lower spectral noise. > > Bill
In the field of machinery vibration analysis, it is a common practice to sample at a multiple of a one per revolution frequency, perhaps derived from a tach signal. Summing adjacent blocks of samples before FFT allows the bin widths to become much narrower than the bin separation even with a rectangular window. Signal stationarity is the limit on noise rejection. The terms used to describe this are "synchronous sampling" and "coherent integration". Dale B. Dalrymple
On Dec 25, 6:14&#2013266080;am, "waywardgeek" <waywardgeek@n_o_s_p_a_m.gmail.com>
wrote:
>... > if we market this particular old idea under OLA-Window names, maybe it will > stick, but maybe I've simply read too many articles with OLA in the title. > I'd like to credit the original researchers if I can find them. > > Thanks, > Bill
The problem with the "OLA" phrase is that most of the papers that use it are about synthesis of time series after IFFTs either alone or as part of an analysis-modify-synthesis structure. I was able to find Rick's article, but only because I didn't use OLA as a search term. So, good luck on the signal processing, but I hope your usage of an overloading "OLA" dies away. Dale B. Dalrymple
On Fri, 24 Dec 2010 17:23:21 -0800 (PST), dbd <dbd@ieee.org> wrote:

>On Dec 24, 11:40 am, Bill Cox <waywardg...@gmail.com> wrote: >> You can read about the OLA-Hann window function at: >> >> http://vinux-project.org/ola-hann. >> >> .. >> Bill > >It's always nice to see someone new rediscover the advantages of the >independence of window size from DFT size. The approach is not new. It >can be found in a number of guises. > >It has long been used as one form of FFT based polyphase filter. For >examples: "polyphase DFT filterbank", >"PolyDFT" and "PFT" as used in places such as: >http://www.rfel.com/download/W03006-Comparison_of_FFT_and_PolyDFT_Transient_Response.pdf > >fred harris presents the concept in the 'Time Domain Signal Processing >with the DFT' chapter in Doug Elliot&#2013266066;s 1987 book Handbook of Digital >Signal Processing. He considers the name "data-wrapping" but considers >that too close to the context of "wrapping" in "phase unwrapping" and >suggests "data folding" instead. > >A couple more terms approaching yours are "weighted overlap-add >structure" or "windowed-presum FFT" from "Understanding Digital Signal >Processing, Second Edition" by Richard G. Lyons as explained in: >http://www.eetimes.com/design/embedded/4007611/DSP-Tricks-Building-a-practical-spectrum-analyzer > >The most complete exposition on it that I have found comes in a 300+ >page opus: >TIME ALIASING METHODS OF SPECTRUM ESTIMATION >by Jason F Dahl >A dissertation submitted to the faculty of Brigham Young University, >Dept. of Mechanical Engineering, April 2003. 305pp >Available at: >http://contentdm.lib.byu.edu/ETD/image/etd157.pdf > >I personally prefer Dahl's "time aliasing" as having the least >conflict with other uses of the component words. > >This literature provides comparisons to other windows and window >design methods. > >Dale B. Dalrymple
Hi Dale, Thanks for your detailed reply. Here are my two cents. The reason Bill Cox's OLA-Hann spectrum has such low sidelobe levels is because (1) he only adds two windowed sequences to obtain his 5th figure's 500-point sequence, and (2) his original 1000-point sequence was low in frequency. Those two conditions mean that the first and last samples of his 5th figure's 500-point sequence (the OLA_Hann sequence) will be very close in amplitude, which of course leads to low sidelobe levels. What would interest me is how Bill obtained the blue and green curves in his first figure. That green spec magnitude curve is definitely NOT the spec magnitudes of a 1000-point DFT of his 2nd figure's 1000-point time sequence. And the blue spec magnitude curve is definitely NOT the spec magnitudes of a 500-point DFT of his 5th figure's 500-point time sequence. Dale, I took a quick look at that Ph.D thesis by Jason F Dahl. His Figure 1.1 (on page number 3) seems awfully strange. It looks to me that this figure contains significant conceptual and notational errors. Although I admit I should continue reading his thesis to see what I can learn from it. See Ya', [-Rick-]
On Dec 26, 10:02&#2013266080;am, Rick Lyons <R.Lyons@_BOGUS_ieee.org> wrote:
>... > > Hi Dale, > &#2013266080; Thanks for your detailed reply. > > Here are my two cents. ...&#2013266080;
I had some problems with the OP's presentation, not limited to terminology. By the time I came in, Fred had already inquired about content. I suggested some alternate method of describing the processing that were already in use and kept out of the content discussion until the OP could respond to Fred.
> > Dale, I took a quick look at that Ph.D thesis by Jason F Dahl. > His Figure 1.1 (on page number 3) seems awfully strange. > It looks to me that this figure contains significant > conceptual and notational errors. &#2013266080;Although I admit I > should continue reading his thesis to see what I can learn > from it.
... While I have never thought of the process Dahl uses as generating a new, continuing time series(i.e. his xsuper(a)(n)) and his usage of 'a' is unexplained, the' big sum' over the 'bold bracket' seems to express the calculation of a single sample in the resulting time block for input to the DFT correctly for the unweighted case. But I could go with strange. Dale B. Dalrymple
>On Dec 25, 6:14=A0am, "waywardgeek" <waywardgeek@n_o_s_p_a_m.gmail.com> >wrote: >>... >> if we market this particular old idea under OLA-Window names, maybe it
wi=
>ll >> stick, but maybe I've simply read too many articles with OLA in the
title=
>. >> I'd like to credit the original researchers if I can find them. >> >> Thanks, >> Bill > >The problem with the "OLA" phrase is that most of the papers that use >it are about synthesis of time series after IFFTs either alone or as >part of an analysis-modify-synthesis structure. I was able to find >Rick's article, but only because I didn't use OLA as a search term. >So, good luck on the signal processing, but I hope your usage of an >overloading "OLA" dies away. > >Dale B. Dalrymple >
Hi, Dale. I'm happy to take your advice. I read the OLA term many times in time domain algorithms in the PSOLA family (WSOLA, TD-SOLA, PICOLA, MBROLA), and the overlap-add is more or less the same in all of them, overlapping two sound samples and fading one in while the other is faded out. That's why I though OLA-Hann was fairly descriptive, but I was unaware of OLA as a name involved in FFT land. Is there a better label? Thanks, Bill