CDMA icon indicating copy to clipboard operation
CDMA copied to clipboard

Can this be practically applied to a 4-microphone array?

Open ChenWeston opened this issue 3 years ago • 8 comments

Can we actually use the hardware structure applied to the 4-microphone array?

ChenWeston avatar Dec 14 '21 20:12 ChenWeston

Yes. I tested the code on the audio collected by a 4-mic circular array (ST BlueCoin).

SouppuoS avatar Dec 15 '21 01:12 SouppuoS

Master, I don’t know much about it. The program seems to simulate the field pattern I need. There is no actual sound file input code?

ChenWeston avatar Dec 15 '21 16:12 ChenWeston

Or write Python program into 4-mic circular array (ST BlueCoin), which is the effect of Beamforming field?

ChenWeston avatar Dec 15 '21 18:12 ChenWeston

There is no actual sound file input code?

Yes. According to the beamforming, you can get the enhanced signal by formula, where W^*(f) is the conj transpose of cdma.get_weight() and X(f) is the STFT of multi-channel audio. You can also use code like: https://github.com/funcwj/setk/blob/392c72966ab9f97088955c0bbe6436d7fd59168c/scripts/sptk/libs/beamformer.py#L232-L233

SouppuoS avatar Dec 16 '21 05:12 SouppuoS

Master, thank you very much for your feedback, but I still don't know how to apply your program to the hardware.

ChenWeston avatar Dec 16 '21 19:12 ChenWeston

I collected the audio by micphone array and process it on PC. And if you want to process the signal on the MCU or DSP, you have to implement the formula by some LIB or BSP in C and use the result of cdma.get_weight() as W. Cardioid or Hyper- CDMA is the fixed beamformer, so you could just paste the W data in your C code.

SouppuoS avatar Dec 17 '21 03:12 SouppuoS

Master, I expect that it will be processed on the PC, and the audio collection will be collected by the hardware of the 4 mic array. Your implementation is to collect 4 channels of sound through a 4 mic array, then enter your program for processing, and get the result of 1 channel?

ChenWeston avatar Dec 17 '21 15:12 ChenWeston

Your implementation is to collect 4 channels of sound through a 4 mic array, then enter your program for processing, and get the result of 1 channel?

Yes.

SouppuoS avatar Dec 18 '21 04:12 SouppuoS