I'm experimenting with the graphic equalizer built-into the SGTL5000 to improve the intelligibility of voice sounds by emphasizing the mid-range and attenuating the extreme high and low frequencies. It works, but I have a question about the range of the parameters that are used to configure the GEQ using the audioShield.eqBands library function. Here is my code:
//Tx Equalizer to improve voice intelligibility
// turn on in Tx mode only
audioShield.autoVolumeDisable(); // turn off AGC
// Activate the onboard pre-processor
audioShield.audioPreProcessorEnable();
// Turn on the 5-band graphic equalizer (there is also a 7-band parametric...see the Teensy docs)
audioShield.eqSelect(3);
// Bands (from left to right) are: Low (115 Hz, Low-Mid (300 Hz), Mid (990 Hz), High-Mid (3KHz) , High (9.9Khz).
// Valid values are -1 (-11.75dB) to 1 (+12dB)
// The settings below pull down the lows and highs and push up the mids for
// improved intelligibility in SSB mode
audioShield.eqBands(-1.0, 0, 0.6, -1.0, -1.0);
This works pretty well because the third band is centered on 990 Hz which is in the middle of the voice range. However if I increase the value much beyond 0.6, distortion can be heard (even thought he allowable range is -1.0 to 1.0). According to the digital audio processing block diagram in the datasheet, the GEQ (or either of the other two tone control options) is at the tail end of the digital audio chain, so in keeping with the library convention of 1.0 being the maximum level, it seems that it ought to be possible to set the GEQ band parameters higher than this without distortion. Or am I missing something?
It's a neat feature, especially since it comes for free, in terms of having no demand on CPU resources. I'd like to experiment with the parameteric equalizer too.
Thanks,
Bob
//Tx Equalizer to improve voice intelligibility
// turn on in Tx mode only
audioShield.autoVolumeDisable(); // turn off AGC
// Activate the onboard pre-processor
audioShield.audioPreProcessorEnable();
// Turn on the 5-band graphic equalizer (there is also a 7-band parametric...see the Teensy docs)
audioShield.eqSelect(3);
// Bands (from left to right) are: Low (115 Hz, Low-Mid (300 Hz), Mid (990 Hz), High-Mid (3KHz) , High (9.9Khz).
// Valid values are -1 (-11.75dB) to 1 (+12dB)
// The settings below pull down the lows and highs and push up the mids for
// improved intelligibility in SSB mode
audioShield.eqBands(-1.0, 0, 0.6, -1.0, -1.0);
This works pretty well because the third band is centered on 990 Hz which is in the middle of the voice range. However if I increase the value much beyond 0.6, distortion can be heard (even thought he allowable range is -1.0 to 1.0). According to the digital audio processing block diagram in the datasheet, the GEQ (or either of the other two tone control options) is at the tail end of the digital audio chain, so in keeping with the library convention of 1.0 being the maximum level, it seems that it ought to be possible to set the GEQ band parameters higher than this without distortion. Or am I missing something?
It's a neat feature, especially since it comes for free, in terms of having no demand on CPU resources. I'd like to experiment with the parameteric equalizer too.
Thanks,
Bob