PO_matlab
find_lsqr_solution.m File Reference

Computes least-squares dipole excitations to reduce sidelobes in a dish antenna radiation pattern. More...

Functions

function find_lsqr_solution (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

Computes least-squares dipole excitations to reduce sidelobes in a dish antenna radiation pattern.

This function takes an existing radiation pattern and attempts to modify it by superimposing the fields from a ring of dipoles. The dipole currents are determined by solving a linear system via LSQR to match a target pattern (typically zero field) outside the main lobe.

Parameters
dish_analyzerDishAnalyzer object containing dish geometry and analysis tools.
EdBNormalized far-field magnitude in dB (for display/analysis only).
EthetaComplex far-field E-theta component from the dish.
EphiComplex far-field E-phi component from the dish.
theta_range1D array of theta angles at which far-fields are sampled.
phiThe azimuthal plane (fixed phi) in which the dipole pattern is optimized.
NNumber of dipoles to place around the ring.
rho_locRadial distance of dipoles from the dish center.
phi_locsArray of azimuthal angles specifying dipole positions.
freqOperating frequency [Hz].
Return values
a_vecThe complex excitation vector (current amplitudes and phases) for each dipole.
dipolesA cell array of SimpleDipole objects used in the solution.
rectwinA rectangular window applied over the main lobe region for field preservation.

The main lobe region is automatically detected via get_beam_width. Outside this region, the goal is to reduce the radiated field using a linear superposition of dipole patterns. The function builds a system matrix Zmn where each column is the field contribution from a dipole, and solves Zmn * a = d using LSQR.

Note
This function assumes dipoles are uniformly oriented in azimuth (tangential direction).
See also
SimpleDipole
DishAnalyzer
lsqr

Function Documentation

◆ find_lsqr_solution()

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