Hello everyone, I am trying to localize narrowband signals with microphone Arrays using DOA algorithm. As you know in this algorithm we have to enter the position of the incoming source with Azimuth and Elevation angles, but we dont consider the distance between the microphone Array and the source. I want to know that how it is possible to set this distance. Thanking you.

 채택된 답변

Honglei Chen
Honglei Chen 2016년 11월 2일

0 개 추천

Could you elaborate which algorithm you are trying to use? The assumption for DOA algorithms in Phased Array System Toolbox is that the incoming signal is a plane wave. Therefore that distance doesn't matter. If you need that distance, maybe you are dealing with a spherical wavefront?
HTH

댓글 수: 3

Ali Movahed
Ali Movahed 2016년 11월 2일
편집: Honglei Chen 2016년 11월 2일
thanks for your Response. I am using MVDREstimator 2D to localize two sources and you are right, I Need the distance because I want to deal with spherical waves. here is my code:
h = phased.ConformalArray();
t= 1/2*(1+sqrt(14));
n=32;
c= ones(n,1)';
c(:)=1:32;
h.ElementPosition = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;(sqrt(c).*cos(2*pi*t*c))*0.018;(sqrt(c).*sin(2*pi*t*c))*0.018];
h.ElementNormal = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 ...
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
h.Element = ...
phased.OmnidirectionalMicrophoneElement('FrequencyRange',[50e3 500e3]);
ang1 = [20; 35]; % First signal
ang2 = [-20; 35]; % Second signal
angs = [ang1 ang2];
c = 343;
fc = 5e2; % Operating frequency
lambda = c/fc;
pos = getElementPosition(h)/lambda;
Nsamp = 1000;
nPower = 0.01;
rs = rng(2007);
x = sensorsig(pos,Nsamp,angs,nPower);
broadsideAngle = az2broadside(angs(1,:),angs(2,:));
hMVDR = phased.MVDREstimator2D('SensorArray',h,...
'PropagationSpeed',c,'OperatingFrequency',fc,...
'AzimuthScanAngles',-45:60,'ElevationScanAngles',10:60,...
'DOAOutputPort',true,'NumSignals',2);
[~,ang] = step(hMVDR,x);
plotSpectrum(hMVDR);
could you please tell me how can I consider spherical waves?
Honglei Chen
Honglei Chen 2016년 11월 3일
If you need to deal with spherical wavefront, then the MVDREstimator2D cannot help much. This being said, I notice several things.
1. your application seems to be microphone related. Your fc is set to 500 Hz but your element's frequency is between 50k and 500k Hz. This means that at 500Hz there is no response to the signal. You may need to consider changing that.
2. Your wavelength is about 0.6 meters. I think if your array is, say 5-6 meters away, then the plane wave assumption may not be a bad choice.
HTH
Ali Movahed
Ali Movahed 2016년 11월 7일
thank you for the tipps. actually that 500 Hz was a mistake in my code and 500 kHz is correct. in this case, the wavelength would be too small (0.0006m). to be honest, I didnt get exactly whats the correlation between the distance and assumption of plane waves. is it like, when the Array is closer to the source I can assume spherical waves?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

질문:

2016년 11월 2일

댓글:

2016년 11월 7일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by