MATLAB: Simulating a known signal at an array of antennas

beamformingcollectplanewavedoaPhased Array System Toolboxsensorsig

I have an audio signal which i want to simulate at an array of antennas. Currently i am using the function collectPlaneWave of the Phased Array System Toolbox, but as i read in the documents, "The method does not account for the response of individual elements in the array". Does this mean that it won't have a difference whether i use cosine elements or isotropic elements for example? And if so, how can i simulate the signal so that the response of the elements are actually considered? Also, how can i specify the SNR of the received (known) signal at the array? I know how to specify SNR when i use the sensorsig function, but since it generates a random signal i cannot use it.

Best Answer

I would suggest you looking at phased.Collector to collect signal and phased.ReceiverPreamp to add noise. Say you have a signal, x, of power 1 coming from 10 degrees azimuth and 20 degrees elevation. Assume you array is given by myArray and SNR is given by snr, it would look like
myCollector = phased.Collector('Sensor',myArray);
myPreamp = phased.ReceiverPreamp('Gain',0,'NoiseMethod','Noise power','NoisePower',10^(-snr/10));
Note the above two lines set up the components and you may need to adjust other parameters in myCollector like the frequencies. After that, to get the signal, you just need to do
y_collected = step(myCollector,x,[10;20]);
y_noiseadded = step(myPreamp,y_collected);
As name suggested, the first line collects the signal and the second line adds the noise.
HTH