Device Selection
Hi. I am working on an hands-free communication application. I am looking at using an ADAU1781/61 or possibly stepping up to a BlackFin. The application will need:
adaptive microphone beam forming
noise cancellation (lots of wind noise possible)
echo cancellation
voice activity detection (VAD),
some automatic levels/volume control,
the ability to mix in another digital serial input (digital audio signal). (Is this possible? I've been looking for some reference on this)
My concern after looking over some of the instruction cycles for these code blocks as well as the total allowable in the SigmaDSP, is that all this won't fit in the 1781. I am looking at following the CN0207 reference design.
Will all of this be feasible following that reference design?
Thanks,
Dan
Audio Signal Processors
part_selection
adau1781
SigmaDSP Audio Processors
adau1761
Here is another question in reference to using the beam forming and the wind noise cancellation. Am I right in thinking that in order to use these two block correctly, you would need two microphones for the beam forming, after which the output would be feed into a wind noise cancellation block for the wanted voice signal. Then in the a second from a third microphone that would be a unwanted noise reference? (Something like the following, I am very new to SigmaDSP, so the inputs may be goofy... but just assume that all three inputs are mic inputs)
Wow, a lot of questions here! I will try to answer them.
Here's the list of capabilities you need, and my comments about the feasibility of implementing them on SigmaDSP.
adaptive microphone beam forming
Yes, already exists
noise cancellation (lots of wind noise possible)
We can do wind noise detection and reduction, but no cancellation or elimination. If this application is just for voice, then our wind noise algorithm should be fine.
echo cancellation
We do not have a canned solution for this. You can experiment with the NLMS filter to try to achieve what you need, but I'm not sure how well that would work with all of the other things you have going on.
voice activity detection (VAD)
We have this available.
some automatic levels/volume control
Yes, we have this in the library.
the ability to mix in another digital serial input (digital audio signal). (Is this possible? I've been looking for some reference on this)
Yes, this is very simple.
A few notes:
- You need two microphones set up in a very specific way in order to use the wind noise reduction algorithm. Here is documentation on that algorithm:
https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/adialgorithms/windnoise
Here is a thread about tuning that algorithm:
https://ez.analog.com/message/4454#4454
- I don't think it's easy to do beamforming and wind noise reduction at the same time. Both beamforming and wind noise reduction algorithms depend on using the raw microphone inputs. You can't do processing with one algorithm and then feed the result into the next algorithm. It won't work. Probably the best bet is to do something like this, where you run the algorithms in parallel and mix the results:
- There are some details on the beamformer here:
https://ez.analog.com/message/43552#43552
- Some documentation on the voice activity detector:
https://ez.analog.com/message/17014#17014
https://ez.analog.com/message/28551#28551
- Automatic volume control:
https://ez.analog.com/message/12899#12899
- How to mix signals:
ez.analog.com/.../2288d52cd083819cbccff1cdc114422d.html
ez.analog.com/.../5123.2288d52cd083819cbccff1cdc114422d.html
Or, for individual level control:
-Definition of inputs and outputs:
wiki.analog.com/.../input
https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/io/output
I'm not sure if all of these algorithms will fit into the memory of an ADAU1761. You should probably give it a try to see if you are able to fit the functionality you want into the total memory. You can always check your memory usage by enabling the output window and then compiling the project:
ez.analog.com/.../8308.2288d52cd083819cbccff1cdc114422d.html
Brett,
Thanks! That was a lot of questions but I think you nailed it. Sounds like the 1781 will be a good platform to try out a mix of these algorithms. I appreciate your help.
Dan
Hey Brett,
Another quick question about the 1761 and digital serial ports. I am not familiar with I2S, how many ports can the 1761 support? Would it be able to do both an input and an output?
Thanks,
Dan
The ADAU1761 has one serial input I2S port and one serial output I2S port. The interesting thing is that these two I2S ports are mapped to only 4 physical pins on the device.
Typically, you have 3 signals in an I2S port:
Data, Bit Clock, Frame Clock
So, in many devices with a serial input port and a serial output port, you might see 6 total pins (3 pins times 2 ports). However, in the case of the ADAU1761, the Bit Clock and Frame Clock signals are shared, which means that both the input data and the output data must be synchronized to the same clock source.
So the pin configuration ends up being:
Data In, Data Out, Bit Clock, Frame Clock
Just keep in mind that the data ports must be set up the same way (i.e. both must be masters, or both must be slaves, but you can't mix and match, and the sample rate and channel count for both ports must be the same).
One last thing, even though there is only one input "port" and one output "port", that's a bit deceiving, since you can use time division multiplexing (TDM) to get up to 8 channels in and 8 channels out.
Combined with the 2 ADCs and 2 DACs, that means that the ADAU1761 technically has 10 channels in, 10 channels out.
Please log in to reply.









