I am working with the speech envelope, and I have been trying to make it act a little more like a bilevel signal by exaggerating the peaks and flattening out the floor.

I detrended and smoothed my envelope using low pass filtering in MATLAB, but found that the best way to achieve want I want (visually) is to use this approach:

localMin = movmin(speechEnvelope, ...
    [round(Fs/2) ...
speechEnvelope(speechEnvelope<=max(localMin)) = min(speechEnvelope);

Where I use a moving window to find local minima, and then all points within the signal that fall below the greatest local minimum are replaced with the overall signal minimum value.

Anyways, it seems to have done what I needed it to do for my application, but I am writing up now and have no idea what to call my silly method. Can anyone please advise this student of how to best communicate my "flattening" technique?

  • $\begingroup$ in the old fashioned AM, we called that "over-modulation". $\endgroup$ Commented Jul 3, 2021 at 17:56
  • $\begingroup$ @robertbristow-johnson Thanks, I will look into this unfamiliar term. By "over-modulation", are you referring to how I am generally making the peaks/floor more extreme (sort of like turning up the contrast of the envelope), or just the flattening of the floor specifically? $\endgroup$
    – stck8888
    Commented Jul 3, 2021 at 18:25
  • $\begingroup$ mathworks.com/help/releases/R2020a/signal/ug/… does it help? $\endgroup$
    – ZR Han
    Commented Jul 5, 2021 at 2:16
  • $\begingroup$ @ZRHan Thanks, it looks like their term is "Peak Separation", which is at least a place to start $\endgroup$
    – stck8888
    Commented Jul 5, 2021 at 12:42


Your Answer

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

Browse other questions tagged or ask your own question.