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

조회 수: 7 (최근 30일)
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
Muthu Annamalai
Muthu Annamalai 2013년 6월 25일
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.

댓글을 달려면 로그인하십시오.

채택된 답변

Honglei Chen
Honglei Chen 2013년 6월 27일
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);

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Antennas, Microphones, and Sonar Transducers에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by