Comparing Weight Values with LSM and ifft

3 visualizaciones (últimos 30 días)
종영
종영 el 5 de Abr. de 2024
Respondida: Balavignesh el 21 de Mayo de 2024
clc; clear all; close all
%% array parameters
c = 3e8;
f = 3e8; % nominal frequency for array antenna interval setting
lambda = c/f;
d = lambda/2; % array spacing
Na = 10; % number of array elements
Ns = 2^10;
theta = -90:0.05:90; % turn table scan angle
theta_w = linspace(-pi,pi,Ns);
beta = 2*pi/lambda;
ste = 0;
u_delta = 2*pi/Na;
z = exp(1j*pi*(0:Na-1)'*sind(theta_w));
%% Desired Beam
Th_start = 0; % degree unit
B1 = Chebyshev_real1(Na,ste);
B2 = resample(B1,Ns,length(theta))';
% plot(pi*sind(theta),10*log10((abs(B1)).^2),'LineWidth',1.5)
plot(theta_w,10*log10((abs(B2)).^2),'LineWidth',1.5)
xlim([-pi pi])
ylim([-50 0])
xlabel("\theta")
ylabel("Normalized Pattern [dB]")
title("Dolph-Chebyshev Beam Pattern")
grid on
% Xd = exp(1j*beta*d*(0:N-1)'*sind(theta));
% Xd1 = sum(Xd,1);
% Xd2 = abs(Xd1/max(Xd1));
%% weighting LSM
w_lsm = z.' \ B2;
%% ifft
w_ifft = stem(ifft(B2));
Warning: Using only the real component of complex data.
w_ifft2 = ifft(B2);
wn_s = maxk(w_ifft2,10);
function Chebyshev_real = Chebyshev_real1(N,ste)
R_dB=20;
R=10^(R_dB/20);
m=N-1;
x0=cosh((1/m)*acosh(R));
u=sind(-90:0.05:90);
psi=pi*u;
x=x0*cos((psi-ste*pi/180*pi)/2);
T_real(1,:)=ones(1,length(x));
T_real(2,:)=x;
if m>1
for i=3:m+1
T_real(i,:)=2*x.*T_real(i-1,:)-T_real(i-2,:);
end
else
end
B=(1/R)*T_real(m+1,:); % 1/R 은 normalize
Chebyshev_real = B;
% save("Chev_30dB_m5deg_89","Chev_30dB_m5degree")
end
When comparing weight values through LSM and ift for the Desired beam, I think similar values should be obtained for the two values. Where is it wrong?

Respuesta aceptada

Balavignesh
Balavignesh el 21 de Mayo de 2024
Hi 종영 ,
As per my understanding, you are designing an antenna array beam pattern using Dolph-Chebyshev weighting and then attempt to recover these weights through two methods: least squares method (LSM) and inverse Fourier transform (IFT). You're expecting similar weight values from both the methods, but there seems to be a discrepancy. Here could be some potential issues:
  • Mismatch Between LSM and IFT Approaches: The LSM directly computes weights that best match the desired beam pattern given the array geometry and element positions. The IFT approach assumes a direct Fourier relationship, which is more nuanced in practical antenna array design.
  • The warning "Using only the real component of complex data" from 'stem(ifft(B2))' suggests that the IFT produces complex values, of which only the real parts are plotted. This discrepancy indicates that the transformation and its inverse might not be directly applicable without considering phase information and complex amplitude.
  • The resampling of 'B1' to 'B2' changes the data's structure. Be cautious about how this affects the IFT's ability to recover original weights. The number of samples and their distribution (linear vs angular space) significantly impact the Fourier and Inverse Fourier Transform.
For a more direct conversion, ensure that the data fed into both LSM and IFT processes are as similar as possible in terms of sampling, representation, and format (e.g., consider the effects of resampling and ensure consistent use of angular frequencies vs. linear indices).
Hope that helps!
Balavignesh

Más respuestas (0)

Categorías

Más información sobre Mathematics en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by