How to simulate a Differential Microphone Array with Sensor Array Analyzer?
10 views (last 30 days)
Show older comments
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.
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.
0 Comments
Answers (1)
Raghunathraju
on 30 Mar 2023
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 Comments
Raghunathraju
on 3 Apr 2023
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.
See Also
Categories
Find more on Beamforming in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!