Phase retrieval for wavelet transforms

Source code
Examples
     Small synthetic examples
         Realization of a Gaussian process
         Line from an image
         Sums of sinusoids (successful)
         Sums of sinusoids (unsuccessful)
     Audio signals
         Dyadic wavelets
         Non dyadic wavelets
     Stability
         Synthetic example
         Audio signal

Source code

Octave/Matlab code :    wav_phase_retrieval.zip

Examples

Small synthetic examples

All examples use variants of Morlet wavelets. The wavelet transform modulus are added 5% of noise before being sent to the reconstruction algorithm.
The figure on the left of each line represents the original signal (blue) and its reconstruction (red). On the three next figures are three components of the wavelet transform modulus (blue) along with their reconstructions (red).

Realization of a Gaussian process

Signals
Low frequencies
Middle frequencies
High frequencies

Line from an image

Signals
Low frequencies
Middle frequencies
High frequencies

Sums of sinusoids (successful)

Signals
Low frequencies
Middle frequencies
High frequencies

Sums of sinusoids (unsuccessful)

The difference between the ground true wavelet transform modulus and the reconstructed one is larger than the amount of additional noise.
Signals
Low frequencies
Middle frequencies
High frequencies

Audio signals

All examples use variants of Morlet wavelets. The wavelet transform modulus are added 1% of noise before being sent to the reconstruction algorithm.

Dyadic wavelets

Original Gerchberg-Saxton Hybrid input/output Our algorithm
Voice   
    Source
Piano   
    Source
Orchestra   
    Source

Non dyadic wavelets

The quality of reconstructed signals depends on the wavelets. Here, we still use variants of Morlet wavelets, with eight wavelets per octave, and a varying Q-constant.
For all the algorithms, the reconstruction is good when the constant is small (the wavelets have a large overlap), and becomes worse when the constant increases.
Note that, in this example, the signal reconstructed with a traditional algorithm presents an echo from Q=14, while this phenomenon appears only at Q=17 with our algorithm.

Original Gerchberg-Saxton Hybrid input/output Our algorithm
Q=10   
    Source
Q=14   
Q=17   

Stability

Synthetic example

The difference between the initial and reconstructed wavelet transform modulus is in general of the same order as the input noise, or smaller. However, the difference between the initial and reconstructed signals can be much larger.

We give an example of reconstruction for three levels of noise.

1 - Input noise: 5%    Error over the modulus: 3.5%    Error over the signal: 17.1%
Signals
Low frequencies
Middle frequencies
High frequencies

2 - Input noise: 10%    Error over the modulus: 8.0%    Error over the signal: 53.3%
Signals
Low frequencies
Middle frequencies
High frequencies

3 - Input noise: 15%    Error over the modulus: 11.0%    Error over the signal: 81.2%
Signals
Low frequencies
Middle frequencies
High frequencies

Audio signal

We use the example of Paragraph "Non dyadic wavelets" for Q=10.

In this case, the relative difference between initial and reconstructed wavelet transform modulus is 0.47% (for an input noise of 1%). However, the relative difference between initial and reconstructed signals is 95%.

We plot below the difference in phase between initial and reconstructed wavelet transforms. Black points correspond to places where the modulus is too small so that the phase can be significant.
The phase varies slowly in both time and frequency, compared to the scalogram, and the variation is all the more slow that the modulus is large.

Initial scalogram
Phase difference between initial and
reconstructed wavelet transforms