How antenna array factor is related to FFT of antenna weights

56 次查看(过去 30 天)
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.

Community Treasure Hunt

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

Start Hunting!

Translated by