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.
Best Answer