Question about sensorsig function of phased array system toolbox

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

 Akzeptierte Antwort

Honglei Chen
Honglei Chen am 31 Aug. 2016

1 Stimme

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 Kommentare

Actually no, i need the array on the xy plane for my algorithm to work. You are right about the phase shift, but i didn't show the right example for my problem. At DOA (0,0) the results are as expected after all. But take a look at this: I change the DOA to 35 deg azimuth and 50 deg elevation, and i plot again the signals at the first and second antenna.
(the blue plots represent the real, and the red plots the imaginary parts of the signals at the two antennas)
I observe two things here that seem odd to me: First, the imaginary part of the second signal is the same as the real of the first, and second, the imaginary part of the first is the same as the opposite of the real of the second. So if the first signal is represented as x + yi, the second signal has become -y + xi. Is that expected?
Thank you
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
Yes it is clear to me now. Thank you very much!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by