Code covered by the BSD License  

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

» Watch video

Highlights from
Wiener filter for Noise Reduction and speech enhancement

3.3 | 6 ratings Rate this file 64 Downloads (last 30 days) File Size: 3.78 KB File ID: #24462 Version: 1.1

Wiener filter for Noise Reduction and speech enhancement


Pascal Scalart (view profile)


17 Jun 2009 (Updated )

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

| Watch this File

File Information

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).

MATLAB release MATLAB 7.6 (R2008a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (11)
22 Apr 2016 Shichao Hu

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

24 Sep 2015 cja

cja (view profile)

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

18 Sep 2013 souvik

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;"

Comment only
16 Mar 2012 T venkata bhargav  
25 Jun 2011 Michael Chan

Michael Chan (view profile)

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

Comment only
04 Jun 2011 upendra agrawal

Wiener filter for Noise Reduction

Comment only
24 May 2011 sachu

sachu (view profile)

16 Aug 2010 Taewoo Lee  
24 Nov 2009 Jakub Muran

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

cavko bavko

Comment only
30 Sep 2009 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?

Comment only
18 Sep 2009 Yun Sue  
30 Jun 2009 1.1

new tags have been added.

Contact us