How to calculate the angle deviation w.r.t frequency band in a Wideband Scanning Array?

7 visualizaciones (últimos 30 días)
When you plot a steered array response for a wideband scanning array using phase shifter model it gives rise to squint effect i.e. the peak location moved away from the desired direction. This effect increases as you move far from your central frequency. To further analyse this squint effect I want to plot the angle deviation vs the frequency band. Please refer to my code for better clarity.
if true
clear all;
fc = 3e8; % Center Frequency
c = 3e8; % Speed of light
hele = phased.IsotropicAntennaElement('BackBaffled',true); % Isotropic Antenna Element
href = phased.ULA(64,0.5*c/fc,'Element',hele); % Linear array model
hstvref = phased.SteeringVector('SensorArray',href,'PropagationSpeed',c);
fsteer = [1 1.03 1.06]*fc; % Wideband Scanning
steerang = 30; % Steered angle
wref = squeeze(step(hstvref,fc,steerang));
subplot(2,1,1)
plotResponse(href,fsteer,c,'Weights',wref);
title('ULA Azimuth Cut'); axis([-90 90 -50 0]);
subplot(2,1,2)
plotResponse(href,fsteer,c,'Weights',wref); axis([25 35 -5 0])
title('ULA Azimuth Cut, Peak Zoom View');
end
Any suggestion or experience?
++ Soumya
  1 comentario
Muthu Annamalai
Muthu Annamalai el 25 de Jun. de 2013
You could do it analytically, which I don't know details for, or use MATLAB. In these simulations you will run it for various bandwidths of your antenna array, and calculate for each the peak and its offset from the center/desired position - to give you a measure of deviation. So you have x, y, and you can plot it?
I don't know if this is what you are looking for, but seems simple to me.

Iniciar sesión para comentar.

Respuesta aceptada

Honglei Chen
Honglei Chen el 27 de Jun. de 2013
You can use ArrayResponse and findpeaks together to achieve what you want.
For example, after your code above, you can do
myArrayResp = phased.ArrayResponse('SensorArray',href,'PropagationSpeed',c,...
'WeightsInputPort',true);
deltaang = zeros(1,numel(fsteer));
anggrid = 25:0.5:35;
for m = 1:numel(fsteer)
resp = step(myArrayResp,fsteer(m),anggrid,wref);
[~,idx] = findpeaks(abs(resp),'NPeaks',1,'SortStr','descend');
deltaang(m) = anggrid(idx)-steerang;
end
figure;
stem(fsteer,deltaang);

Más respuestas (0)

Categorías

Más información sobre Antennas, Microphones, and Sonar Transducers en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by