How to calculate the angle deviation w.r.t frequency band in a Wideband Scanning Array?
7 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commento
Muthu Annamalai
il 25 Giu 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.
Risposta accettata
Honglei Chen
il 27 Giu 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);
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Antennas, Microphones, and Sonar Transducers in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!