How does Root-MUSIC algorithm for DOA estimation for a ULA work for a recorded audio file ?
Mostrar comentarios más antiguos
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.
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Subspace Methods en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!