ΣSigmaStudio Ask AI Русский Log in

Device Selection

SigmaDSP & SigmaStudio danarama Jul 19, 2012 00:00 6 replies Original on forum ↗
Subscribe
danarama Question
Jul 19, 2012 00:00

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

danarama Reply
Jul 19, 2012 00:00

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)

84947956614e14dac309eaee48802da8.gif
84947956614e14dac309eaee48802da8.gif
84947956614e14dac309eaee48802da8.gif-450x228.png
84947956614e14dac309eaee48802da8.gif-450x228.png
ADIApproved Reply
Jul 20, 2012 00:00

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

18aec409d1077dacc198629ed9fb9a6e.png
18aec409d1077dacc198629ed9fb9a6e.png
18aec409d1077dacc198629ed9fb9a6e.png-481x307.png
18aec409d1077dacc198629ed9fb9a6e.png-481x307.png
90720ff0b32e7363e5d2fd8145311aa2.png
90720ff0b32e7363e5d2fd8145311aa2.png
90720ff0b32e7363e5d2fd8145311aa2.png-234x210.png
90720ff0b32e7363e5d2fd8145311aa2.png-234x210.png
40eb673972d131ba7a4c7e7587ae14d4.png
40eb673972d131ba7a4c7e7587ae14d4.png
40eb673972d131ba7a4c7e7587ae14d4.png-221x212.png
40eb673972d131ba7a4c7e7587ae14d4.png-221x212.png
e8f6c201f434337ab1fad9c337a57b56.png
e8f6c201f434337ab1fad9c337a57b56.png
e8f6c201f434337ab1fad9c337a57b56.png-419x515.png
e8f6c201f434337ab1fad9c337a57b56.png-419x515.png
danarama Reply
Jul 20, 2012 00:00

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

danarama Reply
Jul 31, 2012 00:00

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

ADIApproved Reply
Jul 31, 2012 00:00

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).

ADIApproved Reply
Jul 31, 2012 00:00

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.