InverseSpectrogram

InverseSpectrogram[data]

reconstructs the signal from the magnitude spectrogram data.

InverseSpectrogram[img]

reconstructs the signal, assuming that the image img is the magnitude spectrogram.

InverseSpectrogram[input,n]

assumes the spectrogram data was computed with partitions of length n.

InverseSpectrogram[input,n,d]

assumes partitions with offset d.

InverseSpectrogram[input,n,d,wfun]

assumes a smoothing window wfun was applied to each partition.

Details and Options

  • InverseSpectrogram approximates an inverse of the magnitude spectrogram.
  • To compute the short-time Fourier transform of lists and audio signals, use ShortTimeFourier.
  • InverseSpectrogram assumes that real matrix input is a magnitude spectrogram without the redundant part. This means that the window size used was 2(size-1), where size is the second dimension of the input matrix.
  • The inverse spectrogram can be computed from the spectrogram if the offset d is smaller than half the size of the partition length n.
  • The following options can be given:
  • FourierParameters{1,-1}Fourier parameters to be used
    MaxIterations Automaticmaximum number of iterations
    Method Automaticthe method to use
  • Possible method settings include:
  • Automaticuses automatic method
    "GriffinLim"iteratively approximates the phase
    "SPSI"uses single-pass spectrogram inversion
    "Hybrid"uses the SPSI as the inital phase for GriffinLim
  • The "Hybrid" method is used by default.

Examples

open allclose all

Basic Examples  (3)

Generate an audio signal, assuming a cellular automaton evolution to be the magnitude spectrum:

Reconstruct a signal from a magnitude spectrum:

Construct an Audio object from an Image:

Compute the spectrogram of the resulting signal:

Scope  (3)

The partition size must match the value inferred from the input data:

The inferred partition size is 2×(size-1), where size is the second dimension of the input matrix:

By default, the partition offset is of the inferred partition size:

Specify a different partition offset:

Specify a smoothing window:

Options  (2)

MaxIterations  (1)

Use the MaxIterations option to control the quality of the result and the speed of the operation:

Method  (1)

The "Griffin-Lim" method uses an iterative algorithm to approximate the original signal:

The "SPSI" method approximates the signal in a non-iterative way, which is relatively fast:

The "Hybrid" method uses the result of the "SPSI" method as the starting guess for iterative method "Griffin-Lim", which may converge faster:

Applications  (2)

Reconstruct an Audio object from its magnitude spectrum:

Construct an Audio object from image data:

Convert the image to grayscale and rotate appropriately:

Reconstruct the signal with the assumption that the image was its spectrogram:

Compute the spectrogram of the resulting signal:

Properties & Relations  (1)

Compute the spectrogram of a signal and its approximate inverse:

Compute the short-time Fourier transform:

Discard the redundant part and take the absolute value to get the magnitude spectrogram:

Use InverseSpectrogram to compute the approximated inverse of the spectrogram:

Possible Issues  (1)

The partition size must match the value inferred for the input data:

The inferred partition size is 2×(size-1), where size is the second dimension of the input matrix:

Signal reconstruction cannot be done with other partition sizes:

Wolfram Research (2019), InverseSpectrogram, Wolfram Language function, https://reference.wolfram.com/language/ref/InverseSpectrogram.html.

Text

Wolfram Research (2019), InverseSpectrogram, Wolfram Language function, https://reference.wolfram.com/language/ref/InverseSpectrogram.html.

CMS

Wolfram Language. 2019. "InverseSpectrogram." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/InverseSpectrogram.html.

APA

Wolfram Language. (2019). InverseSpectrogram. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/InverseSpectrogram.html

BibTeX

@misc{reference.wolfram_2023_inversespectrogram, author="Wolfram Research", title="{InverseSpectrogram}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/InverseSpectrogram.html}", note=[Accessed: 29-March-2024 ]}

BibLaTeX

@online{reference.wolfram_2023_inversespectrogram, organization={Wolfram Research}, title={InverseSpectrogram}, year={2019}, url={https://reference.wolfram.com/language/ref/InverseSpectrogram.html}, note=[Accessed: 29-March-2024 ]}