How antenna array factor is related to FFT of antenna weights

조회 수: 29 (최근 30일)
Vinod
Vinod 2015년 5월 26일
댓글: ak 2024년 1월 14일
I have an uniform linear antenna array of N elements with unknown (uniform) element spacing. Each element is having phase weights phi1,phi2,... ,phiN. Each element is fed with unity amplitude.
I will take the M point Fast Fourier Transform - FFT (M >> N) of this array to get a frequency response R(fr). How R(fr) is related to the array factor of the array. What is the value of inter element spacing R(fr) assumes.
>> N = 12;M = 64;
>> phis = randi([0,360],1,N)*pi/180;
>> ComplexWgts = exp(2*pi*1j*phis);
>> R_fr = abs(fftshift(fft(ComplexWgts,M)));
Where as the Array factor can be coded as
theta = (-90:90)*pi/180;
d = 0.5;% How to interpret this d from the FFT
AF = zeros(size(theta));
for n = 1:N
AF = AF + a(n) * ComplexWgts(n) * exp(1j * n * 2 * pi * d * sin(theta));
end
How to correlate between AF and R_fr?
  댓글 수: 2
HAMDI Bilel
HAMDI Bilel 2023년 5월 18일
Nelements =17;
Npoints = 1024;
Ntheta = Npoints;
thetalimit = 90;
theta_deg = linspace(-thetalimit,thetalimit,Ntheta);
theta= pi*theta_deg/180;
% Uniform linear broadside equispaced array
d = 0.5; % in wavelengths
Start = ones(1,Nelements); %uniform excitation, 0 phase
AF = zeros(size(theta));
a = abs(Start);
phi = angle(Start);
ComplexWgts = exp(1j*phi);
%Classical Array Factor
for n = 1:Nelements
AF = AF + a(n) * ComplexWgts(n) * exp(1j * n * 2 * pi * d * sin(theta));
end
%AF = AF / max(abs(AF));
%--------------------------------------------------------------------------
% FFT Array Factor
AF_FFT = fftshift(fft(Start,Npoints));
figure
hold on;
plot(theta,20*log10(abs(AF)),'Color','r','LineWidth',2);
plot(theta,20*log10(abs(AF_FFT)),'Color','b','LineWidth',1);
% polar(theta,abs(AF),'r')
% polar(theta,abs(AF),'b')
ak
ak 2024년 1월 14일
what happens if d is lambda, or 2*lambda? FFT only seems to work when element spacing is lambda/2. how do i change the code so that it can work for other element spacings as well?

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

답변 (1개)

Honglei Chen
Honglei Chen 2015년 5월 28일
FFT is simply a computation tool, you can interpret the result based on your application. Using your ULA as an example, the phase shift between each element can be considered as exp(1i*2*pi*f*d*sin(theta)/c) where c is the propagation speed. On the other hand, for FFT, the phase shift between each sample is exp(1i*2*pi*f*t) . Therefore, when computing the array factor, the array can be considered as a spatially sampled sequence so instead of sampling interval t , you now use d*sin(theta)/c instead.
HTH.

카테고리

Help CenterFile Exchange에서 Propagation and Channel Models에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by