I am reading this paper about speech enhancement using a minimum mean square error short time spectral amplitude estimator for our speech enhancement project. Basically in the paper they mix a clean speech with noise and try to recover the clean speech.

The paper keeps mentioning a priori SNR and a posteriori SNR. I am confused by what does it mean. A priori SNR is the SNR from before the mixing? But that can't be right. If we knew the clean speech signal from the beginning this exercise would be pointless.

This is the paper if you are wondering: Y. Ephraim and D. Malah, “Speech Enhancement Using a- Minimum Mean Square Error Short-Time Spectral Amplitude Estimator”, IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol. ASSP-32, No. 6, Dec. 1984.


  • $\begingroup$ Haven't read the paper but from what I know, these are used for accuracy and performance analysis. In this case you know what the clean signal is. $\endgroup$
    – ThP
    Dec 12, 2014 at 13:22

2 Answers 2


The a priori SNR is the ratio of the power of the clean signal and of the noise power. The a posteriori SNR is the ratio of the squared magnitude of the observed noisy signal and the noise power. Both SNRs are computed for each frequency bin.

Of course, the only signal we have is the observed noisy signal. The noise power as well as the power of the clean signal must be estimated. The noise power can be estimated during absence of the desired signal, but in practice it can be difficult to detect the presence or absence of the desired signal, at least when the SNR is bad. There are so-called noise tracking algorithms that estimate the noise power without relying on detecting the presence or absence of the desired signal. They are based on the assumption that the desired signal is "more non-stationary" than the noise. The power of the desired clean signal can be estimated using a decision-directed approach, as described in Ephraim and Malah's paper. In that approach, the estimated clean amplitude, i.e. the output or 'decision' of the algorithm, and the a posteriori SNR are used to estimate the a priori SNR.

  • $\begingroup$ hey @Matt L. Does the "a" in front of priori mean anything? I noticed that you edited my question to include the "a" and am not sure what is its significance. $\endgroup$
    – D.Zou
    Dec 13, 2014 at 19:34
  • 1
    $\begingroup$ @D.Zou: Yes, it's part of it and you can't just leave it out. It's Latin, and in English it's sometimes even contracted to form apriori. $\endgroup$
    – Matt L.
    Dec 13, 2014 at 19:55
  • $\begingroup$ Why do you say "squared magnitude of the observed noisy signal" instead of "power of the observed noisy signal"? Isn't the squared magnitued in fact power? $\endgroup$
    – Danijel
    Mar 16, 2023 at 18:20
  • $\begingroup$ @Danijel: It's a sort of momentary energy of the noisy signal. Power estimates usually involve some averaging. $\endgroup$
    – Matt L.
    Mar 16, 2023 at 19:34

@Matt L. I'm also using this same paper by Y. Ephraim and D. Malah and the decision directed approach mentioned in the paper. But there is this formula eq no 53 which uses recursion to find priori SNR but i am having hard time implementing the code. enter image description here

Can anyone help me how to code it? If i initialize the snr using Gain as 1 for n=0, then how will i get value of Priori SNR for n=1? I've been told to use value of Priori SNR at n=0 to find Gain at n=1? But isn't it mathematically incorrect?


  • $\begingroup$ dude, do you go to concordia by any chance? $\endgroup$
    – D.Zou
    Dec 16, 2014 at 0:47

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.