Abstract:
A digital filter design apparatus for noise suppression by spectral subtraction includes a first spectrum estimator for determining a high frequency resolution noisy speech power spectral density estimate from a noisy speech signal block. A second spectrum estimator determines a high frequency resolution background noise power spectral density estimate from a background noise signal block. Averaging units form a piece-wise constant noisy speech power spectral density estimate and a piece-wise constant background noise power spectral density estimate. These averaging units are controlled by devices for adapting the length of individual segments to the shape of the high frequency-resolution noisy speech power spectral density estimate and for using the same segmentation in both piecewise constant estimates. A piece-wise constant digital filter transfer function is determined using spectral subtraction-based on the piece-wise constant noisy speech power spectral density estimate and the piece-wise constant background noise power spectral density estimate.

Description:
TECHNICAL FIELD 
     The present invention relates to a digital filter design, and especially to filter design in the frequency domain. 
     BACKGROUND 
     There are several applications in which digital filters H[k] are designed “on the fly” in the frequency domain. One example is noise suppression using spectral subtraction. Another example is design of frequency selective non-linear processors for echo cancellation. A characteristic feature of such applications is that the filter design method is quite complex. Since the is filters are updated frequently this puts a heavy burden on the hardware/software that implements these design algorithms. 
     Reference [1] describes a method that divides the frequency domain k into segments of equal or unequal length, and uses a constant value in each segment for H[k] and the underlying power spectral density estimates Φ x [k] of the noisy or echo contaminated speech signal. This reduces the complexity, since the filter H[k] only has to be determined for the frequency segments and not for each frequency bin k. However, this method also has the draw-back that it may split a peak of H[k] into two different segments. This may lead to fluctuating peaks, which produces annoying “music noise”. It also reduces spectral sharpness, which further reduces speech quality. 
     SUMMARY 
     An object of the present invention is to reduce or eliminate these drawbacks of the prior art. 
     This object is achieved in accordance with the attached claims. 
     Briefly, the present invention dynamically adapts the segment lengths and positions to the current shape of the power spectrum of the speech signal. The peaks and valleys of the spectrum are determined, and the method makes sure that peaks are not split between different segments when the segments are distributed over the frequency domain. Preferably each peak is covered by a segment centered on the peak. The segment length is preferably controlled by the frequency characteristics of the human auditory system. 
     This method has the advantage of reducing the complexity of the filter calculation without sacrificing accuracy at the important spectrum peaks. Furthermore, the method also reduces the variance of the spectrum from frame to frame, which improves speech quality. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention, together with further objects and advantages thereof, may best be understood by making reference to the following description taken together with the accompanying drawings, in which: 
     FIG. 1 is a diagram illustrating the power spectral density estimate of a noisy speech signal; 
     FIG. 2 is a diagram illustrating the power spectral density estimate in FIG. 1 after segmentation and averaging in accordance with the prior art; 
     FIG. 3 is a diagram similar to the diagram in FIG. 1; 
     FIG. 4 is a diagram illustrating the power spectral density estimate in FIG. 1 after segmentation and averaging in accordance with the present invention; 
     FIG. 5 is a flow chart illustrating an exemplary embodiment of the method in accordance with the present invention; and 
     FIG. 6 is a block diagram illustrating an exemplary embodiment of a filter design and filtering apparatus in accordance with the present invention. 
    
    
     DETAILED DESCRIPTION 
     In some applications the filter is determined in the frequency domain. For example, in telephony applications noise suppression based on spectral subtraction is often used (see [2, 3]). In this case the filter is determined as a function H(ω) of frequency:          H        (   ω   )       =       (     1   -       (     δ        (           Φ   ^     v          (   ω   )             Φ   ^     v          (   ω   )         )       )     α       )     β                            
     where α, β, δ are constants and {circumflex over (Φ)} v (ω) and {circumflex over (Φ)} x (ω) are estimates of the power spectral density of the pure noise and noisy speech, respectively. This expression is obtained from the model: 
     
       
         
           x[n]=y[n]+v[n] 
         
       
     
     where v[n] is the noise signal, x[n] is the noisy speech signal and y[n] is the desired signal. An estimate of the desired signal y[n] is obtained by applying the filter represented by H(ω) to the noisy signal x[n]. 
     Another example of an application in which the filter is determined in the frequency domain is a frequency selective non-linear processor for echo cancellation. In this case the filter is defined by the function: 
     
       
           H (ω)=ƒ({circumflex over (Φ)} x (ω),{circumflex over (Φ)} e (ω)) 
       
     
     where {circumflex over (Φ)} x (ω) represent an estimate of the power spectral density of a signal x[n] contaminated by residual echo and {circumflex over (Φ)} e (ω) represents an estimate of the power spectral density of the residual echo signal e[n]. An example of a suitable function ƒ is the function above for noise suppression with {circumflex over (Φ)} x (ω) now representing the power spectral density estimate of the residual echo contaminated signal and {circumflex over (Φ)} v (ω) being replaced by the residual echo power spectral density estimate {circumflex over (Φ)} e (ω) The filter H(ω) is based on the model: 
     
       
         
           x[n]=y[n]+e[n] 
         
       
     
     where y[n] is the desired signal. An estimate of the desired signal y[n] is obtained by applying the filter represented by H(ω) to the residual echo contaminated signal x[n]. 
     In the above examples the filter is described by a real-valued continuous-frequency transfer function H(ω). This function is sampled to obtain a discrete-frequency transfer function H[k]. This step is typically performed when the estimates are based on parametric estimation methods. However, it is also possible to obtain the discrete-frequency transfer function H[k] directly, for example by using periodogram based estimation methods. An advantage of parametric estimation methods is that the estimates typically have lower variance from frame to frame than estimates from periodogram based methods. 
     The following description will be restricted to noise suppression, but it is appreciated that the same principles may also be used in other applications, such as echo cancellation. 
     The discrete-frequency power spectral estimates {circumflex over (Φ)} x [k], {circumflex over (Φ)} v [k] are initially known with high frequency resolution, typically 128 or 256 frequency bins. FIG. 1 is a diagram illustrating the power spectral density estimate {circumflex over (Φ)} x [k] of a noisy speech signal, in this case with 256 frequency bins. This spectrum is obtained from a parametric estimation method (typically an auto-regressive model, for example of order 10). If the filter transfer function H[k] is to be determined with the same resolution, this will put a heavy computational burden on the hardware/software that implements the noise suppression algorithm described above. In accordance with [1] the frequency range is therefore divided into constant length segments, and an average of {circumflex over (Φ)} x [k] is formed within each segment, as illustrated in FIG.  2 . This average {circumflex over ({overscore (Φ)})} x [segment] is used instead of {circumflex over (Φ)} x [k] in the computation of H[k]. A similarly segmented and averaged estimate {circumflex over ({overscore (Φ)})} v [segment] is used instead of {circumflex over (Φ)} v [k]. In this way a single value of H[k], denoted {overscore (H)}[segment] and defined by            H   _          [   segment   ]       =       (     1   -       δ        (             Φ   ^     _     v     [   segment   ]             Φ   ^     _     x     [   segment   ]       )       α       )     β                            
     may be used for an entire segment and not just for a value k. A drawback of this method is that, due to the constant length and location of the segments, the important peaks of the spectrum may be split between several segments, as illustrated at MAX2 and MAX3 in FIG.  2 . This leads to a poor resolution of these peaks. Furthermore, since the peaks may shift in position from speech frame to speech frame, they are sometimes split and sometimes not, which leads to very annoying “musical noise”. 
     As illustrated by the exemplary algorithm presented below, the present invention solves this problem by dynamically adapting the length and position of the segments to the shape of the current estimate {circumflex over (Φ)} x [k]. Briefly, the algorithm starts by finding local maxima (peak positions) and local minima (valley positions) of {circumflex over (Φ)} x [k]. It then centers a segment on each maximum and distributes segments between the peaks to cover the valleys. When locating maxima and minima, a parametric spectrum estimate based on auto-regression is especially attractive, since such a spectrum is guaranteed to have at most M/2 peaks, where M is the model order. 
     Preferably the length of individual segments is adapted to the properties of the human auditory system, which has been studied in [4]. Based on this information the following relation between segment center ƒc and segment length may be obtained (for a frequency range of 256 bins and a sampling frequency of 8000 Hz, which gives a frequency resolution of 31.25 Hz/bin):          segment                   (     f   c     )       =     {                      93                 Hz             (     3                 bins     )     ,           0   ≤     f   c     ≤     906                 Hz                 155                 Hz             (     5                 bins     )     ,           906   &lt;     f   c     ≤     1417                 Hz                 218                 Hz             (     7                 bins     )     ,           1417   &lt;     f   c     ≤     1812                 Hz                 281                 Hz             (     9                 bins     )     ,           1812   &lt;     f   c     ≤     2250                 Hz                 343                 Hz             (     11                 bins     )     ,           2250   &lt;     f   c     ≤     2593                 Hz                 406                 Hz             (     13                 bins     )     ,           2593   &lt;     f   c     ≤     2937                 Hz                 468                 Hz             (     15                 bins     )     ,           2937   &lt;     f   c     ≤     3250                 Hz                 531                 Hz             (     17                 bins     )     ,           3250   &lt;     f   c     ≤     4000                 Hz                                                 
     A conversion to the discrete frequency domain k gives:          segment        (     k   c     )       =     {             3                 bins     ,           0   ≤     k   c     ≤   29                 5                 bins     ,           29   &lt;     k   c     ≤   45                 7                 bins     ,           45   &lt;     k   c     ≤   58                 9                 bins     ,           58   &lt;     k   c     ≤   72                 11                 bins     ,           72   &lt;     k   c     ≤   83                 13                 bins     ,           83   &lt;     k   c     ≤   94                 15                 bins     ,           94   &lt;     k   c     ≤   104                 17                 bins     ,           104   &lt;     k   c     ≤   128                                    
     Using this relation, the following algorithm, which is also illustrated in FIG. 5, may be used to determine a segmented and averaged filter transfer function H[k] with dynamically determined segment lengths and positions: 
     S1: Get next signal block of x[n] 
     S2: Determine {circumflex over (Φ)} x [k] of signal block 
     S3: Determine local maxima and minima of {circumflex over (Φ)} x [k] 
     S4: Set kmax to k-value of first maximum 
     S5: Set kmin to k-value of first minimum 
     S6: Set kc=kmax 
     S7: Determine average of {circumflex over (Φ)} x [k] in segment(kc) centered on kc Determine average of {circumflex over (Φ)} v [k] in the same segment Determine {overscore (H)}[segment] using averaged {circumflex over (Φ)} x [k] and {circumflex over (Φ)} v [k] 
     S8: If kc-segment(kc)/2&gt;kmin, then perform S 9 -S 10   
     S9: Set kc=kc-segment(kc) (the old value kc is used for segment(kc)) 
     S10: Determine average of {circumflex over (Φ)} x [k] in segment(kc) centered on kc Determine average of {circumflex over (Φ)} v [k] in the same segment Determine {overscore (H)}[segment] using averaged {circumflex over (Φ)} x [k] and {circumflex over (Φ)} v [k]Go to S 8   
     S11: Set kc=kmax 
     S12: Set kmin to k-value of next minimum 
     S13: If kc+segment(kc)/2&lt;kmin then perform S 14 -S 15   
     S14: Set kc=kc-segment(kc) (the old value kc is used for segment(kc)) 
     S15: Determine average of {circumflex over (Φ)} x [k] in segment(kc) centered on kc Determine average of {circumflex over (Φ)} v [k] in the same segment Determine {overscore (H)}[segment] using averaged {circumflex over (Φ)} x [k] and {circumflex over (Φ)} v [k] Go to S 13   
     S16: If kmax is the last maximum, go to S 1   
     S17: Set kmax to k-value of next maximum and go to S 6   
     Using this algorithm on the spectrum in FIG. 1 produces the segmented and averaged spectrum in FIG.  4 . As an illustration, in FIG. 4 the local maxima are located at: 
     MAX1: k=20 
     MAX2: k=41 
     MAX3: k=73 
     and the local minima are located at: 
     MIN1: k=0 
     MIN2: k=31 
     MIN3: k=61 
     MIN4: k=128 
     Applying the algorithm above to the second maximum at k=41, for example, gives a 5 bin segment centered on k=41, two 5 bin segments to the left of the maximum and two 7 bin segments to the right of the maximum. When comparing FIG. 2 to FIG. 1, it is noted that segments covering a peak are always centered on the peak. Furthermore, it is noted that lower frequencies result in shorter segments. As noted above, if the peaks change position from frame to frame, the algorithm will guarantee that the segments are still centered on the peaks and that the segment width is adapted to the location of the peaks. 
     FIG. 6 is a block diagram illustrating an exemplary embodiment of a filter design apparatus in accordance with the present invention, in this case used for noise suppression by spectral subtraction. A stream of noisy speech samples x[n] are forwarded to a buffer  10 , which collects a block or frame of samples. That is, the buffer collects the samples as blocks or frames in a “piece-wise” fashion for processing. A spectrum estimator  12  finds the AR parameters of this block and uses these parameters to determine the power spectral density estimate of the current block of the noisy speech signal x[n]. Typically this estimate has 128 or 256 samples. A max-min detector  14  searches the estimate for local maxima and minima. The locations of the local maxima and minima are forwarded to a segment distributor  18  that distributes the segments in accordance with the method described with reference to FIG.  5 . The segment locations and lengths are forwarded to an averager  20 . Averager  20  receives the samples of estimate and forms the average in each specified segment. During a block without speech, a block of background noise signal v[n] is collected in a buffer  22 . A spectrum estimator  24  finds the AR parameters of this block and uses these parameters to determine the power spectral density estimate of the block of the background noise signal v[n]. This estimate has the same number of samples as estimate. The segment locations and lengths from segment distributor  18  are also forwarded to another averager  26 . Averager  26  receives the samples of estimate and forms the average in each specified segment. Both averagers  20 ,  26  forward the average values in each segment to a filter calculator  28 , which determines a value of the filter transfer function for each segment. This produces a segmented filter represented by block  30 . This filter is forwarded to an input of a multiplier  32 . The signal block in buffer  10  is also forwarded to a Fast Fourier Transform (FFT) block  34 , which transforms the block to the frequency domain. The length of the transformed block is the same as the length of the segmented filter. The transformed signal is forwarded to another input of multiplier  32 , where it is multiplied by the segmented filter. Finally, the filtered signal is transformed back to the time domain in an Inverse Fast Fourier Transform (IFFT) block  36 . 
     Typically the different blocks in FIG. 6 are implemented by one or several micro processors or micro/signal processor combinations. They may, however, also be implemented by one or several ASICs (application specific integrated circuits). 
     A similar structure may be used for non-linear filtering in echo cancellation. In this case x[n] represents the residual echo contaminated signal and v[n] is replaced by an estimate of the residual echo e[n]. Another difference is that in this case the estimates {circumflex over (Φ)} x [k] and {circumflex over (Φ)} e [k] are from the same speech frame (in noise suppression by spectral subtraction the noise spectrum is considered stationary and estimated during speech pauses). 
     It will be understood by those skilled in the art that various modifications and changes may be made to the present invention without departure from the scope thereof, which is defined by the appended claims. 
     REFERENCES 
     [1] U.S. Pat. No. 5,839,101 (A. Vähitalo et al). 
     [2] J. S. Lim and A. V. Oppenheim, “Enhancement and bandwidth compression of noisy speech”, Proc. of the IEEE, Vol. 67, No. 12, 1979, pp. 1586-1604. 
     [3] S. F. Boll, “Suppression of acoustic noise in speech using spectral subtraction”, IEEE Trans. on Acoustics, Speech and Signal Processing, Vol. ASSP-27, No. 2, 1979, pp. 113-120. 
     [4] U. Zölser, “Digital audio signal processing”, John Wiley &amp; Sons, Chichester, U.K., 1997, pp. 252-253.