Question about sensorsig function of phased array system toolbox

3 views (last 30 days)
Good evening
I am trying to generate some signals for DOA estimation using the sensorsig function. My code is the following:
az = 0; % Azimuth direction
el = 0; % Elevation direction
dim = 4;
fc = 300e6; % Operating frequency
lambda = physconst('LightSpeed')/fc;
samples =100;
nPower = 0;
rs = rng(30);
sCos = phased.CosineAntennaElement(...
'FrequencyRange',[200e6 1.2e9]);
xDim = 4; % number of elements in x dimension
yDim = 4; % number of elements in y dimension
linear_dim=dim;
d = lambda/2; % Inter-element spacing
N = linear_dim;
pos_along_x = (0:xDim-1)*d;
pos_along_y = (1:yDim-1)*d;
pos_along_z = (1:N-1)*d*0;
pos = [[pos_along_x ];...
[zeros(1,xDim)];...
[ zeros(1,xDim)]]; % Sensors positions
for k=1:yDim-1
a = [[pos_along_x];...
repmat(pos_along_y(k),1,xDim);...
[zeros(1,xDim)]];
pos = [pos a];
end
my_array = phased.ConformalArray('Element',sCos,'ElementPosition',pos);
my_array.Element.FrequencyRange = [2e8 1.2e9];
ang1 = [az;el];
signals=[ang1];
rxsig = sensorsig(getElementPosition(my_array),...
samples,signals,nPower);
sensor = transp(rxsig);
Here i have a signal coming from azimuth 0 and elevation 0, and i also have a rectangular 4x4 array. After i get the samples of the received signals from sensorsig, i plot the signals at the first and second antenna. What i observe is that on one hand the real part of the signal at the first antenna is also the imaginary part of the signal at the second antenna, with an offset.On the other hand, the real part of the signal at the second antenna, is the negative of the real part of the signal at the first antenna. Could someone explain to me why this happens? Here's also a picture of the figures
Thank you in advance

Accepted Answer

Honglei Chen
Honglei Chen on 31 Aug 2016
If I understand it correctly, the signal at antenna #2 is essentially the negative of the antenna #1. This is because the first two elements are along x axis. So for a plane wave incoming from azimuth 0 and elevation 0, the wave travels along x axis. The two elements are approximately half wavelength, thus the phase shift between the two signal is given by exp(1i*pi), which is -1. So the signals are just opposite of each other.
Maybe you actually want an array in yz plane instead of xy plane?
HTH
  3 Comments
Honglei Chen
Honglei Chen on 2 Sep 2016
Turns out it is. The easiest way to see this is let's look at the steering vector between the first two elements. Since they are along x axis, let's find the relation between them as
>> steervec([0 0.5;0 0;0 0],[35;50])
ans =
1.0000 + 0.0000i
-0.0833 + 0.9965i
This means that if the signal you get at the first element is x+yi, the signal at the second element will be given by (x+yi)*(-0.0833+0.9965i), which is close to (x+yi)*1i = -y+xi
HTH

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!