# Calculate the far field phase centre

### Definition of the phase centre

The phase centre is the point where a radiated field seems to originate – thus radiating a spherical wave from this point. For general radiated fields, a single phase centre location usually does not exist since antennas are not isotropic radiators. Each view direction seems to originate from a different location. For a section of a radiation pattern (usually a section of the main beam) a “nominal” phase centre can usually be found. If the source is an isotropic radiator, both methods would return the same result.

The phase centre calculation is often used during the design of reflector antennas. The idea is to place the antenna such that the phase centre of the antenna is at the focal point of the reflector.

### What the phase centre script calculates

The phase centre calculation utility script calculates two phase centres from a set of far field components in a POSTFEKO far field result. It is intended to be run from within POSTFEKO.

The first method calculates the phase centre in the centre at any point within the far field request (centre of the request by default). The result is the phase centre at a single point. The phase should be close to constant in the vicinity of this point.

The best “nominal” phase centre can also be determined in the vicinity of the current far field origin. The best “nominal” phase centre is the point where the maximum change in phase is minimised. Please see the example at the end of this document for an illustration of the difference between the two methods.

### Functions available by loading "phase_centre_utility"

This section lists the functions that are available for the calculation of the phase centre.

**phase_centre_m1**

- Description: The first method calculates the phase centre in the centre of the viewing angle. The result is the phase centre in the particular direction, but since the radiation pattern is not an isotropic radiator, the value is not the phase centre in other directions.
- Arguments
- Far field (required): The far field result that will be analysed.
- Far field component function (required): This function must calculate and return the far field component to be analysed. It could be as simple as a function that returns one of the components (theta or phi) or it could calculate and return a circularly polarised field component.
- Frequency index (optional): The first frequency is analysed by default.
- Theta index (optional): The centre index is analysed by default.
- Phi index (optional): The centre index is analysed by default.
- Return: A table containing the location (three coordinates) of the phase centre (global coordinate system).

**phase_centre_m2**

- Description: The second method tries to minimise the maximum phase deviation over the entire viewing angle. It can be quite slow, since it calculates the phase centre in a volume and then selects the point that resulted in the least phase deviation. The speed can be improved considerably by rather performing an iterative search, each time reducing the size of the volume, but also the spacing between sampling points.
- Arguments:
- Far field (required): The far field result that will be analysed.
- Far field component function (required): This function must calculate and return the far field component to be analysed. It could be as simple as a function that returns one of the components (theta or phi) or it could calculate and return a circularly polarised field component.
- Side length of search volume (optional): The side length of the cube volume that will be analysed. A side length of on wave length is used by default. It is recommended to supply this value since the number of points should also be supplied (next parameter).
- Number of points per dimension (optional): By default only a single point will be analysed and thus it is recommended to supply a value for the number of points. A value of 10 is often used.
- Frequency index (optional): The first frequency is analysed by default.
- Return: A table containing the location (three coordinates) of the phase centre (global coordinate system).

**move_far_field_origin**

- Description: This method moves the far field origin to a new coordinate and also adjusts the phase of each far field component accordingly.
- Arguments:
- Far field (required): The far field result that will be analysed.
- New origin (required): A table containing the three coordinates of a the new global origin.
- Original/old origin (optional): A table containing the three coordinates of a the current global origin. When this parameter is not supplied, it will be read from the meta data of the far field result object.
- Return: A far field result object is returned that is located at the new origin.

**normalise_ff_phase**

- Description: The far field phase for a specified component at a single point is calculated and then the phase is subtracted. This allows the phase of different far fields to be easily compared.
- Arguments:

- Far field (required): The far field result that will be analysed.
- Far field component function (required): This function must calculate and return the far field component to be analysed. It could be as simple as a function that returns one of the components (theta or phi) or it could calculate and return a circularly polarised field component.
- Frequency index (optional): The first frequency is analysed by default.
- Theta index (optional): The centre index is analysed by default.
- Phi index (optional): The centre index is analysed by default.

- Return: A far field result object is returned with the adjusted phase.

### Take note

There are a few limitations of the phase centre calculation that should be noted:

- At least three distinct (theta) directions are required that are closely spaced (no limitation on (phi) directions).
- The far field points should be adequately spaced to allow accurate interpolation of the far field phase. (one degree spacing should be fine for most cases)
- The far field beam should not be along the z-axis. Better results are expected when the beam is in or close to the xy-plane. (This is easily done by simply rotating the geometry prior to the far field calculation.)

If the results are not in the range that you expected, ensure that the correct far field component has been selected and that the beam does not point along the z-axis. If these are both correct, it could be that the far field has not been sampled finely enough to reconstruct the phase of the far field.

### Examples

A simple horn model is used to illustrate how the phase centre is calculated and how the phase centre calculations differ. The image below is an illustration of the model and the theta component of the far field.

It is clear from the image that the horn is not a isotropic radiator, but over a small section of the main beam it can be considered to be an approximate isotropic radiator. This is the assumption that is made during the phase centre calculation. The phase centre calculation determines the origin of such a "fictitious" isotropic radiator.

The phase of the far field shown below has been adjusted so that the phase is zero in the centre of the main beam (using **normalise_ff_phase**). This makes it easier to compare the changes in phase of the original far field and the far fields located at the calculated phase centres. It is clear that the phase is not constant and varies considerably. If this far field had been from an isotropic radiator, the phase would be constant everywhere when the far field origin is located at the phase centre. The section in the middle that is green is quite small. Green indicates a zero phase, while red indicates a positive phase and blue a negative phase. A large green area would indicate a large area with constant phase.

### Phase calculation method 1 (phase centre at a single point)

The first phase calculation method will now be used to calculate phase centre relative to the centre of the main beam for the theta component. The far field result script is listed below:

local phase_centre = require("phase_centre_utility")

farfield = pf.farfield.get("Feeding_a_Horn_Antenna_Pin_Feed.StandardConfiguration1.FarField1")

function ff_component(ff)

-- extracts the correct ff component

return ff.theta

end

-- Calculate the phase centre

pc = phase_centre.phase_centre_m1(farfield, ff_component)

print("The phase centre is located at")

print("X =" .. pc[1])

print("Y =" .. pc[2])

print("Z =" .. pc[3])

-- Move the far field origin to the calculated phase centre

phase_centre.move_far_field_origin(farfield, {pc[1], pc[2], pc[3]})

-- Set phase to zero at centre of the beam

-- This makes visualisation and comparison easier and is not required when only interested in the phase centre

farfield = phase_centre.normalise_ff_phase(farfield, ff_component)

return farfield

The image (below) shows the resulting phase distribution when the far field is located at the phase centre calculated by the first method. We can see a large green area where the phase is close to zero, but then the phase deviates quickly (blue region).

### Phase calculation method 2 (minimize maximum phase deviation)

Here the second phase centre calculation method is used to calculate the phase centre of the theta component. Since this method tries to find the point that minimises the phase variation over the entire far field request, this method is more suited to smaller far field requests. This example illustrates what can be calculated, but it would have performed better if the far field area was reduced. The script used to calculate the far field phase is shown below:

local phase_centre = require("phase_centre_utility") farfield = pf.farfield.get("Feeding_a_Horn_Antenna_Pin_Feed.StandardConfiguration1.FarField1") function ff_component(ff) -- extracts the correct ff component return ff.theta end -- Use the first phase centre calculation method as the initial phase centre (starting point) pc = phase_centre.phase_centre_m1(farfield, ff_component) phase_centre.move_far_field_origin(farfield, {pc[1], pc[2], pc[3]}) -- Loop a few times calculating the phase centre in a volume. With each -- iteration we reduce the size of the volume and also the spacing between -- sample points. This is done to improve the speed of the calculation. num_it = 5 refinement = 5 for it = 1, num_it do pc = phase_centre.phase_centre_m2(farfield, ff_component,1/(refinement^(it-1)),6) phase_centre.move_far_field_origin(farfield, {pc[1], pc[2], pc[3]}) end print("The phase centre is located at") print("X =" .. pc[1]) print("Y =" .. pc[2]) print("Z =" .. pc[3]) -- Set phase to zero at centre of the beam -- This makes visualisation and comparison easier and is not required when only interested in the phase centre farfield = phase_centre.normalise_ff_phase(farfield, ff_component) return farfield

The following image illustrates the phase variation for the far field located at the phase centre calculated by the second method. We can see the phase varies considerably, but that the area with a phase close to zero is larger and the phase does not change as dramatically as in the other images.

### Conclusion

This example illustrates that there is no single phase centre and that the best phase centre calculation method depends on the requirements of the application. The phase centre calculation at a single point (method 1) should be used in general, but the second phase centre calculation method can increase the low phase variation area in cases where this is required.

The graph (below) illustrates the phase variation in a single phi cut. We can see that the original far field varied considerably and is not flat at theta=90 degrees. The first solution method is perfectly flat at theta=90 degrees, but quickly deviates from zero when theta is more than 10 degrees from the centre. The second solution method is not as flat as the first, but the only starts deviating away from zero when theta is more than 15 degrees away from the centre.