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 Design, Analysis, Benchmarking, and Verification 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!
