subband MVDR implementation for DOA estimation
Show older comments
I'm facing some problem trying to implement the subband MVDR beamformer for estimating the direction of arrival of one or more sound sources. The logical steps I tried are the following:
- N microphones are placed uniformly on a rectangular grid.
- I acquire samples at a given sampling frequency fc for T seconds.
- I divide the T seconds window into K non overlapping blocks of length dT seconds.
- I performe the DFT for each block obtaining K discrete sprectra with resolution 1/dT.
- For each frequency (0 to fc/2 ) I estimate the spatial spectral covariance matrix S.
- For each direction and each frequency I compute the steering vector, and then I compute the weights w according to the MVDR criterion.
- For each direction I sum the power spectra for each frequency.
For now I'm testing the algorithm with narroband sources, the next step is to consider broadband sources. With one source, e.g at 1000 Hz, the power spectra of the frequency bin close to 1000 Hz is estimating correctly the direction of arrival, therefore I suppose the procedure should be right. However, if I consider the sum of the power spectra, higher peaks are obtained for other directions. So the question is, are there any step I'm missing? This doubt originated when I found several scientific articles talking about demodulating the acquired signal in order to separate the baseband from the carrier frequency (I don't know why and how to do this). Also the Subband MVDR (Capon) beamformer implemented by Matlab ( phased.SubbandMVDRBeamformer System object ) asks for the carrier frequency. Could someone point me in the right direction? Thanks in advance.
Answers (0)
Categories
Find more on Beamforming and Direction of Arrival Estimation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!