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.
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 个评论
回答(1 个)
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
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Beamforming 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!