Main Content

iscola

Determine whether window-overlap combination is COLA compliant

Description

tf = iscola(window,noverlap) checks that the specified window and overlap satisfy the Constant Overlap-Add (COLA) Constraint to ensure that the Inverse Short-Time Fourier Transform results in perfect reconstruction for nonmodified spectra.

example

tf = iscola(window,noverlap,method) specifies the inversion method to use.

[tf,m] = iscola(___) also returns the median of the COLA summation. You can use these output arguments with any of the previous input syntaxes.

[tf,m,maxDeviation] = iscola(___) returns the maximum deviation from the median m.

example

Examples

collapse all

Create a periodic root-Hann window of length 120. Test whether the window is COLA compliant with a 50% overlap.

win = sqrt(hann(120,'periodic'));
noverlap = 60;

Check whether the window is COLA compliant with a 50% overlap.

tf = iscola(win,noverlap)
tf = logical
   1

Create a periodic Hamming window of length 256. Set the method of Overlap-Add as 'ola'.

window = hamming(256,'periodic');
method = 'ola';
noverlap = 128;

Test whether the window is COLA compliant with a 50% overlap. Also calculate the median of the COLA summation and the maximum deviation from that summation.

[tf,m,maxDeviation] =  iscola(window,noverlap,method)
tf = logical
   1

m = 
1.0800
maxDeviation = 
2.2204e-16

Input Arguments

collapse all

Analysis window, specified as a vector.

Example: win = bartlett(120) is a Bartlett window of length 120.

Data Types: double | single

Number of overlapped samples, specified as a positive integer smaller than the length of window.

Data Types: double | single

Method of overlap-add, specified as:

  • 'wola' — Weighted Overlap-Add.

  • 'ola' — Overlap-Add.

Output Arguments

collapse all

COLA compliance, returned as a logical scalar. If the function returns a 1 (true), then the window and overlap length satisfy the COLA constraint.

Median of the COLA summation, returned as a real scalar. If the inputs are COLA compliant, then m is equal to the COLA summation constant.

Maximum deviation from the median m. If window and noverlap are COLA compliant, the maxDeviation is close to the expected numeric precision error of the COLA summation.

Note

You can conclude strong COLA-compliance if m = 1 and maxDeviation is close to the numeric precision error.

More About

collapse all

References

[1] Allen, J. B. "Short Term Spectral Analysis, Synthesis, and Modification by Discrete Fourier Transform." IEEE Transactions on Acoustics, Speech and Signal Processing. Vol. 25, Number 3, June 1977, pp. 235–238.

[2] Griffin, Daniel W., and Jae S. Lim. "Signal Estimation from Modified Short-Time Fourier Transform." IEEE Transactions on Acoustics, Speech and Signal Processing. Vol. 32, Number 2, April 1984, pp. 236–243.

[3] Sharpe, Bruce. Invertibility of Overlap-Add Processing. https://gauss256.github.io/blog/cola.html, accessed July 2019.

[4] Smith, Julius Orion. Spectral Audio Signal Processing. https://ccrma.stanford.edu/~jos/sasp/, online book, 2011 edition, accessed Nov 2018.

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2019a

See Also

Functions