How antenna array factor is related to FFT of antenna weights

44 次查看(过去 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.

类别

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