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

7 vues (au cours des 30 derniers jours)
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 commentaire
Muthu Annamalai
Muthu Annamalai le 25 Juin 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.

Connectez-vous pour commenter.

Réponse acceptée

Honglei Chen
Honglei Chen le 27 Juin 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);

Plus de réponses (0)

Catégories

En savoir plus sur Antennas, Microphones, and Sonar Transducers dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by