Pop noise with activated ASRC
Hi there,
I have a question regarding the sample rate converters in the ADAU144X family.
If I connect a digital source during the DSP is running ("hot docking") I have severe pop noise on the outputs.
Even if I only press the "Pause" button on my digital source (in this case a CD-Player) I reckognize a rather silent click or pop noise.
These problems are almost gone, when I bypass the SRC by using the "SPDIF input" module instead of the "ASRC input" module (in this case the source of course needs to have the same sample rate as the DSP sample rate).
Is there any chance to make use of the "SPDIF input lock bit" (addr 57545) for solving my problems?
Any recommendations are welcome!
Regards,
Robin
Hello Robin,
When suddenly stopping or starting any digital audio source, whether the signal is going through the ASRCs or not, there will be a discontinuity in the output signal as it value instantaneously jumps to zero. This will cause the pop noise that you are experiencing.
The ASRCs will make the problem slightly worse, because they are looking to lock to the incoming sample rate, and it takes a few samples before they are able to do that.
The S/PDIF receiver also needs to lock to the incoming rate, meaning that it will take some time before it stabilizes as well.
The combination of these issues will cause pop noises during "hot docking".
One way to avoid this problem somewhat is to use a level detector in the system to signal if the signal is present or not, and use that as a noise gate when the input is inactive. I have posted a tutorial on using level detection here: https://ez.analog.com/message/7669
I made a small update to the example project to make the signal auto-mute when the input level goes lower than a certain threshold. The logic checks to see if the level is below the threshold, and if it is, then it triggers a slew volume control to go to zero. You can change the speed of the slew rate to tune the performance. This might help reduce the pop sound you're hearing.
Note that this example is shown with an ADAU1701 SigmaDSP in mind, but the idea can easily be ported to any SigmaDSP.
Another option would be to poll the S/PDIF lock bit over the SPI/I2C port using an external microcontroller, and use the status of that bit to manually control a slew volume control. Again, you want to use slew, because instantaneous volume changes are undesired in this situation.
Please log in to reply.

