# How to optimize the antenna weight of a two-dimensional array to generate null in a specific direction

조회 수: 9 (최근 30일)
2024년 5월 15일
답변: Honglei Chen 2024년 6월 19일
I have read the” Array Pattern Synthesis Part II: Optimization“，the optimization example is for one-dimensional array（ULA）, and there are problems in my process of weight optimization for two-dimensional array（URA），Please give me some guidance，thanks！
N = 8;
M=8;
URA1 = phased.URA('Size',[N,M],'ArrayNormal','z');
pos = getElementPosition(URA1);
% position of elements
ang_i = [-70 -40 -20;0 0 0]; % interference angles
ang_d = [0;0]; % desired angle
Rn = sensorcov(pos,ang_i,db2pow(-40)); % Noise covariance matrix
sv_c = steervec(pos,[ang_d ang_i]); % Linear constraints
r_c = [1 zeros(size(ang_i))]'; % Desired response
w_lcmv = lcmvweights(sv_c,r_c,Rn); % LCMV weights
ang_plot = -90:0.1:90;
sv_plot = steervec(pos,ang_plot);
plcmv = plot(ang_plot,mag2db(abs(w_lcmv'*sv_plot)));
xline(ang_i,"--")
ylim([-100 0])
grid on
legend(plcmv,"LCMV - Analytic")
xlabel("Azimuth Angle (deg)")
ylabel("Beam Pattern (dB)")

댓글을 달려면 로그인하십시오.

### 답변 (1개)

Honglei Chen 2024년 6월 19일
Your script is pretty close, you just need to set up the desired response properly. However, you could take advantage of the pattern plot to plot the pattern for a planar array.
Hope this helps,
N = 8;
M = 8;
URA1 = phased.URA('Size',[N,M],'ArrayNormal','z');
pos = getElementPosition(URA1);
% position of elements
ang_i = [-40 -20 10;10 20 -10]; % interference angles
ang_d = [0;0]; % desired angle
Rn = sensorcov(pos,ang_i,db2pow(-40)); % Noise covariance matrix
sv_c = steervec(pos,[ang_d ang_i]); % Linear constraints
r_c = [1 zeros(1,size(ang_i,2))]'; % Desired response
w_lcmv = lcmvweights(sv_c,r_c,Rn); % LCMV weights
pattern(URA1,3e8,-90:90,-90:90,'CoordinateSyste','Rectangular',...
'Type','powerdb','Weights',w_lcmv);
view(0,90);

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Antennas, Microphones, and Sonar Transducers에 대해 자세히 알아보기

R2024a

### Community Treasure Hunt

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

Start Hunting!

Translated by