ADAU1861
Recommended for New Designs
The ADAU1861 is a codec with three inputs and one output that incorporates two digital-signal processors (DSPs). The path from the analog input to the...
Datasheet
ADAU1861 on Analog.com
Hi Simran, thanks for your interest in ADAU1861.
The FastDSP operations are limited to the blocks available in Lark Studio, it's not possible to create new ones. This DSP is highly optimized to perform sample by sample processing of audio data with low latency. You can find programmable biquad filters in the "Filters" drop down in Lark Studio's FastDSP schematic editor.
If your Adaptive ANC algorithm requires logic or other special functions, you can implement that in the general purpose DSP, the Tensilica HiFi3z core. Your program can acquire the audio data in blocks (using the DMA) or sample by sample (using the TIE interface), process it, and then change the parameters in the FastDSP on the fly according to the result of said processing. This can be done via the FDSP parameter safeload mechanism (to change a single parameter) or parameter bank switching (all parameters at the same time). You will find the API's for this in adi_lark_fdsp.c (Lark SDK). Please note that to be able to program the Tensilica DSP, you will need a Xtensa Xplorer license from Cadence, and the Analog Devices mIDAS Link JTAG interface.
I will look what information and training materials are available for public distribution and I will get back to you soon.
Kind regards,
Roberto
Hi Roberto,
I can see biquad filters but there are only limited filters present inside, there are no FIR, Adaptative and other digital filters present in the biquad filters. Also, addition, subtraction blocks are necessary blocks to make any code. Do you have any alternate for these blocks. Please let me know.
Also, Is there any noise cancellation specific code available which is compatible with lark studios. Please share the file. Also please share any other training material available.
Regards,
Simran
Hi Simran,
That is correct, the filters available in FastDSP are IIR only, as this is the type used for ANC. Addition and subtraction of signals is possible using the Multiple Control Volume mixer under "Mixers", and other arithmetic and logic operators are available under "Basic DSP". However the main purpose of the FastDSP is processing audio streams, and its hardware is limited to these blocks. Any other functionality that you may need, such as adaptive filtering, has to be programmed separately in the Tensilica DSP using C or C++.
We are working in creating new training materials, including guides and examples covering Lark studio and the Tensilica DSP. However these are not yet publicly available.
Best regards,
Roberto
Hello Roberto,
I saw on AD website that ADAU1861 is used for noise cancellation or ANC but there is no example how it is happening. Can you please share any example or any block diagram which shows noise cancellation using IIR filters as it would be helpful for me to build noise cancellation code in Lark studios
I only know I method for noise cancellation that is using adaptive filters and it is not there in lark studios. Please guide me how to build ANC using IIR filters. Also, I am waiting for the training materials, videos and examples. Please share with me ASAP.
Also what is the difference between biq19/27/54
Thanks,
Simran
Hi Simran,
We can only provide support for our products, each customer is responsible for developing their ANC, as the design will depend on the acoustics and hardware in use.
As a general reference, you can use the diagram below. In this case the reference microphone (feedforward) would be connected to ADC0, and the error microphone (feedback) would be connected to ADC1. The FastDSP output 0 would go to the speaker.
The signal from each microphone is processed by a bank of 12 IIR filters, calibrated in magnitude and phase to cancel out the noise signal in that path. The limiters are added to the chain to limit the maximum amplitude introduced by the ANC and prevent dangerous excursions. The anti-noise signals from both paths are mixed and played through the DAC, with the option to add digital audio playback from the serial audio port.
Once the acoustic design has been finished and manufactured, it is then possible to find the coefficients for these filters. This is an iterative manual process that requires very specific hardware and software tools. When the optimal set of parameters for maximum cancellation has been found, they are incorporated into the FastDSP program. If the design is changed in any way after that, the tuning process has to be repeated.
The ADAU1860 and ADAU1861 offer best in class figures for latency and distortion, however the ANC performance that can be achieved will ultimately be limited by the acoustic design.
Regarding the different biquad blocks, the number represents the precision (fixed point). In the pictured schematic, biq27 was used.
Kind regards,
Roberto
Hi Simran,
We can only provide support for our products, each customer is responsible for developing their ANC, as the design will depend on the acoustics and hardware in use.
As a general reference, you can use the diagram below. In this case the reference microphone (feedforward) would be connected to ADC0, and the error microphone (feedback) would be connected to ADC1. The FastDSP output 0 would go to the speaker.
The signal from each microphone is processed by a bank of 12 IIR filters, calibrated in magnitude and phase to cancel out the noise signal in that path. The limiters are added to the chain to limit the maximum amplitude introduced by the ANC and prevent dangerous excursions. The anti-noise signals from both paths are mixed and played through the DAC, with the option to add digital audio playback from the serial audio port.
Once the acoustic design has been finished and manufactured, it is then possible to find the coefficients for these filters. This is an iterative manual process that requires very specific hardware and software tools. When the optimal set of parameters for maximum cancellation has been found, they are incorporated into the FastDSP program. If the design is changed in any way after that, the tuning process has to be repeated.
The ADAU1860 and ADAU1861 offer best in class figures for latency and distortion, however the ANC performance that can be achieved will ultimately be limited by the acoustic design.
Regarding the different biquad blocks, the number represents the precision (fixed point). In the pictured schematic, biq27 was used.
Kind regards,
Roberto
Hi Roberto,
Can you please explain the role of Mixer, Mute, ASCR in detail for the above block diagram.
Also, I am building a code to cancel out noise levels up to 120dB,do you think above code will workout in such environment. We are actually struggling to build a code which cancels that high noise levels, do you have any example similar to our application, if you have please do share it with me.
Also, the examples you shared via mail, I am unable to open it, please let me know what will be the suitable application to open it as it is not opening in lark studios.
Regards,
Simran
Hi Simran,
In this diagram, the mixer is used to combine the ANC signal from both paths to create the DAC output signal. In addition you may want to reproduce an incoming audio signal along with the ANC (e.g. music in Bluetooth ANC earbuds), so the ASRC output is added to the mix. The ASRC (asynchronous sample rate converter) is connected to the Serial Audio Port input and its purpose is to eliminate the audio glitches that may happen from having different clock sources. You could connect the Serial Audio Port directly to the mixer, but the samples may not always arrive at the exact same moment that the FDSP needs them, creating those glitches. The mute block is just to have a hardware mute/unmute control of the incoming audio signal. Its state can be changed from outside of FDSP by using the Safeload mechanism.
However I think what you describe is not feasible, as no ANC available today has been able to reduce more than 30dB. Even if you could cancel out all noise coming to the ear, which is impossible, the sound would still leak through the eyes and skull.
Best regards,
Roberto
Hi Roberto,
I tried building the same code as above you shared but only one mic is connecting, second microphone is not connecting. Does this requires any other settings.
Can this code reduce the noise level up to 30dB?
Regards,
Simran