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

10 次查看(过去 30 天)
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.

回答(1 个)

Raghunathraju
Raghunathraju 2023-3-30
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 个评论
Raghunathraju
Raghunathraju 2023-4-3
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.

请先登录,再进行评论。

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by