How to simulate a Differential Microphone Array with Sensor Array Analyzer?

Hello together,
I would like to simulate a differential microphone array (DMA) in the Sensor Array Analayzer (SAA) for a project. The way the beamplots look for two microphones 0.015m apart, it must be a delay-and-sum beamformer (DSB) . How do I have to set the parameters to get a DMA?
Thanks in adanvce and many greetings!
Daniel
First Picture:
2 Mic DMA with 0.015m distance. Made with Matlab Code.
The behaviour is like expected for a DMA. It is frequency invariant.
DMA with 0.015m distance, made with MATLAB Code
c = 343;
f = (1:8)*1e3;
fmax = f(end);
lambda = c/fmax;
N = 2;
dd = 0.015;
micarrayd_1 = phased.ULA(N, dd);
set(gcf,'Color','w');
ang_n = -90; % endfire
dd_f = dd./(c./f);
w1 = complex(zeros(N,numel(f)));
for m = 1:numel(f)
w1(:,m) = diffbfweights(N,dd_f(m),ang_n,'ArrayGeometry','ULA');
end
figure(1);
pattern(micarrayd_1, f, -180:180, 0, 'PropagationSpeed',c ,'Weights', w1);
Second Picture:
2 Mic DMA with 0.015m distance. Made with SSA.
The behaviour looks like a DSB. It is frequency variant.

Antworten (1)

Hi dabe,
As per my understanding, you got the desired result for DMA in MATLAB Code and you want to get the same in sensorArrayAnalyzer app, but the result is different.
After trying to reproduce your issue, I observed that ang_n in line 9 which is ‘Angular directions of null response’ is set to –90. This option is not available in the app. So, I tried removing it from your code to see the result.
c = 343;
f = (1:8)*1e3;
fmax = f(end);
lambda = c/fmax;
N = 2;
dd = 0.015;
mic = phased.OmnidirectionalMicrophoneElement(...
'FrequencyRange',[1000 8000]);
micarrayd_1 = phased.ULA(N, dd,'Element',mic);
set(gcf,'Color','w');
%ang_n = -90; % endfire
dd_f = dd./(c./f);
w1 = complex(zeros(N,numel(f)));
for m = 1:numel(f)
w1(:,m) = diffbfweights(N,dd_f(m),'ArrayGeometry','ULA');
end
figure(1);
pattern(micarrayd_1, f, -180:180, 0, 'PropagationSpeed',c ,'Weights', w1);
Now you can observe that the results from both MATLAB code and the app are same. Currently, there is no option to set ‘Angular directions of null response’ in the app.

3 Kommentare

Hi Raghunathraju,
thank you very much for your thoughts and answer.
The Matlab code works as expected and the beam pattern looks like that of an additive microphone array with a frequency dependent beam pattern.
However, the problem I want to address relates to the SensorArrayAnalyzer app. I want to use the app to set up a DMA and create a beam pattern like the one in the first picture.
What parameters do i have to change to turn the microphone array from an additive to differential?
Have a nice day!
BR,
Dabe
In the Current version it might not be possible to get the result you are expecting by changing any of the parameters in the app as the desired result is showing up only after setting the ang_n=-90 which is not a parameter in the app.
All right, thanks for the clarification.

Melden Sie sich an, um zu kommentieren.

Kategorien

Produkte

Version

R2022b

Gefragt:

am 6 Mär. 2023

Kommentiert:

am 3 Apr. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by