I am starting to study about the concept of biorthogonal windows and the relation to (Discrete) Fourier transform and short-time Fourier transform (STFT).

I have not found an introductionary review of the concept and Google search mostly refers to scholarly papers which briefly mentions the term but do not explain.

From what I have managed to find, if a given window $w[n]$ is used before the FFT then its biorthognal complement will be used after the IFFT to reconstruct the signal. The use of biorthogonal window should minimize reconstruction errors.

It would be nice if someone could provide me a short review or introduction to the subject or a link to an accessible review notes. Thanks.

  • $\begingroup$ Are you asking about analysis/synthesis windows? For example ccrma.stanford.edu/~jos/sasp/COLA_Examples.html ? $\endgroup$
    – Hilmar
    Jun 21, 2021 at 19:46
  • $\begingroup$ @Hilmar Yes. As I understand, one window is used in the analysis (before FFT) and its biorthogonal window is used in the synthesis (after IFFT). $\endgroup$ Jun 22, 2021 at 7:08
  • $\begingroup$ Any positive complete overlap add window can do this, if you just take it's square root and use that for both analysis and synthesis. That seems to be the most common way of doing it in practice that I have seen. $\endgroup$
    – Hilmar
    Jun 22, 2021 at 12:34

1 Answer 1


Perfect STFT reconstruction is possible with any windowing that satisfies NOLA.

The advantage of biorthogonal windows is enabling perfect inversion by summing STFT rows: x = STFT(x).sum(axis=0) (assuming hop_length=1). If a window isn't biorthogonal, this inversion is only approximate.

Such inversion enables a more accurate implementation of synchrosqueezing, and is physically realizable. This 1994 paper explains the construction of such windows (also for CWT), and their motivation. A figure from the paper on optical implementation of STFT:

Disclaimer, paper seems to wrongly claim that perfect reconstruction is otherwise impossible, but it might refer only to single-integral reconstruction (.sum(axis=0)). Otherwise a good read.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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