How does Root-MUSIC algorithm for DOA estimation for a ULA work for a recorded audio file ?
Show older comments
I'm trying to apply phased.RootMUSICEstimator for estimating azimuth angle of a sound source in a real-world scenario. I'm doing this by recording an audio file in a 2-element ULA and placing the sound source at a specific angle( say 20 degree azimuth, 0 degree elevation).
Below is the code I've written
% code
x = audioread('/home/LEFT/Setup tone low 20 left.wav');
y = audioread('/home/RIGHT/Setup tone low 20 right.wav');
mix = [x y];
fc = 700;
transducer = phased.OmnidirectionalMicrophoneElement...
('FrequencyRange',[200,1200]);
array = phased.ULA('Element',transducer,'NumElements',2,...
'ElementSpacing',0.15);
yy = collectPlaneWave(array,[x y],[20 0;20 0]',fc);
sDOA = phased.RootMUSICEstimator('SensorArray',array,...
'OperatingFrequency',fc,'NumSignalsSource','Property','NumSignals',1);
doas = step(sDOA,yy);
az = broadside2az(sort(doas),[0 0])
Here I used two mono-signals recorded separately using 2-different microphones(LEFT & RIGHT) in a ULA. From above program, I'm getting a perfect az = 20.0000 20.0000 as output.
My Questions: - I had approximated the angles of the sound sources to be around 20 degrees azimuth, So I don't expect the sound source to be at exactly 20 degrees as evaluated by the algorithm. So it appears that the output is because of the collectPlaneWave function parameters. - Do I have to use collectPlaneWave function in my real-world audio already recorded at a specific source angle ? (I tried not using this, but azimuth angle given by algorithm was always zero.)
Could you please help me out with this ? Thanks.
Accepted Answer
More Answers (0)
Categories
Find more on Subspace Methods in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!