PO_matlab
get_zmn_for_phi.m File Reference

Constructs the system matrix Zmn and target vector d for dipole-based sidelobe reduction in a dish antenna. More...

Functions

function get_zmn_for_phi (in dish_analyzer, in EdB, in Etheta, in Ephi, in theta_range, in phi, in N, in rho_loc, in phi_locs, in freq)

Detailed Description

Constructs the system matrix Zmn and target vector d for dipole-based sidelobe reduction in a dish antenna.

This function computes the matrix of dipole contributions (Zmn) and the difference vector (d_vec) between the original field and a target field (typically zero outside the main lobe). It uses the provided DishAnalyzer to determine the beamwidth and builds a window (rectwin) to preserve the main lobe while attenuating sidelobes.

Parameters
dish_analyzerDishAnalyzer object containing dish geometry and analysis methods.
EdBNormalized far-field magnitude in dB (used for beamwidth calculation).
EthetaComplex E-theta component of the dish's far-field.
EphiComplex E-phi component of the dish's far-field.
theta_rangeArray of theta sampling points [rad].
phiFixed azimuth angle [rad] for evaluating the 2D far-field pattern.
NNumber of dipoles to place around the feed.
rho_locRadial distance of dipoles from dish center [m].
phi_locsArray of azimuthal dipole positions [rad].
freqOperating frequency [Hz].
Return values
ZmnComplex-valued system matrix of dipole field contributions (size 2M × N).
d_vecDesired modification vector (difference between target and current field values).
rectwinRectangular window selecting main lobe region (for field preservation).

This helper function is typically used in dipole excitation optimization (e.g., LSQR, fmincon). The dipole model used is SimpleDipole, oriented tangentially along azimuth.

See also
SimpleDipole
DishAnalyzer
find_lsqr_solution

Function Documentation

◆ get_zmn_for_phi()

function get_zmn_for_phi ( in dish_analyzer,
in EdB,
in Etheta,
in Ephi,
in theta_range,
in phi,
in N,
in rho_loc,
in phi_locs,
in freq )