SENSORSIG function Matlab HELP

12 views (last 30 days)
I have been trying to simulate a received signal on phased antenna array elements, using SENSORSIG (built in) function of MATLAB.
If the angle of arrival is kept constant, the complex voltage induced in each element should not vary. But in my case, it is giving me a different result.
The code and the following results are posted below.
Nsamp = 1;
c = physconst('LightSpeed');
fc = 750e6;
lambda = c/fc;
ANGLE_ARRIVAL = -180:1:180;
NO_OF_GRID = length(ANGLE_ARRIVAL);
ELEM_SPAC = 0.4;
SNR_dB = -20:5:60;
Noise_P = 0;
ELEM_NUM = 25;
sUCA = phased.ULA('NumElements',ELEM_NUM,'ElementSpacing',ELEM_SPAC);
a = sensorsig(getElementPosition(sUCA)/lambda,Nsamp,15);
b = sensorsig(getElementPosition(sUCA)/lambda,Nsamp,15);
The Results received in each cases are
a =
Columns 1 through 5
-0.5979 - 0.8016i 0.8341 - 0.5516i 0.5036 + 0.8639i -0.8910 + 0.4540i -0.4029 - 0.9152i
Columns 6 through 10
0.9365 - 0.3505i 0.2971 + 0.9549i -0.9701 + 0.2426i -0.1874 - 0.9823i 0.9913 - 0.1316i
Columns 11 through 15
0.0754 + 0.9972i -0.9998 + 0.0189i 0.0376 - 0.9993i 0.9956 + 0.0940i -0.1501 + 0.9887i
Columns 16 through 20
-0.9786 - 0.2057i 0.2607 - 0.9654i 0.9491 + 0.3148i -0.3680 + 0.9298i -0.9076 - 0.4199i
Columns 21 through 25
0.4705 - 0.8824i 0.8544 + 0.5197i -0.5671 + 0.8236i -0.7903 - 0.6127i 0.6564 - 0.7544i
b =
Columns 1 through 5
-0.8007 - 0.5990i 0.6433 - 0.7656i 0.7280 + 0.6856i -0.7256 + 0.6881i -0.6460 - 0.7633i
Columns 6 through 10
0.7986 - 0.6018i 0.5558 + 0.8313i -0.8614 + 0.5079i -0.4584 - 0.8887i 0.9132 - 0.4074i
Columns 11 through 15
0.3552 + 0.9348i -0.9534 + 0.3018i -0.2474 - 0.9689i 0.9813 - 0.1923i 0.1365 + 0.9906i
Columns 16 through 20
-0.9968 + 0.0803i -0.0239 - 0.9997i 0.9995 + 0.0326i -0.0891 + 0.9960i -0.9894 - 0.1452i
Columns 21 through 25
0.2009 - 0.9796i 0.9667 + 0.2559i -0.3101 + 0.9507i -0.9317 - 0.3634i 0.4154 - 0.9096i

Accepted Answer

Honglei Chen
Honglei Chen on 30 Sep 2015
The sensorsig function produces a random test signal each time you invoke it. The only thing it does is to modulate the signal with phase shifts corresponding to the signal direction. That's why a and b are different. The idea is that the array processing algorithms exploits only the spatial information so time domain information is less relevant. If you want to produce the same signal every time, you can set the random seed before calling the function. For example
rng(0);
a = sensorsig(getElementPosition(sUCA)/lambda,Nsamp,15);
rng(0);
b = sensorsig(getElementPosition(sUCA)/lambda,Nsamp,15);
produce the same a and b.
HTH.
  1 Comment
Audri Biswas
Audri Biswas on 1 Oct 2015
Thank you so much for your prompt response. I will try this and get back to you as soon as possible.

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!