Get Sensor positions manually in a uniform linear array (phased.ula) in phased array system toolbox

3 次查看(过去 30 天)
How can we give sensor positions manually in a uniform linear array? Initially I used Phased Array System toolbox where I got microphone positions using phased.ula. Now, If I want to specify the exact positions using phased.ula, How can I do that?
array = phased.ULA('NumElements',9,'ElementSpacing',0.05);
The above one is giving me an array of microphones placed at a spacing of 0.05 with a center microphone at (0,0,0).
Now, How do I give the positions manually??

采纳的回答

Chunru
Chunru 2022-7-7
% Get the position of the array
array = phased.ULA('NumElements',9,'ElementSpacing',0.05);
p = getElementPosition(array)
p = 3×9
0 0 0 0 0 0 0 0 0 -0.2000 -0.1500 -0.1000 -0.0500 0 0.0500 0.1000 0.1500 0.2000 0 0 0 0 0 0 0 0 0
% For ULA, you cannot set the position directly.
% You can use conformal array which allow you to specify position
a1 = phased.ConformalArray('ElementPosition', p);
a1.ElementPosition
ans = 3×9
0 0 0 0 0 0 0 0 0 -0.2000 -0.1500 -0.1000 -0.0500 0 0.0500 0.1000 0.1500 0.2000 0 0 0 0 0 0 0 0 0
% Change the element position
a1.ElementPosition(2,5) = 0.001; % change one coordinate only as an example
a1.ElementPosition
ans = 3×9
0 0 0 0 0 0 0 0 0 -0.2000 -0.1500 -0.1000 -0.0500 0.0010 0.0500 0.1000 0.1500 0.2000 0 0 0 0 0 0 0 0 0

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Array Geometries and Analysis 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by