Comparing Weight Values with LSM and ifft
Show older comments
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));
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?
Accepted Answer
More Answers (0)
Categories
Find more on Full-Wave Analysis in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
