Azzera filtri
Azzera filtri

Out of Memory error!

4 visualizzazioni (ultimi 30 giorni)
Hassam Mahmood
Hassam Mahmood il 9 Ott 2016
Commentato: Hassam Mahmood il 1 Nov 2016
I am scanning from azimuth 1 to 45 by using 20by20 URA narrowband tx array block. The input port 'W' is being fed by a function block which is coded as follows :
function y = SIGNAL_STEER(signal)
coder.extrinsic('phased.URA', 'steervec', 'getElementPosition');
y=zeros(400,45);
az=45;
fc=36e9;
v=3e8;
lambda=v/fc;
ss=phased.URA('Size',[20 20],'ElementSpacing' , lambda/2);
elem_pos=(getElementPosition(ss)/lambda);
for le=1:1:az;
sv=steervec(elem_pos,le);
complex_arr=conj(sv);
% y=zeros(size(sv));
y=complex_arr;
end
end
My signal is of 50000by1 dimension, output 'y'is 400by1 and it must be a column vector. When this signal is reflected back from the target and fed into Rx narrowband array block having same configuration as of Narrowband tx array block I get output dimension of 50000by400 which I believe is correct as my URA is 20by20. I believe that my dimensions are correct but I am getting out of memory error! How to resolve it

Risposta accettata

Honglei Chen
Honglei Chen il 13 Ott 2016
I'm a bit confused by your code snippet. For example, your input, signal, is never used in the function, so I'm not sure what you intended to do with this code. This being said, you don't have to use extrinsic for phased.URA as it supports codegen. I would just do
function y = SIGNAL_STEER
az=45;
fc=36e9;
v=3e8;
lambda=v/fc;
persistent ss stv;
if isempty(ss)
ss=phased.URA('Size',[20 20],'ElementSpacing' , lambda/2);
end
if isempty(stv)
stv = phased.SteeringVector('SensorArray',ss,'PropagationSpeed',v);
end
y = conj(step(stv,fc,1:1:az));
end
BTW I still cannot reproduce the out of memory issue.
HTH
  14 Commenti
Honglei Chen
Honglei Chen il 31 Ott 2016
A1) No, it simply means that in each simulation step you are simulating 5000 samples, you need 100 steps to simulate one sweep.
A2) Like I said, it simply tries to simulate each sweep in multiple simulation steps.
A3) In real life, samples always come one after another. We need to buffer it so we can process the entire sweep at once.
HTH
Hassam Mahmood
Hassam Mahmood il 1 Nov 2016
Yes, thank you for making my concepts more clear. As you saw my model and code, it is scanning from 0 to 45 azimuth having 5 degrees beamwidth with URA of 30by30.
When I change target position to greater than 50 azimuth , I still get signal strength and ultimately range. It shouldn't be like this. Why is it so

Accedi per commentare.

Più risposte (1)

Pritesh Shah
Pritesh Shah il 10 Ott 2016

Community Treasure Hunt

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

Start Hunting!

Translated by