text: embodiments of the present invention may be implemented in sound - processing technologies that benefit from gain control systems , e . g ., hearing prostheses , telecommunications systems , and the like . such systems typically perform a frequency analysis ( e . g ., via a filter bank or a fast fourier transform unit ) that splits an audio signal into analysis signals distributed across multiple frequency bands and then separately adjust the gain of each band . the processing of an audio signal for a device having an agc system , e . g ., a hearing prosthesis such as a cochlear implant , according to an embodiment of the present invention is shown in fig1 a . this example shows a four - band agc system for simplicity of illustration , but a higher number of bands ( for example 22 ) is more typical . an audio signal 100 ( e . g ., derived from a source such as a microphone , telecoil , etc ., typically with a pre - amplifier or front - end agc , not shown in fig1 a ) is split into four frequency bands by four band - pass filters 101 through 104 ( which can comprise a frequency analysis unit , e . g ., a fast fourier transform unit , not shown ). each band - pass filter ( bpf ) passes a different band of frequencies . band - pass filters 101 through 104 produce band signals 111 through 114 that are applied to envelope detectors 121 through 124 to produce envelopes 131 through 134 . some implementations use a quadrature pair of band - pass filters in each band , followed by quadrature envelope detection to produce envelopes 131 through 134 . envelopes 131 through 134 are applied to variable - gain amplifiers 141 through 144 to produce scaled envelopes 161 through 164 . this operation is equivalent to multiplying envelopes 131 through 134 by band gains 151 through 154 . scaled envelopes 161 through 164 are applied to instances 171 through 174 of a type of feature - based regulator ( fbr ) that determines gain ( namely , an fbr - g ) ( discussed in more detail below ) to determine gains 151 through 154 . scaled envelopes 161 through 164 are applied to instantaneous non - linear compression blocks 181 through 184 , also known as loudness growth functions ( lgfs ), to produce magnitude signals 191 through 194 . magnitude signals are further processed ( not shown in fig1 a ) to determine the stimulation on a corresponding electrode , for example as described in loizou ( 1998 ), mimicking the human ear , ieee signal processing magazine , 15 : 101 - 130 . when fitting a cochlear implant system to a recipient , the appropriate stimulation levels for each electrode must be determined . typically , electrical stimulation is delivered in the form of biphasic pulses . the loudness of a pulse train on an electrode depends on the phase width ( typically 10 to 50 microseconds ), the gap between phases ( typically 0 to 20 microseconds ), the current ( typically 10 to 1000 microamperes ), and the pulse rate ( typically 250 to 4000 pulses per second ). typically , the timing parameters ( phase width , phase gap and pulse rate ) are held constant , and the loudness is varied by varying the current . the lowest current that is delivered on an electrode is here denoted as the lower current level . the highest current that is delivered on an electrode is here denoted as the upper current level . the lower and upper current levels vary between recipients , and also vary between electrodes in a single recipient . an example lgf input - output function is shown in fig1 a . as seen in fig1 a , scaled envelope amplitudes equal to a specified saturation level are mapped to magnitude value of 1 . 0 , which will result in stimulation at the upper current level . the saturation level is often taken as a reference point , e . g ., labeled as 0 db in fig1 a . scaled envelope amplitudes equal to a specified base level are mapped to magnitude value 0 . 0 , which will result in stimulation at the lower current level . the dynamic range is defined as the ratio of the saturation level to the base level . typical dynamic range values are from 30 to 50 db ; fig1 a shows a dynamic range of 40 db . the lgf prevents excessive loudness by limiting the current on each electrode to the corresponding upper current level . however , scaled envelope amplitudes greater than the saturation level are clipped to magnitude value 1 . 0 , and hence the upper current level . this clipping is a form of distortion , and one goal of the present invention is to reduce this clipping . fig1 b shows an lgf module 1200 according to an embodiment of the present invention . envelope 1201 is applied to level modifier 1202 to produce signal 1203 . the operation of level modifier 1202 can be expressed in the matlab ® brand of high - level programming language made available by mathworks ®, inc ., e . g ., as follows : if v & gt ;= sat_level r = 1 ; elseif v & lt ;= base_level r = 0 ; else r = ( v − base_level ) / ( sat_level − base_level ); end where v is the envelope sample , base_level is the lgf base level 1206 , sat_level is the lgf saturation level 1207 , and r is signal 1203 . in some embodiments of the present invention ( e . g ., fig1 a ), base level 1206 and saturation level 1207 are predetermined values . in other embodiments ( e . g ., fig1 b ), base level 1206 and saturation level 1207 are control signals that are generated by feature - based regulators ( discussed in more detail below ). in some embodiments of level modifier 1202 , the division operation is avoided by taking logarithms . in this case , the operation of level modifier 1202 can be expressed in the matlab ® language , e . g ., as follows : signal 1203 is applied to logarithmic compression module 1204 to produce magnitude signal 1205 . the operation of module 1204 can be expressed in the matlab ® language , e . g ., as follows : where alpha is a coefficient determining the amount of compression , and m is magnitude 1205 . in some embodiments , module 1204 is implemented as a look - up table . in other embodiments , module 1204 is implemented as a piece - wise linear function using interpolation . in an embodiment in which level modifier 1202 takes logarithms , then module 1204 can compensate by incorporating an exponential operation . the processing of an audio signal for a cochlear implant according to another embodiment of the present invention is shown in fig1 b . this example shows a four - band system for simplicity of illustration , but a higher number of bands ( for example 22 ) is more typical . audio signal 100 is processed to produce envelopes 131 through 134 in the same manner as in fig1 a . envelopes 131 through 134 are applied to variable lgf blocks 1081 through 1084 , to produce magnitude signals 1091 through 1094 . envelopes 131 through 134 are also applied to instances of a type of feature - based regulator ( fbr ) that determines base level ( namely , an fbr - b ) 1041 through 1044 ( discussed in more detail below ), producing base level signals 1051 through 1054 . envelopes 131 through 134 are also applied to instances of a type of feature - based regulator that determines saturation level ( namely , an fbr - s ) 1061 through 1064 ( discussed in more detail below ), producing saturation level signals 1071 through 1074 . in contrast to the lgf blocks 181 through 184 in fig1 a , which have a fixed base level and saturation level , the variable lgf blocks 1081 through 1084 in fig1 b have base levels and saturation levels which are determined by the control signals 1051 through 1054 and 1071 through 1074 respectively . the processing of an audio signal for a cochlear implant according to another embodiment of the present invention is shown in fig1 c . this example shows a four - band system for simplicity of illustration , but a higher number of bands ( for example 22 ) is more typical . audio signal 100 is processed to produce envelopes 131 through 134 in the same manner as in fig1 b . envelopes 131 through 134 are applied to variable lgf blocks 1081 through 1084 , to produce magnitude signals 1091 through 1094 . envelopes 131 through 134 are also applied to feature - based multi - band base level and saturation level regulator 1100 ( discussed in more detail below ), producing base level signals 1151 through 1154 and saturation level signals 1171 through 1174 . the difference between the regulator 1100 in fig1 c and the regulators 1041 through 1044 and 1061 through 1064 in fig1 b is that regulator 1100 allows dependency or co - ordination between the bands . the processing of an audio signal for an application that provides an audio signal output , according to an embodiment of the present invention is shown in fig2 . such applications include conventional hearing aids , bone - anchored hearing aids , and telecommunication systems . this example shows a four - band agc system for simplicity of illustration , but a lower or higher number of bands may be used . an audio signal 200 is split into four frequency bands by four band - pass filters 201 through 204 ( which can comprise a frequency analysis unit , e . g ., a fast fourier transform unit , not shown ). each band - pass filter ( bpf ) passes a different band of frequencies . band - pass filters 201 through 204 produce band signals 211 through 214 that are applied to variable - gain amplifiers 221 through 224 to produce scaled band signals 241 through 244 . this operation is equivalent to multiplying band signals 211 through 214 by band gains 231 through 234 . scaled band signals 241 through 244 are applied to envelope detectors 251 through 254 to produce scaled envelopes 261 through 264 . scaled envelopes 261 through 264 are applied to gain - type feature based regulators ( fbr - gs ) 271 through 274 ( discussed in more detail below ) to determine gains 231 through 234 . scaled band signals 241 through 244 are applied to combine module 280 to produce an audio output signal 290 . combine module 280 typically includes a summing operation . alternatively , if audio signal 200 is divided into bands by an fft , then combine module 280 incorporates an inverse fft . embodiments of the present invention as shown in fig1 a , fig1 b , fig1 c and fig2 may be implemented as analog signal processing , digital signal processing ( dsp ), or a mixture of analog and digital . in a dsp implementation , the audio sample rate is defined as the rate at which audio signal 100 or 200 is sampled . some telecommunications systems use an audio sample rate of 8000 hz . a typical cochlear implant system uses an audio sample rate of 16000 hz . to reduce the processing load , envelopes 131 through 134 of fig1 a or fig1 b or fig1 c can be down - sampled to a lower rate . for example , if the cochlear implant stimulates at 1000 pulses per second on each channel , the envelopes can be calculated at 1000 hz . this rate will be termed the envelope sample rate . the gain - type feature - based regulators ( fbr - gs ) 171 through 174 in fig1 a and 271 through 274 in fig2 , and the base - level - type feature - based regulators ( fbr - bs ) 1041 through 1044 and the saturation - level - type feature - based regulators ( fbr - ss ) 1061 through 1064 in fig1 b are all examples of feature - based regulators . a feature - based regulator ( fbr ) 460 according to an embodiment of the present invention is shown in fig3 a . the overall operation is that signal 300 is processed by fbr 460 to produce control signal 450 . in more detail , signal 300 is applied to a set of feature extractors ( fx ) 311 through 313 , to produce feature value ( fv ) signals 321 through 323 , which are applied to feature combiner 330 . feature combiner 330 produces combined feature signal 410 , which is applied to parameter scaler 420 , producing signal 430 . signal 430 is applied to parameter limiter 440 to produce control signal 450 . in both fig1 a and fig2 , the control signal produced by each fbr is a gain , and the input is a scaled envelope ( i . e ., an envelope whose amplitude is affected by that gain ). in fig1 b and fig1 c , the inputs to the fbrs are envelopes , and the control signals produced are the base levels and saturation levels of the lgf modules . in each case , the control signal 450 affects the signal level in one band of the overall system , based on the information obtained by the feature extractors . for the purposes of illustration , fbr 460 shown in fig3 a utilizes three features . however , an fbr may utilize any number of features . suitable methods for the feature combiner 330 to combine the feature value signals include a weighted sum , the maximum value , the minimum value , or the median value . fig3 b shows an fbr 461 according to another embodiment of the present invention . fbr 461 utilizes a single feature extractor 311 , which produces feature value signal 321 . as there is only one feature , no feature combiner is needed , and feature value signal 321 is taken directly to parameter scaler 421 . fig3 c shows a fbr 462 according to another embodiment of the present invention . fbr 462 is similar to fbr 461 , except that feature value signal 321 is applied to feature decision module ( fdm ) 331 ( described in more detail below ), to produce feature decision signal 341 . feature decision signal 341 is a boolean signal ( true or false ), or equivalently a binary signal , taking the values 1 or 0 . the feature decision signal 341 is applied to parameter scaler 422 . fig3 d shows a feature combiner 700 according to another embodiment of the present invention . feature value signals 321 through 323 are applied to corresponding feature decision modules 331 through 333 . feature decision signals ( boolean signals ) 341 through 343 are applied to decision logic 1701 , which produces direction signal 1702 . decision logic 1701 is typically implemented as a sequence of if - then - else logical statements . in one embodiment , direction 1702 is represented by a variable with three possible values : + 1 ( meaning increase the control signal ), − 1 ( meaning decrease the control signal ), or 0 ( meaning no change in the control signal ). for example , if fbr 460 of fig3 a was implemented as an fbr - g , control signal 450 would be gain , and so parameter scaler 420 would be referred to as a gain scaler , and parameter limiter 440 could be referred to as a gain limiter . similarly , for example , with reference to fig3 d , decision logic 1701 can be referred to as gain logic . a gain - type feature - based regulator ( fbr - g ) 370 according to an embodiment of the present invention is shown in fig3 e . fbr - g 370 is an example of fbr - g modules 171 - 174 and 271 - 274 . the overall operation is that scaled envelope 300 is processed by fbr - g 370 to produce gain 360 . note that in both fig1 and fig2 , the output of each fbr - g is a gain , and the input is a scaled envelope ( i . e ., an envelope whose amplitude is affected by that gain ). in more detail , scaled envelope 300 is applied to a set of feature extractors ( fx ) 311 through 313 , to produce feature value signals 321 through 323 , which are applied to feature decision modules ( fdms ) 331 through 343 , to produce feature decision signals 341 through 343 . each feature decision signal is a boolean signal ( true or false ), or equivalently a binary signal , taking the values 1 or 0 . the feature decision signals are applied to gain rule 350 ( described in more detail below ) which produces gain 360 . a characteristic of a fbr ( e . g ., 460 , 461 , 462 , or 370 ) is the update rate , defined as the rate at which the control signal ( gain , base level or saturation level , e . g ., 450 , 451 , 452 , or 360 ) is changed . this may be equal to the envelope sample rate ( for example 1000 hz ), or may be lower . typically , the feature extractors ( e . g ., 311 through 313 ) produce their feature value signals 321 through 323 at the update rate . the fdms ( e . g ., 331 through 333 in fig3 c , fig3 d and fig3 e ), e . g ., all have the same structure . an fdm 331 according to an embodiment of the present invention is shown in fig4 a , where fdm 331 is an example of fdms 331 - 334 . fdm 331 includes comparator 403 that produces feature decision signal 341 indicating whether feature value signal 321 exceeds feature decision threshold 402 . feature decision threshold 402 is , e . g ., a predetermined value stored in memory 401 . fig1 a shows a gain rule 350 according to an embodiment of the present invention . feature decision signals ( boolean signals ) 341 through 343 are applied to gain logic 701 , which produces gain direction 702 . gain logic 701 is typically implemented as a sequence of if - then - else logical statements . in one embodiment , gain direction 702 is represented by a variable with three possible values : + 1 ( meaning increase gain ), − 1 ( meaning decrease gain ), or 0 ( meaning no gain change ). for the purposes of illustration , gain rule 350 shown in fig3 e and fig1 a utilizes three features . however , a gain rule may utilize any number of features . gain logic 701 in fig1 a is equivalent to decision logic 1701 in fig3 d . fig1 b , 10c , and 10d show examples 710 , 720 and 730 of gain logic 701 or decision logic 1701 according to additional embodiments of the present invention , with different numbers of features , e . g ., expressed in the matlab ® language . fig1 b shows decision logic 710 that utilizes a single feature . fig1 c shows decision logic 720 that utilizes two features . fig1 d shows decision logic 720 that utilizes three features . in some embodiments utilizing decision logic ( e . g ., 1701 in fig3 d ), the parameter scaler modifies the existing control signal in a proportional manner , according to the value of direction 1702 . the operation of parameter scaler can be expressed in the matlab ® language , e . g ., as : if direction & lt ; 0 param = param * down_factor elseif direction & gt ; 0 param = param * up_factor end where param is a variable representing the control signal ( e . g ., one of gain , base level , saturation level , etc . ), up_factor is a pre - determined factor for increasing the control signal , and down_factor is a pre - determined factor for decreasing the control signal . an example calculation of the up_factor and down_factor can be expressed in the matlab ® language , e . g ., as follows : where update_rate is the rate at which the control signal is updated , up_slew_rate is the increase in db per second and down_slew_rate is the decrease in db per second . parameter limiter ( 440 , 441 , or 442 ) constrains the control signal to lie between a maximum and a minimum value . the operation of the parameter limiter can be expressed in the matlab ® language , e . g ., as : if param & gt ; param_max param = param_max elseif param & lt ; param_min param = param_min end where param_min is the minimum value of the control signal and param_max is the maximum value . as a specific example , in fig1 a , gain scaler 703 modifies the existing gain in a proportional manner , according to the value of gain direction 702 . the operation of gain scaler 703 can be expressed in the matlab ® language , e . g ., as : if gain_direction & lt ; 0 gain = gain * gain_down_factor elseif gain_direction & gt ; 0 gain = gain * gain_up_factor end where gain_up_factor is a pre - determined factor for increasing the gain , and gain_down_factor is a pre - determined factor for decreasing the gain . an example calculation of the gain_up_factor and gain_down_factor can be expressed in the matlab ® language , e . g ., as follows : where update_rate is the rate at which the gains are updated , gain_up_slew_rate is the gain increase in db per second ( e . g ., 3 db per second ) and gain_down_slew_rate is the gain decrease in db per second ( e . g ., − 10 db per second ). gain limiter 705 constrains the gain to lie between a maximum and a minimum value . the operation of gain limiter 705 can be expressed in the matlab ® language , e . g ., as : if gain & gt ; gain_max gain = gain_max elseif gain & lt ; gain_min gain = gain_min end a variety of features may be usefully employed in an embodiment of a feature - based regulator ( fbr ), for example , peak level , minimum level , noise floor , percentiles , modulation depth , specific loudness , and signal - to - noise ratio . some additional feature extractors 500 , 600 , 620 , 640 and 660 are disclosed below in the context of fig5 through 9 , respectively . fig5 a shows a feature extractor 500 according to an embodiment of the present invention . comparison module 530 compares envelope 300 to boundary signal 520 , and produces boundary comparison ( bc ) signal 540 . several embodiments of comparison module 530 are described below . bc 540 can contain fluctuations on the same time scale as envelope 300 . bc signal 540 is applied to time interval observer 550 . time interval observer 550 summarizes the behavior of bc 540 over the most recent time interval , and produces summarized boundary comparison ( sc ) type of feature value ( fv ), namely fv ( sc ), signal 560 , which fluctuates more slowly than envelope signal 300 . examples of suitable time interval durations range from 50 milliseconds to several seconds . several embodiments of time interval observer 550 are described below . fig5 b shows feature extractor 501 , according to another embodiment of the present invention , in which boundary signal 520 is a predetermined value stored in memory 510 . in other embodiments , boundary signal 520 is a time - varying signal ( described in more detail below ), rather than a predetermined value . fig6 shows feature extractor 600 according to an embodiment of the present invention , where feature extractor 600 is an example of feature extractor 500 . comparator 531 is an example of comparison module 530 of fig5 a - 5b . comparator 531 produces bc signal 541 indicating whether scaled envelope 300 exceeds boundary value 520 . bc signal 541 is a boolean signal ( true or false ), or equivalently a binary signal , taking the values 1 or 0 . time interval observer 601 is an example of time interval observer 550 in fig5 a - 5b . accumulator 602 operates according to a series of time intervals , where the segment length is defined as the number of samples of scaled envelope signal 300 in each time interval . accumulator 602 is cleared at the beginning of each time interval . during each time interval , accumulator 602 sums bc 541 ( a binary signal ). in other words , it counts the number of samples for which scaled envelope 300 exceeds boundary signal 520 . the output of accumulator 602 is count 603 , which is an example representation of the proportion of scaled envelope samples that exceeds the boundary signal . at the end of each time interval , the value of count 603 lies in the range zero up to the segment length ( i . e ., up to the maximum number of samples that can be operated upon during the interval ). the segment length determines the minimum number of bits for accumulator 602 . for example , if the segment length is 25 , then accumulator 602 must have at least 5 bits , while if the segment length is 250 , then accumulator 602 must have at least 8 bits . although accumulator 602 operates at the envelope sample rate , only the final value of count 603 at the end of each time interval is provided as the output of time interval observer 601 , namely as fv ( sc ) 610 , which is an example of a summarized boundary comparison ( sc ) type of feature value ( fv ) signal . this reduction in processing rate is represented by down - sample block 604 . for example if the envelope sample rate is 1000 hz , and the time intervals are 100 milliseconds in duration , then the segment length is 100 , and the update rate is 10 hz . the operation of feature extractor 600 can be expressed in the matlab ® language , e . g ., as : count = 0 ; for n = 1 : segment_length if v ( n ) & gt ; boundary ( n ) count = count + 1 ; end end where v is a segment of the envelope signal 300 containing segment_length samples , n is the sample index within the segment , boundary is a segment of boundary signal 520 , and count is the feature value signal 610 . in an alternative embodiment of feature extractor 600 , the output of accumulator 602 is normalized ( i . e ., divided by the number of samples in the time interval ) to obtain a feature value signal 610 that represents the proportion of envelope samples that exceed the boundary signal . this step can be expressed in the matlab ® language , e . g ., as : such a proportion necessarily lies in the range 0 to 1 . this normalization step is not strictly necessary , and is typically omitted from a fixed - point dsp implementation . and yet the normalization step has an advantage of providing a feature signal that has a more readily understood meaning , and it allows the corresponding decision threshold to also be expressed as a proportion , independent of the time interval duration or update rate . it can be desirable to increase the time duration over which the system observes the envelope levels when making decisions on the appropriate control signal . feature extractor 600 has the property that increasing the time interval duration leads to a lower update rate and larger control signal steps , which may become objectionable to the listener . this issue can be alleviated by utilizing overlapping time intervals . for example , the time interval duration can be increased to one second ( i . e ., segment_length = 1000 samples ), while keeping a 10 hz update rate , so that each time interval has a 90 % overlap with the previous time interval . to increase computational efficiency , for example , each time interval can be divided into 10 non - overlapping sub - segments , each having 100 samples . the number of envelope samples exceeding the boundary signal is counted for each sub - segment , and the resulting counts are stored in a first - in , first - out ( fifo ) buffer , of length 10 . the final count for the time interval ending at each sub - segment is obtained as the sum of the last 10 sub - segment counts . this operation is equivalent to a running sum operation on the sequence of sub - segment counts , i . e ., a finite - duration impulse response ( fir ) filter with all coefficients equal to one . an embodiment that operates in this manner is shown in fig7 . fig7 illustrates feature extractor 620 according to an embodiment of the present invention , where feature extractor 620 is another example of feature extractor 500 . feature extractor 620 is similar to feature extractor 600 , the difference being in time interval observer 621 , which is another example of time interval observer 550 from fig5 a - 5b . time interval observer 621 comprises accumulator 622 and down - sample block 624 , which operate as in feature extractor 600 , and further includes a low - pass filter 626 applied to count signal 625 . low - pass filter 626 operates at the update rate , and extends the time interval over which bc 541 is observed . normalization , as previously described , can optionally be applied to count signal 625 or to filter output fv ( sc ) 630 , which is an example of a summarized boundary comparison ( sc ) type of feature value ( fv ) signal . in one example embodiment , low - pass filter 626 is an fir filter with all coefficients equal to one , as previously described . alternatively , the fir coefficients can be designed to give a specified time response , for example to give less weight to past segments . alternatively an order - statistics filter can be applied to the sequence of counts , such as for median filtering , or for example taking the maximum count over the last 10 segments . alternatively filter 626 can be an infinite - duration impulse response ( iir ) filter . this has an advantage that the signals can be observed over much longer time intervals whilst minimizing the memory requirements . for example , a first - order smoothing filter can be expressed in the matlab ® language , e . g ., as : where smoothed_count is the filtered count signal 630 , and alpha is a decay factor in the range 0 to 1 . this requires one additional word of storage per band and per target . as a special case , if alpha is set equal to 0 . 5 , the expression becomes : in this special case , no additional storage is required : at the start of each segment , instead of initializing the counts to zero , the previous values of the counts are halved , and then the counts are incremented from these non - zero starting points ; thus , one memory location holds the sum of the current count and its history . effectively the accumulator 622 and the filter 626 have been combined . this arrangement can be further generalized as shown in fig8 . fig8 illustrates feature extractor 640 according to an embodiment of the present invention , where feature extractor 640 is another example of feature extractor 500 . time interval observer 641 is an example of time interval observer 550 in fig5 a - 5b , and comprises low - pass filter 642 and down - sample block 644 . filter 642 acts directly on the bc 541 . because bc 541 is a binary signal , filter 642 can be implemented efficiently , e . g ., in hardware , with many multiplications replaced by conditional addition . filter output signal 643 represents the average value of bc 541 , in other words , it represents the proportion of time that envelope signal 300 exceeds the boundary signal 520 . filter 642 can be designed to give a specified time response ; for example , to give more weight to more recent samples . in one example embodiment , filter output signal 643 is calculated at the envelope sample rate , and is down - sampled by down - sample block 644 to give fv ( sc ) 650 at the update rate , where fv ( sc ) is which is an example of a summarized boundary comparison ( sc ) type of feature value ( fv ) signal . the skilled artisan would understand how to merge down - sample block 644 into filter 642 , e . g ., for the purposes of enhancing efficiency . alternatively , down - sample block 644 can be omitted if it is desired to make the update rate equal to the envelope sample rate . fig9 illustrates feature extractor 660 according to an embodiment of the present invention , where feature extractor 660 is another example of feature extractor 500 . block 661 is an example of comparison module 530 of fig5 a - 5b . in contrast to feature extractors 600 , 620 , and 640 , which use comparator 531 to determine whether the envelope signal 300 exceeds boundary signal 520 , block 661 calculates the amount by which envelope signal 300 exceeds boundary signal 520 . subtractor 662 subtracts boundary signal 520 from envelope signal 300 to produce difference signal 663 , which is rectified by half - wave rectifier ( hwr ) 664 . the operation of block 661 can be expressed in the matlab ® language , e . g ., as : where v is envelope signal 300 , boundary is boundary signal 520 , d is difference signal 663 , and excess is a boundary comparison ( bc ) signal 665 . bc 665 is then applied to time interval observer 666 , which is an example of time interval observer 550 in fig5 a - 5b , which comprises low - pass filter 667 and down - sample block 669 , and which produces a signal fv ( sc ) 670 , which is an example of a summarized boundary comparison ( sc ) type of feature value ( fv ) signal . fv ( sc ) 670 characterizes the average amount by which the envelope 300 exceeds boundary signal 520 over the most recent time interval . fig1 illustrates a short segment of one band of a speech signal and can serve to illustrate differences between feature extractor 660 and feature extractors 600 , 620 , and 640 . this example is a gain - type feature - based regulator ( fbr - g ), in which the control signal 670 is gain ( as in fig1 a ), and the boundary signal 520 is a predetermined boundary level ( as in fig5 b ). the shaded region indicates the amount by which the scaled envelope signal 300 exceeds the boundary level 520 , which is 0 db in this example . there are two excursions of the scaled envelope signal above the boundary level : the first excursion 1001 starts at a time of about 0 . 15 seconds and the second excursion 1002 starts at a time of about 0 . 45 seconds . if feature extractor 600 , 620 , or 640 is used , then the first excursion 1001 produces a smaller gain decrement than the second excursion 1002 , because the first excursion has a shorter duration . however , if feature extractor 660 is used , filter 667 acts as an integrator , estimating the area of the shaded regions , and so the first excursion 1001 produces a greater gain decrement than the second excursion 1002 , because the first excursion has a larger area . thus , feature extractor 660 is more responsive to large - amplitude , short - duration transients . some specific examples of gain - type feature - based regulators ( fbr - gs ) are described below . each , e . g ., has the same overall structure as fbr - g 370 in fig3 e , but with different numbers and types of internal components . an fbr - g 810 according to an embodiment of the present invention is shown in fig1 . like fbr - g 370 , fbr - g 810 is an example of fbr - gs 171 - 174 and 271 - 274 . fbr - g 810 utilizes a single feature extractor , namely peak detector 811 . peak detector 811 produces feature value signal , designated peak level 812 . an embodiment of peak detector 811 can be expressed in the matlab ® language , e . g ., as : where v ( n ) is a sample of scaled envelope signal 300 , x ( n ) is a sample of peak level 811 , x ( n − 1 ) is the previous sample of peak level 811 , and peak_decay_weight is determined from the envelope sample rate and a predetermined peak decay time , which can be expressed in the matlab ® language , e . g ., as follows : feature decision module 813 compares peak level 812 to peak threshold 815 , and produces feature decision signal 817 , denoted peak_too_high . feature decision signal peak_too_high 817 is applied to gain rule 818 , which utilizes , e . g ., decision logic 710 from fig1 b . the overall operation of fbr - g 810 is that if the peak level is too high , the gain is reduced , otherwise the gain is increased . in a cochlear implant system , an example value for the peak threshold is a point mid - way between the base level and the saturation level , for example 20 db below the saturation level in fig1 a . example values for other parameters are : peak decay time of 0 . 5 seconds , gain slew up rate of 6 db per second , and gain slew down rate of 6 db per second . thus , fbr - g 810 acts so that during speech activity , the peak levels spend about half of the time above the peak threshold , thus , aiding audibility . in the absence of speech activity , the gain increases up to the maximum gain , which is set so that background noise is not objectionable . fig1 illustrates an fbr - g 820 according to an embodiment of the present invention . like fbr - gs 370 and 810 , fbr - g 820 is an example of fbr - g 171 - 174 and 271 - 274 . fbr - g 820 can be used , e . g ., with a cochlear implant , as in fig1 a . fbr - g 820 utilizes two feature extractors , 821 and 831 . feature extractor 821 , denoted clipping extractor , is an instance of feature extractor 620 from fig7 , and incorporates normalization as described previously . it is configured with boundary value 520 equal to the lgf saturation level shown in fig1 a . thus , bc 541 indicates whether scaled envelope 300 exceeds the lgf saturation level ; in other words , it indicates whether the scaled envelope is clipped . thus , feature value signal 822 represents the proportion of scaled envelope samples that were clipped during the last time interval , and is denoted clipping_proportion . feature decision module 823 compares feature value signal clipping_proportion 822 to decision threshold 825 , to produce feature decision signal 827 . an example decision threshold is 0 . 1 . in this case , feature decision signal 827 will be high ( true ) if more than 10 % of scaled envelope samples were clipped in the last time interval . feature decision signal 827 is denoted as clipping_too_often in a logic statement below . feature extractor 831 is a noise floor estimator . an example embodiment of feature extractor 831 is described in martin r ( 2001 ), “ noise power spectral density estimation based on optimal smoothing and minimum statistics ,” ieee transactions on speech and audio processing , 9 : 504 - 512 . feature value signal 832 is the estimated noise floor . feature decision module 833 compares the noise floor to decision threshold 835 , to produce feature decision signal 837 . an example decision threshold is the lgf base level shown in fig1 a . if feature value signal ( estimated noise floor ) 832 exceeds decision threshold 835 , then feature decision signal 837 is set to a state indicating that the noise floor exceeds the lgf base level . feature decision signal 837 is denoted as noise_floor_too_high in a logic statement below . feature decision signals clipping_too_often 827 and noise_floor_too_high 837 are applied to gain rule 838 . the gain logic can be expressed in the matlab ® language , e . g ., as : fig1 illustrates another fbr - g 840 according to an embodiment of the present invention . like fbr - gs 370 , 810 and 820 , fbr - g 840 is an example of fbr - gs 171 - 174 and 271 - 274 . fbr - g 840 is similar to fbr - g 820 , except for the addition of a third feature extractor 841 . feature extractor 841 is denoted a mid - level extractor , and is an instance of feature extractor 620 from fig7 , and incorporates normalization as described previously . it is configured with boundary value 520 lying midway between the lgf saturation level and base level shown in fig1 a . thus , bc 541 indicates whether scaled envelope 300 is mapped into the upper section of the dynamic range ; in other words , is relatively loud . thus , feature value signal 842 represents the proportion of scaled envelope samples that were relatively loud during the last time interval . in a logic statement below , feature value signal 842 is denoted as loud_proportion . feature decision module 843 compares feature value signal loud_proportion 842 to decision threshold 845 , to produce feature decision signal 847 . an example decision threshold is 0 . 3 . if feature value signal loud_proportion 842 exceeds decision threshold 845 , then feature decision signal 827 is set to a state indicating that more than 30 % of scaled envelope samples were relatively loud in the last time interval . feature decision signal 827 is denoted as loud_enough in a logic statement below . feature decision signals clipping_too_often 827 , noise_floor_too_high 837 , and loud_enough 847 are applied to gain rule 848 . the gain logic can be expressed in the matlab ® language , e . g ., as : fig2 illustrates a saturation - type feature - based regulator ( fbr - s ) 900 according to an embodiment of the present invention . it is an example of fbr 461 of fig3 b , and fbr - ss 1061 through 1064 in fig1 b . the overall operation is that envelope signal 901 is processed by fbr - s 900 to produce saturation - level signal 908 . feature extractor 910 is an example of feature extractor 500 of fig5 a . comparator 902 compares envelope 901 and saturation - level signal 908 . if the comparator output is high , it indicates that the envelope is higher than the existing lgf saturation level , i . e ., clipping will occur . time interval observer 903 can utilize e . g ., embodiment 601 in fig6 in fig7 , or 641 in fig8 . feature value signal 904 represents the proportion of envelope samples that were clipped during the last time interval , and is denoted clipping_proportion . the operation of saturation level scaler 905 can be expressed in the matlab ® language , e . g ., as : if clipping_proportion & gt ; 0 slew_rate = up_slew_rate * clipping_proportion ; else slew_rate = down_slew_rate ; end step_db = slew_rate / update_rate ; factor = from_db ( step_db ); sat_level = sat_level * factor ; where up_slew_rate is the maximum increase in db per second and down_slew_rate is the decrease in db per second , and sat_level is a variable representing the lgf saturation level . saturation level limiter 907 constrains the saturation level between a minimum and maximum value . the minimum value of the saturation level in an adaptive lgf system is analogous to the maximum value of gain in an agc system . it is also beneficial to set a minimum offset between the base level and the saturation level . thus , fbr - s 900 employs a feedback loop , where if clipping occurs , then the saturation level is increased , with a slew rate proportional to the proportion of clipping ; and if no clipping occurs , then the saturation level is decreased , so that the lgf saturation level tends to follow the peak level of the envelope signal . fig2 illustrates a base - level - type feature - based regulator ( fbr - b ) 900 according to an embodiment of the present invention . it is an example of fbr 462 of fig3 c , and fbr - bs 1041 through 1044 in fig1 b . the overall operation is that envelope signal 901 is processed by fbr - b 910 to produce base level signal 918 . noise floor extractor 911 is an example of feature extractor 311 of fig3 c , and is similar to noise floor extractor 831 in fig1 and fig1 . feature value signal 912 is the estimated noise floor . comparator 913 compares the noise floor 912 to base level 918 , to produce feature decision signal 914 , which is denoted as noise_floor_too_high . the operation of base level scaler 905 can be expressed in the matlab ® language , e . g ., as : if noise_floor_too_high base_level = base_level * up_factor else base_level = base_level * down_factor end where up_factor and down_factor are predetermined values , as described previously . base level limiter 917 constrains the base level between a minimum and maximum value . thus , fbr - b 910 employs a feedback loop , where if the noise floor is higher than the base level , then the base level is increased ; and otherwise the base level is decreased , so that the lgf base level tends to follow the noise floor of the envelope signal . fig2 illustrates a feature - based multi - band base level and saturation level regulator ( fbr - r & amp ; fbr - s ) 920 according to an embodiment of the present invention . it is an example of fbr - r & amp ; fbr - s 1100 of fig1 c . in fig2 , thick lines represent a collection of signals , one for each band of the system . the overall operation is that the set of envelope signals 921 is processed by fbr - r & amp ; fbr - s 920 to produce a set of base level signals 941 ( where a signal set is denoted in fig2 via curly brackets ({ } enclosing the corresponding label ) and one saturation level signal 931 . in this embodiment , all lgf blocks 2281 - 2284 have a shared saturation level signal 931 . in more detail , a set of envelopes 921 are applied to a set of feature - based base level regulators 940 , to produce the set of base level signals 941 that includes member signals 941 a - 941 d that are provided to lgf blocks 2281 - 2284 , respectively . there is , e . g ., one feature - based base level regulator , and a corresponding base level signal , for each band . each feature - based base level regulator can be implemented as described previously , e . g ., as in fig2 . the set of envelopes 921 are also applied to maxima block 922 , which at each instant produces an output signal 923 equal to the largest of its input signals , i . e ., output signal 923 is the largest envelope . largest envelope 923 is applied to a fast saturation level regulator 924 , producing a fast saturation level 925 . in one embodiment , fast saturation level regulator 924 comprises a peak detector with an instantaneous rise time , and a release time in the range 50 to 750 milliseconds . largest envelope 923 is also applied to a slow saturation level regulator 926 , producing a slow saturation level 927 . in one embodiment , slow saturation level regulator 926 is implemented as in fig2 . a purpose of slow saturation level regulator 926 is to improve transitions from one environment to the next , e . g ., to compensate for transitions from one talker and another talker or from a quiet room and a noisy street . the set of base level signals 941 is also applied to maxima block 942 , which at each instant produces an output signal 943 equal to the largest of its input signals , i . e ., output signal 943 is the largest base level . the largest base level 943 is applied to constrain range block 944 , producing minimum saturation level 945 . the operation of constrain range block 944 can be expressed in the matlab ® language , e . g ., as : where the quantities are all expressed in decibels , and min_range is for example 20 db . this has the purpose of ensuring that the saturation level is kept at least a specified number of decibels above the base level , i . e ., to ensure that the dynamic range between saturation level and base level exceeds a minimum allowed value . fast saturation level 925 , slow saturation level 927 and minimum saturation level 945 are applied to maxima block 930 , which at each instant produces an output saturation level signal 931 equal to the largest of its input signals . fig1 is a schematic diagram of a sound processor module 1686 configured to be incorporated into a multi - band feature - based regulator system ( which can be implemented in , for example , a hearing prosthesis 1684 , e . g ., a cochlear implant system ) according to an embodiment of the present invention . sound processor module 1686 can include any of the feature - based regulator systems ( and their various fbr - g , etc .) discussed herein . in fig1 , the cochlear implant system comprises an external component 1685 ( e . g ., a behind - the - ear ( bte ) unit ) which is directly or indirectly attached to the body ( not shown ) of the recipient , and an internal or implantable component ( not shown ) which is temporarily or permanently implanted in the recipient . external component 1685 typically comprises one or more sound input elements for detecting sound such as a microphone 1683 , a sound processor module 1686 , a power source ( not shown ) and an external transmitter unit ( not shown ). sound processor module 1686 processes the output of microphone 1683 , which is typically positioned by an auricle of the recipient . sound processor module 1686 generates encoded signals , sometimes referred to as encoded data signals , which are provided to the external transmitter unit via a cable ( not shown ). sound processor module 1686 can include a programmable processor 1688 , e . g ., a digital signal processor ( dsp ), application - specific integrated circuit ( asic ), etc . processor 1688 is operatively coupled to a memory 1689 , e . g ., random access memory ( ram ) and / or read - only memory ( rom ). processor 1688 also is operatively coupled via interface 1687 , e . g ., to the microphone and the external transmitter unit . fig1 illustrates a flow diagram that describes a multi - band feature - based gain procedure implemented by , e . g ., a sound processor module for a cochlear implant ( e . g ., 1686 ), according to an embodiment of the present invention . starting at block 1701 , a frequency analysis ( e . g ., by a filter bank or by an fft ) is performed upon a digitized audio signal to generate analysis signals . at block 1702 , envelope detection is performed on each analysis signal . at block 1703 , each of the envelopes is multiplied by a corresponding one of a plurality of gain values , to generate scaled envelopes . at block 1704 , one or more features ( as discussed herein ) are extracted from each scaled envelope . at block 1705 , the features are compared to decision thresholds , to generate feature decision signals . at block 1706 , the gains are revised ( or in other words , refined ), based on the feature decision signals . at block 1707 , loudness growth functions are applied to the scaled envelopes to generate magnitude signals . at block 1708 , the magnitude signals are further processed to produce a set of stimulus pulses . fig1 illustrates a flow diagram that describes a multi - band feature - based adaptive lgf procedure implemented by , e . g ., a sound processor module for a cochlear implant ( e . g ., 1686 ), according to an embodiment of the present invention . starting at block 1801 , a frequency analysis ( e . g ., by a filter bank or by an fft ) is performed upon a digitized audio signal to generate analysis signals . at block 1802 , envelope detection is performed on each analysis signal . at block 1803 , one or more features ( as discussed herein ) are extracted from each envelope . at block 1804 , the lgf base levels and saturation levels are revised ( or , in other words , refined ), based on the extracted features . at block 1805 , loudness growth functions , utilizing the revised base levels and saturation levels , are applied to the envelopes to generate magnitude signals . at block 1806 , the magnitude signals are further processed to produce a set of stimulus pulses . fig1 illustrates a flow diagram that describes a multi - band feature - based gain procedure implemented by , e . g ., a sound processor module for an application that provides an audio signal output , according to an embodiment of the present invention . starting at block 1901 , a frequency analysis ( e . g ., by a filter bank or by an fft ) is performed upon a digitized audio signal to generate analysis signals . at block 1902 , each analysis signal is multiplied by a corresponding one of a plurality of gain values , to generate scaled analysis signals . at block 1903 , envelope detection is performed on each scaled analysis signal . at block 1904 , one or more features ( as discussed herein ) are extracted from each scaled envelope . at block 1905 , the features are compared to decision thresholds , to generate feature decision signals . at block 1906 , the gains are revised ( or , in other words , refined ), based on the feature decision signals . at block 1907 , the analysis signals are combined ( e . g ., by summation or by an inverse fft ) to produce an output signal . throughout the specification and the claims that follow , unless the context requires otherwise , the words “ comprise ” and “ include ” and variations such as “ comprising ” and “ including ” will be understood to imply the inclusion of a stated integer or group of integers , but not the exclusion of any other integer or group of integers . reference herein to “ one embodiment ” or “ an embodiment ” means that a particular feature , structure , operation , or other characteristic described in connection with the embodiment may be included in at least one implementation of the present invention . however , the appearance of the phrase “ in one embodiment ” or “ in an embodiment ” in various places in the specification does not necessarily refer to the same embodiment . it is further envisioned that a skilled person could use any or all of the above embodiments in any compatible combination or permutation . while various embodiments of the present invention have been described above , it should be understood that they have been presented by way of example only , and not limitation . it will be apparent to persons skilled in the relevant art that various changes in form and detail may be made therein without departing from the scope of the present invention . thus , the breadth and scope of the present invention should not be limited by any of the above - described exemplary embodiments , but should be defined only in accordance with the following claims and their equivalents .