Suppose an arbitrary, strictly positive $x[n]$, transformed as

$$ x_l[n] = \log(1 + C x[n]) \tag{0} $$ where $C$ is freely chosen. Given the following, where $h[n]$ is a Gaussian lowpass filter (or any other strictly positive lowpass): $$ \begin{align} y_0 &= h[n] \star x_l[n] \tag{1} \\ y_1 &= \log(h[n] \star x[n]) \tag{2} \\ y_\text{ref} &= h[n] \star x[n] \tag {3} \end{align} $$

which one (between $(1)$ and $(2)$) is better in terms of:

  • A) bringing extreme values closer together
  • B) preserving characteristics of $y_\text{ref}$ (i.e. untransformed), such as time-domain of frequency-domain shape
  • C) robustness/stability

The exact context is scattering transform - put simply, scalogram / spectrogram (modulus) convolved with Gaussian. I wonder whether it's preferred to take log before or after convolution. My results suggest latter $(1)$ is better for A, $(2)$ is better for B (see below), but I wonder whether the distinction has been studied in detail.


enter image description here

enter image description here

"log" is as in $(0)$, and right shows the slice highlighted in left.

I find $(2)$'s edge over $(1)$ at A surprising, as I figured without log the small values would get "drowned out" in averaging (convolution with Gaussian along rows), and taking log after would do poorer at "recovery" than first taking log and then convolving. Results persist if I add noise or a second exponential chirp parallel in frequency.


1 Answer 1


Regarding C), I'd say $y_0$ is better. Unless you put special constraints on the lowpass filter, the output of a positive input is by no means guaranteed to be positive as well. So even if $x$ is positive $h*x$ can easily have negative samples which after taking the log would result in a complex values.


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.