How antenna array factor is related to FFT of antenna weights

68 ビュー (過去 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 Center および File ExchangeAntennas, 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