File Exchange

image thumbnail

Wiener filter for Noise Reduction and speech enhancement

version 1.1 (3.78 KB) by

Wiener Noise Suppressor based on Decision-Directed method with TSNR and HRNR algorithms.



View License

The two-step noise reduction (TSNR) technique removes the annoying reverberation effect while maintaining the benefits of the decision-directed approach. However, classic short-time noise reduction techniques, including TSNR, introduce harmonic distortion in the enhanced speech. To overcome this problem, a method called harmonic regeneration noise reduction (HRNR) is implemented in order to refine the a priori SNR used to compute a spectral gain able to preserve the speech harmonics as proposed by Plapous et al.
("Improved Signal-to-Noise Ratio Estimation for Speech Enhancement", IEEE Transactions on ASLP, Vol. 14, Issue 6, pp. 2098 - 2108, Nov. 2006).

Comments and Ratings (17)

david ehmig

robert nimon

what define IS?
as foreigner to english I can't explain myself the meaning of IS (Initial Silence )
Please reply me as soon as possible


Jose Alberto

Michal Tom

Michal Tom

some of the foreigners may not understand the programs which are in english.but i can see this,haha...

how to define IS?
please reply as soon as possible..

Shichao Hu

Jakub was right. it works after changing data() to ns()


cja (view profile)

doesnt compile - data() doesnt exist. not sure what previous comment: data() to ns() means?


souvik (view profile)

the code which is provided gets stuck at this point given below.
nsum = nsum + abs(fft(nwin,NFFT)).^2;
can you please help me out regarding this.
the error showing is
"Error using ==> mpower
Matrix must be square.

Error in ==> WienerNoiseReduction at 57
nsum = nsum + abs(fft(nwin,NFFT)).^2;"

Michael Chan

Michael Chan (view profile)

how do u set 'IS'? zeros with the same length as the noisy signal?
I get silence.

Wiener filter for Noise Reduction


sachu (view profile)

Taewoo Lee

Jakub Muran

You must change data() to ns() (ns - argument noise speech)

cavko bavko

Yun Sue

Is the code with any mistakes? In the file, syntax of "nsum = data(...) " can't be executed. Can anyone tell me what is this mistake when I am reading my noise file?

Yun Sue



new tags have been added.

MATLAB Release
MATLAB 7.6 (R2008a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video