- FEKO Website Content Migration to Altair Locations - March 25, 2018
- Designing EMC Compliant Products for a Connected World - February 26, 2018
- Why Join the Electromagnetic Support Forums? - September 20, 2017

**Scripting is used to determine the safety zones of a yagi antenna according to INIRC 88 and NRPB 89 standards.**

### Introduction

A variety of international safety standards for civil and military applications exist to ensure that people do not get exposed to too much electromagnetic radiation. This example illustrates the safety zones for a simple yagi-uda antenna according to both the INIRC 88 and NRPB 89 standards as they are defined for the operating band.

The antenna is simulated from 400MHz to 1.5GHz, which covers several common GSM bands for mobile communication. The results will indicate where a person may be at any simulated frequency and still conform to the safety standards.

### INIRC 88 and NRPB 89 Safety Standards

INIRC (International Non-ionising Radiation Committee) and NRPB (The UK National Radiological Protection Board) provide standards that determine safe radiation thresholds. These standards are typically frequency dependent and defined in a piece-wise manner [1].

Standard | Electric Field (V/m) |
Magnetic Field (A/m) |
---|---|---|

INIRC 88 | 3*sqrt(f) | 0.008*sqrt(f) |

NRPB 89 | 97.1*sqrt(f/1000) | 0.258*sqrt(f/1000) |

These restrictions can be interpreted as those electric and magnetic field values where a person’s safety can no longer be guaranteed. The remainder of the article will focus on determining where these thresholds are exceeded.

### The Antenna

To illustrate the point, a simple yagi-uda antenna is taken. A near field cloud is simulated in the immediate surrounding area of the antenna to obtain the electric and magnetic field values.

### The Calculations

POSTFEKO comes with a scripting capability that is based on the Lua language. Internal data structures (called “datasets”) are directly accessible and can be created or modified in the scripting environment. Several scripts can be written to calculate these thresholds.

The **first script** illustrates how the standards can be added as a dataset that allows us to plot the threshold field values on a graph.

**Script one: The standards**

-- Create a dataset containing the standards formulae for reference

ds = dataset()

axisF = dataset.axis('frequency','Hz',400e6,1.5e9,21)

dataset.addaxis(ds, axisF)

dataset.addquantity(ds, "E_inirc88", "scalar", "V/m")

dataset.addquantity(ds, "E_nrpb89", "scalar", "V/m")

dataset.addquantity(ds, "H_inirc88", "scalar", "A/m")

dataset.addquantity(ds, "H_nrpb89", "scalar", "A/m")

for ff = 1,#axisF do

local freq = axisF[ff]/1e6 -- frequency in MHz

-- Electric field limits

ds[ff].E_inirc88 = 3*math.sqrt(freq)

ds[ff].E_nrpb89 = 97.1*math.sqrt(freq/1000)

-- Magnetic field limits

ds[ff].H_inirc88 = 0.008*math.sqrt(freq)

ds[ff].H_nrpb89 = 0.258*math.sqrt(freq/1000)

end

return ds

The **second and third scripts** utilise these limits to calculate the positions where the safety threshold is exceeded. Each near field value is processed and normalised to the maximum field value that the standard allows for that frequency. In other words, a value of “1” corresponds to the field threshold according to the standard. A value higher than “1” is over the limit and a value lower than “1” is a safe zone.

**Script two: The normalised threshold as per INIRC 88**

-- This example illustrates how advanced calculations

-- can be performed to display radiation hazar zones.

`-- The INIRC 88 standards are used.`

`nf = pf.nearfield.get("yagi.Configuration1.nf")`

axisF = nf.axes[1] -- Isolate the frequency axis

axisX = nf.axes[2] -- Isolate the "x" axis

axisY = nf.axes[3] -- Isolate the "y" axis

axisZ = nf.axes[4] -- Isolate the "z" axis

`-- declare loop variables to improve performance`

freq = 0

EfieldLimit = 0; HfieldLimit = 0

magEx = 0; magEy = 0; magEz = 0

magHx = 0; magHy = 0; magHz = 0

`for ff = 1,#axisF do`

freq = axisF[ff]/1e6 -- Frequency in MHz

EfieldLimit = 3*math.sqrt(freq)

HfieldLimit = 0.008*math.sqrt(freq)

` for xx = 1,#axisX do`

for yy = 1,#axisY do

for zz = 1,#axisZ do

` -- SCALE THE ELECTRIC FIELD VALUES`

-- Scale the values to indicate percentages. The percentage represents

-- the field value relative to the limit of the standard.

nf[ff][xx][yy][zz].efieldcomp1 = nf[ff][xx][yy][zz].efieldcomp1/(EfieldLimit)

nf[ff][xx][yy][zz].efieldcomp2 = nf[ff][xx][yy][zz].efieldcomp2/(EfieldLimit)

nf[ff][xx][yy][zz].efieldcomp3 = nf[ff][xx][yy][zz].efieldcomp3/(EfieldLimit)

` -- SCALE THE MAGNETIC FIELD VALUES`

-- Scale the values to indicate percentages. The percentage represents

-- the field value relative to the limit of the standard.

nf[ff][xx][yy][zz].hfieldcomp1 = nf[ff][xx][yy][zz].hfieldcomp1/(HfieldLimit)

nf[ff][xx][yy][zz].hfieldcomp2 = nf[ff][xx][yy][zz].hfieldcomp2/(HfieldLimit)

nf[ff][xx][yy][zz].hfieldcomp3 = nf[ff][xx][yy][zz].hfieldcomp3/(HfieldLimit)

end

end

end

end

`-- Note that in essence, the values being returned are`

-- no longer near fields. As such, interpret them

-- carefully in POSTFEKO.

return nf

**Script three: The normalised threshold as per NRPB 89**

`-- This example illustrates how advanced calculations`

-- can be performed to display radiation hazar zones.

`-- The NRPB 89 standards are used.`

`nf = pf.nearfield.get("yagi.Configuration1.nf")`

`axisF = nf.axes[1] -- Isolate the frequency axis`

axisX = nf.axes[2] -- Isolate the "x" axis

axisY = nf.axes[3] -- Isolate the "y" axis

axisZ = nf.axes[4] -- Isolate the "z" axis

`-- declare loop variables to improve performance`

freq = 0

EfieldLimit = 0; HfieldLimit = 0

magEx = 0; magEy = 0; magEz = 0

magHx = 0; magHy = 0; magHz = 0

`for ff = 1,#axisF do`

freq = axisF[ff]/1e9 -- Frequency in GHz

EfieldLimit = 97.1*math.sqrt(freq)

HfieldLimit = 0.258*math.sqrt(freq)

`for xx = 1,#axisX do`

for yy = 1,#axisY do

for zz = 1,#axisZ do

` -- SCALE THE ELECTRIC FIELD VALUES`

-- Scale the values to indicate percentages. The percentage represents

-- the field value relative to the limit of the standard.

nf[ff][xx][yy][zz].efieldcomp1 = nf[ff][xx][yy][zz].efieldcomp1/(EfieldLimit)

nf[ff][xx][yy][zz].efieldcomp2 = nf[ff][xx][yy][zz].efieldcomp2/(EfieldLimit)

nf[ff][xx][yy][zz].efieldcomp3 = nf[ff][xx][yy][zz].efieldcomp3/(EfieldLimit)

` -- SCALE THE MAGNETIC FIELD VALUES`

-- Scale the values to indicate percentages. The percentage represents

-- the field value relative to the limit of the standard.

nf[ff][xx][yy][zz].hfieldcomp1 = nf[ff][xx][yy][zz].hfieldcomp1/(HfieldLimit)

nf[ff][xx][yy][zz].hfieldcomp2 = nf[ff][xx][yy][zz].hfieldcomp2/(HfieldLimit)

nf[ff][xx][yy][zz].hfieldcomp3 = nf[ff][xx][yy][zz].hfieldcomp3/(HfieldLimit)

end

end

end

end

`-- Note that in essence, the values being returned are`

-- no longer near fields. As such, interpret them

-- carefully in POSTFEKO.

return nf

Note that a working knowledge of Lua is recommended for scripting examples. An overview of the Lua/POSTFEKO interface is provided in the formal FEKO documentation.

### The Results

The resulting “near fields” are now a normalised threshold value. Plotting the Iso-surfaces for these fields can show the positions where a certain field percentage is reached. For example, the red surface corresponds to positions where the maximum allowable field value is reached. Getting any closer to the antenna than the red surface would result in a breach of the INIRC 89 standard. The yellow surface corresponds to 80% of the maximum field value.

This is a good way to visualise the safety zones for individual frequencies. With small modifications to the script, the safety zone over the entire band can be calculated by storing only the “worst-case” values.

The same logic can be applied to any standard over any band. Scripting provides a fully customisable interface with POSTFEKO data structures so that any calculation can be performed.To see whether a specific position is within the safety limits, a simple graph can also be utilised. By comparing the near field at a given location to the standard (i.e. the results from script one), the entire frequency band can be assessed. Here it can be seen that the given position is not safe for extended exposure between roughly 1.0 and 1.2 GHz.

### References

[1] R. Kitchen, “Radio Frequency Radiation Safety Handbook”, Oxford: Butterworth-Heinemann, p. 78, 1993.