Professor Christopher W. Trueman
Electromagnetic Compatibility Laboratory
Updated
Program
GO_3D uses geometrical optics in three-dimensional space to determine the
fields of a portable radio transmitter operating in an indoor environment. The input to the program consists of a floor
plan, the location of the transmitter or handset, the transmitter’s far fields,
and the location of the receiver or observer.
The GO_3D program uses ray-tracing to find coupling paths between the
transmitter and receiver, including propagation through walls or partitions and
reflection from walls. Paths including
many reflections and many penetrations of walls can be accounted for. The program uses full vector analysis and
calculates the three vector components of the field at the receiver, ,
, and
. This User’s Guide
describes the preparation of an input file for analysis by GO_3D, including how
to specify the floor plan, the transmitter, and the location of one or many
receivers at which the field is to be found.
You can
obtain a copy of the “executable” file for GO_3D for a Pentium computer running
Microsoft Windows by clicking here: Fetch GO_3D.EXE
The GO_3D code works by constructing the image of the source in each wall panel, as described in Refs. [1] and [2]. Each image of the source has a 2nd level image in each wall panel; including 2 levels of images permits the code to trace rays that are reflected twice in traveling from the transmitter to the observer. Each 2nd level image has a 3rd level image in each panel; three levels of images permit rays to be tracked through three reflections. The GO_3D code constructs a tree of images with the transmitter at the root[3]. The depth of the tree, that is the maximum number of reflections that the program will trace, is not by the user a priori. Instead the user sets a threshold field strength, as discussed below, and the code includes all rays having fields that are above the threshold. The tree structure permits the code to trace rays through more than a hundred reflections if the user asks for such a detailed calculation.
The input file for the GO_3D code is interpreted by the program line by line and so in a sense is a “language” for defining a problem. The input to the program is an ASCII file that is created with a file editor, notepad or word processor. Table 1 lists the various commands that control GO_3D. Table 2 shows a typical input file called “hallroom.go3” that constructs the simple floor plan shown in Fig. 1. The extension “go3” is customary to identify a file as GO_3D input. The input “language” is intended to be descriptive and easy to understand. In general the order of the statements in the input file does not matter. However it helps to group these logically as transmitter definition, material definitions, wall definitions, point locations and wall panel locations, floor and ceiling, and receiver locations. You can fetch a copy of this input file by clicking here: Fetch HALLROOM.GO3.
The floor plan defined by the input file in Table 2 is shown in Figure 1. The figure shows an xy plane “plan view” at the bottom, with the x axis extending across the page and the y axis up the page. The top part of the figure shows an xz or “vertical” plane, with x across the page and z up the page. The plan view shows a hallway which extends from x=-10 m to x=10 m and is open at the ends. The hallway is 1.755 m wide from wall surface to wall surface. One wall is continuous; the other wall has a 1 m wide doorway leading to a small room. There is a wood door, 4.5 cm thick, in the “open” position. The room dimensions are 2.86 m in the x direction and 4.07 m in the y direction. The walls are of “clay block” construction except for the outside wall of the room, which is “concrete”, as defined in the following. There is a window approximately in the center of the outer wall. A transmitter is operated in the corridor, for example at the location shown by the circle in Figure 1. The field strength at various locations in the room is to be found, for example along the dashed line shown in Fig. 1. The upper part of the figure shows an elevation view of the same floor plan. The floor and the ceiling are concrete slabs 42 cm thick. The ceiling height is 2.48 m. In the following each part of the input file is described in detail.
Figure 1 The hallway with a side room.
The floor plan is specified to the GO_3D program in an xyz coordinate system. The z axis is the vertical axis pointing from the floor to the ceiling, with z=0 being the floor level, by definition. The x and y coordinates are used to define the location of the wall panels making up the floor plan. One limitation of the present implementation of GO_3D is that the wall panels must be parallel to the xz plane or to the yz plane.
Each line of the input file is either a “command” or a “comment”. Commands are recognized by the keyword at the beginning of the line. If the leading characters are not recognized as a command then the input line is ignored, that is, treated as a comment. The user is encouraged to begin comment lines with “C” or “!” or “\” to make clear to the reader of the file that the line is intended as a comment. It is good practice to include many comments in the input file so that the file is “self-documenting” and fully self-explanatory. What is the structure being described? What is the date? Why is this problem being solved? Where did the geometry data come from? Where are the values for the electrical parameters taken from? A fully documented file is of much greater value than a simple list of commands and numbers.
Table 1 GO_3D Input Commands |
MATERIAL Space
1. 0. 1. MATERIAL Concrete
6.1 60.1 1. MATERIAL Brick
5.1 10. 1. MATERIAL Iron
1.0 2.E9 1000. WALL_TYPE
BrickWall SOLID Brick 14. WALL_TYPE
ConcreteWall1 SOLID Concrete 42. WALL_TYPE
SheetrockWall LAYERED 3 Concrete 1. Space 12. Concrete 1. WALL_TYPE
ClayBlockWall LAYERED 5 Concrete 1.5
Brick 0.8 Space 9.4 Brick 0.8 Concrete 1.5 WALL_TYPE
Plaster&Wire LAYERED 3 Concrete
1. Iron 12. Concrete 1. |
POINT
xmitter 3.9225 1.35 1.6 POINT 23 6.095 -1.12
0. POINT 24t 6.095 0.85
2.48 DEFINE_WALL 23 24t SheetrockWall FLOOR
Concrete 30. CEILING Concrete 30.
2.48 |
FREQUENCY 850. SOURCE_POWER 600. SOURCE_LOCATION xmitter DIPOLE_SOURCE 0.
0. 1. IMPORTED_SOURCE imported.sol |
RCVRPOINT rcvr RCVRLINE rstart
rend 2.0 |
Program
Control ETHRESHOLD 20. RPLFILE
TBLFILE RAYLISTS XMITGRID xmitgrid1 xmitgrid2 5.0 REFANGLE REFFREQ
400. 1200. END |
Each command line begins with a “keyword” such as “FREQUENCY” or “DEFINEWALL”. In the following, all the input commands are described, including how they are used to define wall materials, wall construction, and wall locations to construct a floor plan; how to define a transmitter; and how to define receiver locations.
The input file is interpreted
line by line by the GO_3D program.
Although the commands do not have to appear in any particular order, it
is usually convenient to group them in a logical sequence to make the file easy
to read. The customary order is as
follows:
1. Define the transmitter by giving the frequency and the location of the transmitter. Specify the radiated power. Specify if the transmitter is to be modeled as a simple dipole antenna or as an “imported source”, which is described more fully below.
2. Define the “threshold field strength”, which the GO_3D code uses to control the depth of the search for ray paths, as discussed below.
3. Define the materials to be used to construct walls. Each material is given a name and values for its electrical parameters.
4. Define various layered wall constructions. Each wall type is given a name. The material for each layer is invoked by the name previously given, and the thickness of the layer is defined.
5. Specify the floor plan by giving the location of wall panels. The wall type of each panel is invoked by name.
6. Specify the wall type of the floor and of the ceiling.
7. Specify the locations at which the field is to be calculated, called “receivers” in the GO_3D code.
The following describes each section of the sample input file given in Table 2.
Table
2
GO_3D Input File for the Hall with Side Room Problem
C
Hall Room Problem
C
C
The frequency in MHz:
FREQUENCY 850.
C
C
The source power in milliwatts:
SOURCE_POWER 600.
C
C
The location of the source:
POINT
xmitter 1.2 0.9125 1.6
SOURCE_LOCATION
xmitter
C
C
Half-wave dipole source:
DIPOLE_SOURCE 0.
0. 1.
C
C
Imported source:
C
IMPORTED_SOURCE imported.sol
C
C
The threshold field strength in dB below the "isotropic level":
ETHRESHOLD 19.
C
C
Materials for building walls: (850 MHz)
C Name epsr sigma (mS/m) mur
MATERIAL Space
1.0 0.0 1.
MATERIAL Metal
1.0 1.E7 1.
MATERIAL Brick
5.1 10. 1.
MATERIAL Glass
6.0 1.E-9 1.
MATERIAL Wood
2.5 1.18 1.
MATERIAL Limestone
7.51 28.0 1.
MATERIAL Concrete
6.1 60.1 1.
MATERIAL Iron
1.0 2.E9 1000.
C
C
Wall construction definitions:
C Name type material thickness (cm)
WALL_TYPE
BrickWall SOLID Brick
14.
WALL_TYPE
ConcreteWall SOLID Concrete
42.
WALL_TYPE
GlassPane SOLID Glass
0.1
WALL_TYPE
MetalPanel SOLID Metal
0.1
WALL_TYPE
Radiator SOLID Metal
58.0
WALL_TYPE
WoodDoor SOLID Wood
4.5
C Name type
layers layer material and layer
thickness
WALL_TYPE
Sheetrock LAYERED 3 Concrete 1.
Space 12. Concrete 1.
WALL_TYPE
Plaster&Wire LAYERED 3 Concrete 1.
Iron 12. Concrete 1.
WALL_TYPE
ClayBlockWall LAYERED 5 Concrete 1.5
Brick 0.8 Space 9.4 Brick 0.8 Concrete 1.5
C
C
Define the floor plan:
C
C
The long side wall:
POINT 1
-10.00 -0.07 0.00
POINT 2t
10.00 -0.07 2.48
DEFINE_WALL
1 2t ClayBlockWall
C
The side wall with the doorway:
POINT 3
-10.00 1.895 0.00
POINT 4t
-0.50 1.895 2.48
DEFINE_WALL 3
4t ClayBlockWall
POINT 5
0.50 1.895 0.00
POINT 6t
10.00 1.895 2.48
DEFINE_WALL 5
6t ClayBlockWall
C
The transom above the door:
POINT
20 -0.50 1.895
2.20
POINT
21t 0.50 1.895
2.48
DEFINE_WALL 20 21t
ClayBlockWall
C
The door to the room in the open position:
POINT
19 0.4775 1.895
0.00
POINT
20t 0.4775 2.895
2.20
DEFINE_WALL 19 20t
WoodDoor
C
C
The room walls:
POINT
11 -1.40 1.965
0.00
POINT
12t -1.40 6.175
2.48
DEFINE_WALL 11 12t
ClayBlockWall
POINT
13 1.60 1.965
0.00
POINT
14t 1.60 6.175
2.48
DEFINE_WALL 13 14t
ClayBlockWall
C
The room's outer walls on either side of the window:
POINT
15 -1.47 6.245
0.00
POINT
16t -0.55 6.245
2.48
DEFINE_WALL 15 16t
ConcreteWall
POINT
17 0.63 6.245
0.00
POINT
18t 1.67 6.245
2.48
DEFINE_WALL 17 18t
ConcreteWall
C
The patch of wall below the window:
POINT
23 -0.55 6.245
0.00
POINT
24t 0.63 6.245
0.74
DEFINE_WALL 23 24t
ConcreteWall
C
The window glass:
POINT
25 -0.55 6.245
0.74
POINT
26t 0.63 6.245
2.29
DEFINE_WALL 25 26t
GlassPane
C
The patch of wall above the window:
POINT
27 -0.55 6.245
2.29
POINT
28t 0.63 6.245
2.48
DEFINE_WALL 27 28t
ConcreteWall
C
C
Define the floor material and thickness in cm:
FLOOR Concrete
30.
C
Define the ceiling material, thickness in cm, and height in m:
CEILING
Concrete 30. 2.48
C
C
Ask for the reflection and transmission properties of each
C
type of wall panel, as a function of the angle of incidence:
REFANGLE
C
Ask for the reflection and transmission properties of each
C
type of wall panel, as a function of the angle of incidence:
REFFREQ 400.
1200.
C
C
A receiver at a single point:
POINT onercvr
0.0 4.5 1.6
C RCVRPOINT
onercvr
C
C
A line of receivers in the room:
POINT rstart
0.0 1.895 1.6
POINT rend
0.0 6.000 1.6
RCVRLINE rstart
rend 2.0
C
C
Ask the program to create an output file in "RPL" format:
RPLFILE
R
C
C
A grid of receivers:
POINT gridst
-1.28 2.000 1.6
POINT griden 0.17
6.000 1.6
C From Point: To Point:
Separation (cm)
C
RCVRGRID gridst griden 5.0
C
Ask the program to write a set of output files in "TBL" format:
TBLFILE
C
C
Transmitter grid feature: move the transmitter location over a grid.
POINT xmitgrid1
-4.50 0.05 1.6
POINT xmitgrid2 4.50
1.795 1.6
C
XMITGRID xmitgrid1 xmitgrid2 10.0
C
C
End of File
The user specifies the frequency of the transmitter in MHz with a command beginning with the keyword “FREQUENCY”,
FREQUENCY 850.
The power in milliwatts radiated by the transmitter or “source” into the far field is specified with the keyword “SOURCE_POWER”,
SOURCE_POWER 600.
The location of the center of the
transmitter is specified by defining a point in 3D space according to
POINT xmitter 1.2 0.9125 1.6
This “POINT” command defines a
point with the name “xmitter” at location x=1.2 m, y=0.9125 m, and z=1.6 m,
where z=0 is by definition the floor level. The source is positioned at the
point called “xmitter” with the command
SOURCE_LOCATION xmitter
In GO_3D most commands that require
coordinates in 3D space work by first defining a named point (such as
“xmitter”) and then invoking the point by name.
There are two types of sources
available in the GO_3D code, namely the ideal dipole source and the “imported”
source. The ideal dipole is a half-wave
dipole antenna carrying a sinusoidal current distribution, and radiating into
free space the amount of power previously specified with SOURCE_POWER. The center of the dipole is at the SOURCE_LOCATION
point. The only missing information to
fully define this source is the orientation of the dipole in 3D space. This is specified by giving the components of
a unit vector along the axis of the dipole with the command
DIPOLE_SOURCE 0.
0. 1.
This command
defines a dipole oriented in the z direction.
When the GO_3D code has found a ray originating at the location of the
center of the dipole, it uses the “far” fields of the ideal dipole, scaled to
the desired radiated power, for the field strength and vector orientation of
the field associated with the ray.
The
second type of source that can be used in GO_3D is called an “imported source”
or sometimes a “defined source”. To
invoke this kind of source, use the command
IMPORTED_SOURCE imported.sol
The
far fields of the imported source are contained in the file “imported.sol”,
called a “sol” file. Fetch imported.sol. Bascially, this file must contain
the radiation patterns of the source over the whole surface of the radiation
sphere, giving the magnitude and phase of the field components and
. In general,
twenty-one conical cut patterns are required, for
=0, 25, 37, 45, 53, 60, 66, 72, 78, 84, 90, 96, 102, 108,
114, 120, 127, 135, 143, 155 and 180 degrees, at five degree increments in
angle
. Thus the magnitude
and phase of
and
are required for
21 patterns of 73 points each, or in total at 1533 points. The fields of the source must vary smoothly
enough in
and
that linear
interpolation is a reasonable approximation for the field in between the
explicit
and
points in this data
set. When the GO_3D code needs the field
associated with a ray originating at the source, the program determines the
and
angles of the ray
relative to the GO_3D xyz coordinate system and then uses linear interpolation
to find the value of the field components
and
, both magnitude and phase, to find the vector field
associated with the ray.
The
“sol” file defining the far fields of the source can be prepared with any
antenna analysis program that can calculate the far fields. For example, for a transmitter constructed
entirely of metal, the Numerical Electromagnetics Code can model the
transmitter and calculate the far fields over the radiation sphere. For a source antenna containing dielectric
regions, such as a cellular phone handset operated next to the head, the Finite
Difference Time Domain(FDTD) method is often used to find the far fields. GO_3D results are independent of the method
used to obtain the far fields of the source. GO_3D simply stores the field
values and uses linear interpolation.
The
“sol” file must specify the power radiated by the source, and this value must
be consistent with the field strengths in the file. The power radiated is found by integrating
the Poynting vector over the surface of the the radiation sphere. The magnitude of the Poynting vector is given
by
where
the field values are amplitudes and is the intrinsic
impedance of free space. Then the
radiated power is given by
The
value of the radiated power must be explicitly stated in the “sol” file and is
used by the GO_3D program to rescale the fields to the desired power
level. The exact structure of the “sol”
file is given in Appendix 1.
The
“imported source” feature permits the user to provide a realistic model of
whatever transmitter is being considered.
If a portable radio is the source, it could be modeled in a vertical
orientation or in a tilted orientation and the radiation patterns determined
with an FDTD solver. The radio might be
a cellular telephone handset. The
handset held against a model of the human head and hand can be solved with
FDTD, again to determine the radiation patterns over the radiation sphere. A complex source such as a cellular phone
handset and a head radiates approximately equal power in and in
, and so takes advantage of the full vector calculation
provided by GO_3D. Directional sources
such as a cellular phone held against the head complicate the interpretation
of results computed with GO_3D because
the fields at various locations will be dependent on the orientation of the
“user” of the cellular phone. Thus in Figure 1, the user may be facing along
the hall, or crosswise to the hall, and the fields in each case are somewhat
different.
Ideally a geometrical optics analysis should track each ray through many reflections and transmissions until it exits from the problem space. But at each reflection, there is a transmitted ray, which must also be traced until it exits from the problem space. The computation quickly becomes very time-consuming and hence expensive. So geometrical optics computer codes must decide to discard each ray at some point. For most wall materials, the field strength associated with the ray is substantially reduced either when the ray penetrates a wall or when the ray reflects from a wall. After a few reflections we might expect the field strength associated with the ray to be negligible, and the ray can discarded, and not tracked any further. Thus, many geometrical optics codes require that the user specify the maximum number of reflections that the code will track. A priori, the user is asked to state that the code trace rays through as many as, say, four reflections, or perhaps six reflections. The implicit assumption is that after this many reflections the field strength associated with the ray is negligible. But this can be misleading. For example, for near-grazing incidence, the reflection coefficient approaches unity for any type of wall construction. Obviously, if a ray undergoes say four reflections at near grazing incidence, the reflection coefficient at each reflection is nearly unity and the field is not reduced by reflection. The ray still carries a significant amount of power and should not be discarded.
The GO_3D code uses a different criterion for discarding a ray. Each ray is traced through as many reflections as required to reduce its estimated field strength to less than a pre-set threshold value. There is, in theory, no limit to the number of reflections that the code will trace to meet the pre-set condition. If a crude threshold is specified, the code will only track two or three reflections. But if the threshold is too sensitive, the GO_3D program will try to track fifty or even a hundred reflections. Since memory is allocated “on the fly” to accommodate the image sources required, the computer may run out of memory. If not, the GO_3D program may run so slowly that no useful results can be generated. Thus, setting the threshold is a compromise between the need for accurate results, and the need for reasonable computation times.
The GO_3D tracks each ray until the field strength associated with it falls below a pre-set “threshold” field strength. The user specifies the threshold with the command
ETHRESHOLD 20.
This specifies
that rays must be tracked until the field
associated with the ray is 19 dB below the “isotropic level” field
strength of the source antenna. For any
antenna, if the power radiated is then the corresponding
isotropic level field strength
is given by
For a 600 mW source, the isotopic level is 5.998 V/m, or about 6 V/m. An image source is included in the calculation if the largest field strength it can give rise to is greater than or equal to the “cutoff” field strength of
A threshold of
20 dB with a 600 mW source specifies that rays having fields
less than
0.6 V/m should be discarded. A 40 dB threshold asks that rays
with field strength less than 0.06 V/m be discarded, but this “sensitive”
threshold value usually leads to more image sources than is practical to solve
on desktop computers.
In practice, the GO_3D code constructs an “image tree” once, after the input geometry file has been read, and then uses the same image tree for all the observers. Thus, the location of an observer cannot be a criterion for whether an image should or should not be included in the image tree. The field an image source gives rise to is of the form
where is the strength of the
transmitter in the direction associated with the image source,
is the net attenuation
along the path including the reflection loss when the ray is reflected from
walls and the transmission loss when the ray penetrates walls, and
is the distance from
the source to the observer along the ray path.
To decide whether to include or discard an image, the GO_3D code uses
,
, and uses
to be the distance
from the image source to the nearest point to the image source where an
observer can be located. Because it is
assumed that the reflection coefficients and attenuation coefficients are all
unity, this is a very conservative choice.
This amounts to retaining the image if
or equivalently if
where the cutoff distance is
Thus, the decision of whether to retain or discard images is based simply on the nearest possible distance from the image source to an observer.
For the problem of Figure 1, with a 600 mW source, the isotropic level is 6 V/m. A threshold of 10 dB causes the code to include all image sources with field strengths greater than 1.90 V/m, and some image with smaller field strengths. The code actually tracks as many as 7 reflections using 427 image sources. With a threshold of 16 dB, all the image sources having fields greater than 0.95 V/m are included, and some with smaller field strengths. The code tracks as many as 12 reflections using 7056 image sources. With a 20 dB threshold the cutoff field strength is 0.6 V/m, and as many as 15 reflections are tracked with 9911 image sources. Section 13 of this User’s Guide presents an example of the changes in the computed field strength as the threshold value is increased.
The materials that will be used to make up the walls of the building are specified with the keyword “MATERIAL”. It is convenient to let the user associate a name with each material and then to refer to the material by name when defining wall constructions having several layers. The format of the MATERIAL command is
MATERIAL name permittivity conductivity permeability
which creates a material called “name” having the specified relative permittivity, the conductivity in milliSiemens/meter, and relative permeability. The name of the material must be less than 10 characters and cannot contain any blanks. For example,
MATERIAL Space 1. 0. 1.
creates a material called “Space” which has the properties of free space, and can be used to fill air spaces in hollow walls. A material with the properties of brick at 850 MHz can be created with
MATERIAL
Brick 5.1 10. 1.
The relative permittivity of “Brick” is given as 5.1, the conductivity as 10. mS/m, and the relative permeability is given as unity.
In GO_3D walls are either of “solid” construction, having only one layer, or of “layered” construction having up to seven layers of various materials and thickness. In defining wall constructions, the materials are invoked by name, and the thickness of each layer is given.
A solid wall is make of one type of material throughout. The material type is specified by name, and the wall thickness is given in centimeters, thus
WALLTYPE
BrickWall SOLID Brick
14.
This
command specifies that a wall construction with the name “BrickWall” is to be a
SOLID wall made of “Brick” material 14 cm thick. The name cannot contain embedded blanks, thus
“Brick Wall” with a space between the words is not permitted. Either “BrickWall” with no space or
“Brick_Wall” with an underline character separating the words can be used. Note that the material, “Brick”, must be
defined previously in the input file with a MATERIAL command.
The
user is cautioned that walls of homogeneous materials that are low loss have
low transmission loss, that is, are almost transparent, when the thickness is
half a wavelength in the material. For
normal incidence, the transmission loss for a low-conductivity material is
nearly zero if the wall is an integer multiple of a half-wavelength in
thickness. This is called the “radome
effect” in GO_3D. The radome effect
leads to counter-intuitive behavior. A
solid brick wall is a substantial construction and it is reasonable to expect
that as the thickness is increased, so also will be the attenuation of rays
passing through the wall. But in fact
this is not so. Brick is a relatively
low-loss material, with a relative permittivity of 5.1 and a conductivity of 10
mS/m. At 850 MHz, a brick wall 12 cm
thick has a reflection coefficient of 0.624 for normal incidence. If the thickness is increased to 15.6 cm, it
might be expected that the reflection coefficient from the more substantial
wall would be larger, but in fact the reflection coefficient is only 0.1,
because the thicker wall is a “radome” at 850 MHz, and transmits most of the
field through to the other side.
Note
that the single-layer wall construction is used to model panes of glass, and
metal panels such as the surfaces of a metal locker.
Walls
are more realistically represented as having a layered construction. This is specified with a “LAYERED” wall
definition, such as
WALLTYPE
ClayBlockWall LAYERED 5 Concrete 1.5 Brick 0.8 Space 9.4 Brick 0.8 Concrete 1.5
This command defines a LAYERED wall construction called by the name “ClayBlockWall”. Note that the name string cannot have embedded blanks and must be less than 20 characters long. This layered wall construction has five layers. The first is Concrete, 1.5 cm thick. The next is Brick, 0.8 cm thick., then “Space” or air 9.4 cm thick, then Brick 0.8 cm thick, and finally Concrete 1.5 cm thick. All the materials must be previously defined with MATERIAL commands. The maximum line length is 120 characters, and the maximum number of layers is seven. Note that “Concrete” has been used to model the material parameters of plaster. This construction models walls made of hollow clay blocks with a thickness of 0.8 cm for the clay and a hollow space inside of thickness 9.4 cm. The clay blocks are faced with plaster 1.5 cm thick. Sometimes wire mesh is embedded in the plaster; such a wall in Table 2 is called by the name “Plaster&Wire”, and is modeled with seven layers. Note that the layered construction is not a precise representation of a real wall because the sides of the clay blocks perpendicular to the wall surfaces are ignored.
In general walls with homogeneous layers are not a precise representation of real wall construction. Thus walls have studs, either metal or wood, that cannot be represented with homogeneous layers. Since the spacing of the studs can be comparable to the wavelength, the studs may form a diffraction grating. Also, real walls have many embedded objects such as metal wiring, metal and plastic pipes, and metal ducts. These objects will scatter the field and cannot be modeled in GO_3D.
Figure 2(a) The reflection coefficient for various wall constructions at 850 MHz.
Figure 2(b) The reflection coefficient for various wall constructions as a function of frequency, for normal incidence.
Knowledge of the behavior of the reflection coefficient of each type of wall construction can be useful in understanding the fields that result when rays are incident upon the wall. If the command “REFANGLE” is included in the input file, then the GO_3D program creates a data file giving the reflection coefficient of each wall type as a function of incidence angle, at the operating frequency. If “REFFREQ” is included, then the program calculates the reflection coefficient as a function of frequency for each type of wall construction.
Four types of wall construction are defined in Table 2. The construction named “BrickWall” is a
solid, 14 cm layer of brick, with,
mS/m at 850 MHz. A “Sheetrock” wall consists of surface sheets
of drywall 1 cm thick, separated by a 12 cm air layer. The drywall is represented with the
electrical properties of concrete,
mS/m. The construction named “ClayBlockWall” models a real
wall construction using hollow clay blocks with a wall thickness of 8 mm, faced
with plaster. This is represented as a
layered structure with a 1.5 cm plaster (concrete) facing, a 0.8-cm brick wall
of the clay block, a 9.4 cm thick air space inside the clay block, the 0.8-cm
block wall and the 1.5-cm plaster facing on the other side of the wall. Some clay block walls have metal screen
embedded within the plaster. The
construction named “Plaster&Wire” models a 1 cm thick plaster (concrete)
facing backed by a very highly conducting metal layer. Such walls are almost perfectly
reflecting.
The reflection coefficient at a wall surface is a function of the frequency and the angle of incidence of the plane wave. If the command “REFANGLE” is included in the input file, then the program calculates the reflection coefficient and the transmission coefficient for each wall construction as a function of the angle of incidence. Four values are reported: the reflection coefficient and the transmission coefficient, for parallel polarization and for perpendicular polarization.
Figure 2(a) shows the reflection coefficient for the perpendicular polarization as a function of the angle of incidence from the normal, for the four types of wall construction, at the operating frequency of 850 MHz. Grazing incidence corresponds to 90 degrees from the normal, and all the wall constructions have a reflection coefficient of unity at grazing. In a long corridor with the transmitter at one end and the receiver at the other, rays will be reflected from the walls along zigzag paths from transmitter to receiver with little attenuation at each reflection. The lightest wall construction is sheetrock, consisting mostly of air space in the three-layer model used here. In Fig. 2(a), the reflection coefficient for normal incidence is about 0.566, and declines to about 0.42 for incidence at about 70 degrees from the normal. The solid brick wall is a much heavier construction and might be expected to have a much larger reflection coefficient. In fact, for normal incidence the reflection coefficient is about 0.54. The reflection coefficient of the solid brick wall rises monotonically, to unity for grazing incidence. The clay block wall is a lighter construction than solid brick, but has a larger reflection coefficient of 0.795 for normal incidence, rising to unity for grazing. Finally, the embedded metal mesh in the “plaster and wire” construction leads to a reflection coefficient close to unity (in magnitude) for all incidence angles.
Single-layer walls can also be almost transparent for incidence at the “Brewster angle”, where the wall behaves as a “Brewster window”.
The frequency dependence of the reflection coefficient explains why the reflection coefficient for heavy wall constructions can be less than that for a light construction, as follows. Fig. 2(b) shows the reflection coefficient for normal incidence for the four wall types, as a function of frequency. The wall construction with an embedded wire mesh has a near-unity reflection coefficient across the frequency band. The reflection coefficient for all of the layered wall constructions varies strongly with frequency, and has minima where the value of the reflection coefficient is quite small. For normal incidence on solid walls made of low loss materials such as brick, the wall is almost transparent at frequencies where its thickness is an integer multiple of the half-wavelength. The wall behaves as a “radome” and the field passes through it with little attenuation. Fig. 2(b) shows that the brick wall 14 cm thick has “radome” frequencies at 475 and 950 MHz. The maximum reflection coefficient for normal incidence is at about 710 MHz and is 0.62. It violates our intuition that although from 710 to 950 MHz, the wall is getting thicker in terms of the wavelength but the reflection coefficient is actually decreasing. It is also against our intuition that a “light” wall construction such as sheetrock can have a higher reflection coefficient at 0.57 at 850 MHz than a “heavy’ wall construction such as solid brick, with 0.44. Fig. 2(b) shows that multiple-layer walls can also have “radome” frequencies; thus the clay block wall has a minimum reflection coefficient at 444 MHz.
To characterize the reflective properties of each wall construction in a single number, the reflection coefficient for the “perpendicular” polarization can be averaged over all angles of incidence. The lightest wall construction is sheetrock, with an average reflection coefficient of 54%, hence about half of the amplitude of the incident field is reflected. The next heavier construction is the clay block wall, which reflects about 83% of the field incident on it. The heaviest construction is the brick wall, but at 850 MHz, the average reflection coefficient is 69%, less than the clay block wall. The plaster-and-wire wall reflects 99.4% of the field, averaged over all angles for the “perpendicular” case. Note that the intuitive notion that heavier wall construction leads to a larger reflected field is incorrect and can be misleading. The fraction of the field that is reflected is dependent on the thickness of the various layers in the wall, on their electrical properties, on the angle of incidence, on the polarization, and on the frequency.
Once the material parameters for wall materials have been defined and then the various wall constructions have been specified, walls can be positioned to build the floor plan. Each wall in GO_3D is called a “panel” and is specified with two points on opposite corners of the central plane of the wall. Use the “POINT” command to define two points on opposite corners of the central plane of the panel. Then use the “DEFINE_WALL” command to define the wall panel by naming its construction and naming the two points at the corners. Thus the long wall at the bottom of the floor plan in Figure 1 is defined with two points named “1” and “2t”,
POINT 1
-10.00 -0.07 0.00
POINT 2t
10.00 -0.07 2.48
DEFINE_WALL
1 2t ClayBlockWall
The “DEFINE_WALL” command specifies
the points named “1” and “2t” as the opposite corners of the wall panel, and
that the construction of the wall is “ClayBlockWall”, defined previously. Point “1” is located at x=-10 and point “2t”
at x=10, so this wall will be 20 m long.
The y coordinates are chosen on the central plane of the 14 cm thick
wall, so one surface of the wall will be at y=0. Point “1” is at z=0 and point “2t” is at
z=2.48, so the height of the panel will be 2.48 m. Later, the ceiling height will be set at 2.48
m, so this wall extends from the floor to the ceiling.
The best practice in using GO_3D is to avoid defining walls that overlap at their ends. Thus walls should occupy distinct volumes of space. They should not cross or intersect. However, the code will not detect crossing or intersecting walls. In fact, in most cases the code will execute correctly for crossing or intersecting walls and generate correct results.
Walls in the present implementation of GO_3D are restricted to be parallel to the coordinate planes, xy, xz, and yz. The program will detect wall definitions not parallel to these planes and terminate execution. The mathematics behind the GO_3D code is correct for wall panels oriented arbitrarily, but the assumption of walls parallel to the coordinate planes greatly simplifies the coding of the method as a computer program, and speed execution.
Parallel walls that touch or overlap will not be solved correctly. Thus if two walls are defined in the xz plane such that their surfaces are in contact, the code will not solve the configuration correctly. Such a wall should be defined as a single wall of LAYERED construction. Also, if two parallel walls overlap one another, then the code will execute incorrectly. Closely-spaced, parallel walls can lead to long running times as there may be many reflections between them before a ray’s field is reduced to values less than the threshold field strength.
It is good practice to include comments explaining the purpose of each wall being defined, as it is otherwise difficult to read the list of wall definitions when it must be modified.
To define the wall having the doorway in Figure 1, four wall panels must be specified. Two large wall panels form the large part of this wall, namely
POINT 3
-10.00 1.895 0.00
POINT 4t
-0.50 1.895 2.48
DEFINE_WALL 3
4t ClayBlockWall
POINT 5
0.50 1.895 0.00
POINT 6t
10.00 1.895 2.48
DEFINE_WALL 5
6t ClayBlockWall
One of these walls extends from
x=-10 to x=-0.5, and the other from x=+0.5 to x=10, so together they form a 20
m wall with a 1 m gap for a doorway. The
doorway has a wooden door 2.2 m tall and a transom above the door from the top
of the door to the ceiling. These are added
with the commands
C
The transom above the door:
POINT
20 -0.50 1.895
2.20
POINT
21t 0.50 1.895
2.48
DEFINE_WALL 20 21t
ClayBlockWall
C
The door to the room in the open position:
POINT
19 0.4775 1.895
0.00
POINT
20t 0.4775 2.895
2.20
DEFINE_WALL 19 20t
WoodDoor
Note that small-area wall panels such as the transom can increase the running time of the code substantially because the computation associated with them is about the same as that of the large panels.
To permit three-dimensional ray tracing, a floor should be added to reflect rays upward. By definition, the surfaceof the floor is at height z=0. It is specified by the command
FLOOR Concrete 30.
Thus the material from which the floor is constructed is invoked by name, and the thickness of the floor slab is given in cm. Note that it is a material that is named, not a wall construction. The current implementation cannot use a layered model of the floor. The size of the floor does not have to be specified. The GO_3D code will search through all the wall panels that have been defined and find the extent of the floor plan in x and in y, and size the floor accordingly. Note that no wall panel can extend below z=0, that is, into the floor. There can only be one FLOOR command.
A ceiling is added with the command
CEILING Concrete 30. 2.48
This gives the MATERIAL the ceiling is made out of, the thickness of the ceiling in cm, and the height of the ceiling in meters. There can only be one CEILING command. In the POINTS definitions all the z coordinates must be less than or equal to the ceiling height. This requires that no wall extend into the ceiling. The program automatically sizes the ceiling to be of equal extent as the floor in x and in y.
The ceiling is treated as a panel made of the named material, and so reflects spectrally. This is quite unrealistic for many building environments. Thus many offices and hospitals have a hanging ceiling of thin acoustic tiles that are themselves transparent electrically, but hide a very complex layout of wires, conduit, air ducts, heating ducts, plumbing in plastic and metal, lighting fixtures, and so forth. The hanging ceiling itself is usually supported by metal channel arranged in two by four foot rectangles. The wiring, conduit, ducts and so forth will scatter and RF signal, not reflect it spectrally. So a smooth, flat ceiling is often a poor representation of the reality in an office environment.
The program provides an output file that can be used to graph the floor plan in the format of Figure 1, with an xy plane “plan” at the bottom and an xz plane “elevation view” at the top. When the program is run, an output file called “PLAN.LAB” is created. This file contains a drawing that can be inspected with program LABLNG.EXE, as shown in Fig. 1[4]. In constructing a floor plan, it is recommended that walls be added a few at a time and that GO_3D be run at each stage to create the PLAN.LAB file. The file is then viewed to be sure that the new walls appear in the intended locations. By adding walls one or two at a time, errors in the point locations are easily found as they are made, and so a correct floor plan is gradually built up. The LABLNG program permits the user to add labels such as “transmitter” to the drawing, for example. Fetch LABLNG.EXE. As with GO_3D itself, the LABLNG program executes on a computer running Microsoft Windows. (The name “LABLNG” stands for “labeling” and was devised for a computer permitting file names with a maximum of 6 characters!)
The points where the GO_3D program is
required to compute the field strength are called “receivers” or “receiver
locations”. The program provides for
either a single receiver position with RCVRPONT, or a line of receivers with
RCVRLINE, or receivers that lie on a grid in a plane, using RCVRGRID. Table 2 shows the RCVRPOINT command and the
RCVRGRID commend “commented out” by adding “C” at the beginning of the
line. This causes the program to ignore
these commands because they are “comments”.
The RCVRLINE command is used in Table 2 specifies some points at which
the field is to be calculated. If there
are no receivers, then the program generates no output at all! Only one of the
commands RCVRPOINT, RCVRLINE and RCVRGRID can be used in the input file.
A receiver at a single point is often used to study the rays that “flow” from the transmitter to the receiver location. To specify the location of a single receiver, use
POINT
onercvr 0.0 4.5
1.6
RCVRPOINT
onercvr
to
define a point called “onercvr” at location x=0, y=4.5 and z=1.6 m. Then command RCVRPOINT specifies that the
receiver is to be placed at the location called “onercvr”. On execution, the program reports the x, y and
z components of the electric field at the specified point.
Figure 4 The PLAN.LAB file shows all the coupling paths from the transmitter to the receiver when a single receiver is used.
One
important use of the calculation of the field at one receiver location is to
study the ray paths from the transmitter location to that receiver
location. The GO_3D program draws the
ray paths onto the plan and elevation views in file PLAN.LAB, as shown in Fig.
3. This is done only when there is one
receiver, and not for lines of receivers or grids of receivers. Inspection of the ray paths with program
LABLNG can give insight into how the two points are coupled.
Fig. 4 shows the ray paths from file PLAN.LAB
when the transmitter is in at the center of the hallway just past the doorway,
and the receiver is near the center of the room. Note that rays bounce back and forth across
the hallway before entering the room via the doorway. Other rays enter the room by penetrating the
walls. Various rays bounce around in the
room before reaching the receiver. The
number of rays shown by the GO_3D program depends on the value of the threshold
specified in the “go3” file. The coarse
threshold of 10 dB used for Fig. 3 leads to few rays, which are easy to
follow. A sensitive threshold leads to a
great many rays, which can make the drawing of the ray paths in PLAN.LAB to
complex to readily interpret. Often ray
paths that have reflection with no wall penetration will carry the largest
fields. However this is not guaranteed
because the “radome effect” can lead to rays that penetrate a wall but still
carry a large field strength.
Figure 4 The strength of the field as a function of the path length for thresholds of 10 and 16 dB.
Sometimes
the user wishes to study the coupling paths between the transmitter and
receiver in detail. If the command
“RAYLISTS” is included in the “go3” file, then the GO_3D program will create a
text file called “RAYLISTS.DAT” which lists the geometrical coordinates of each
reflection point along each ray path, the net path length, and the field
strength associated with the ray. Each
ray in Fig. 4 can be identified in the “RAYLISTS” file. This is discussed further in Ref. [2].
The
field strength of each ray as a function of the path length is often of
interest to study the delay time associated with the strongest rays that arrive
at a given receiver location. When there is only one receiver, the GO_3D code
creates a graph of the field strength of each ray as a function of the path
length of the ray, as described in the following.
When only one receiver is used, the GO_3D program outputs a file giving the field strength associated with each ray that arrives at the receiver as a function of the total length of the ray path from the transmitter to the receiver. Figure 4 shows the field strength in dB relative to 1 volt/meter for each ray for the receiver shown in Fig. 3. Two different “threshold” field strengths are shown, 10 and 16 dB, relative to the isotropic level. Since the arrival time of each ray is proportional to the path length, this graph can be used to obtain the “delay spread” at the observer. The ray with the shortest path length of 3.783 m (i.e., earliest arrival time) does not have the strongest field strength because this observer is not “line of sight” to the transmitter. The ray with a path length of 5.270 m has a much strong field strength. The field strength associated with each ray is dependent on whether the ray penetrates one or more walls, which reduces the field strength by the transmission coefficient, or reflects from one or more walls, which reduces the field strength by the reflection coefficient. A short path length that penetrates walls with a large reduction in field strength can lead to a smaller field at the observer than a longer path length having several reflections, each with a modest reduction in field strength.
The GO_3D code can create the data file for Figure 4 in one of two formats. The default is a “two column” data file called “RAYS.DAT”, which presents the path length in the first column and the associated field strength in the second column. The file has a header consisting of comment lines, beginning with “CM”, which identify the contents of the file. The data in the file appears in the order that the rays are found by the GO_3D file, so is not sorted into ascending order on path length. Alternately, if the command “RPLFILE” is included in the “go3” input file, then a data file called “RAYS.RPL” is created, suitable for plotting with the “RPLOT” rectangular plotter program[5]. Fetch RPLOT.EXE. The “rpl” file includes labels for the axes of the graph, and the RPLOT program graphs the data in the form shown in Fig. 4.
The red crosses in Fig. 4 show the rays for a threshold of 10 dB. The GO_3D code includes all image sources that can, for some observers, give rise to fields greater than 10 dB below the isotropic level, which corresponds to 5.56 dB above 1 V/m. There are three “dominant” rays carrying large field strengths of 1.37 dB, -2.70 dB, and –3.61 dB for this observer location. The next smaller field strength is –12.40 dB. There are 13 rays in addition to the 3 dominant rays.
When the value of the threshold is increased to 16 dB below the isotropic level, we expect more rays to be included in the calculation. Fig. 4 shows the rays for a 16 dB threshold with gray circles. All of the rays found with the 10 dB threshold are also found with the 16 dB threshold. The cutoff field strength for a 16 dB threshold is –0.44 dB re: 1 V/m, and no new rays with field strengths stronger than –0.44 dB will be found for any observer. Fig. 4 shows that only three additional rays are found with the more sensitive threshold, of field strength –19.7 dB, -35.3 dB and –43.15 dB.
The question of how the net field strength at the observer calculated with GO_3D varies with the value of the threshold is investigated in Section 13 below.
To find the field along a
line, use the POINT command to define the starting point of the line,and the
ending point of the line,
POINT rstart
0.0 1.895 1.6
POINT rend
0.0 6.000 1.6
The RCVRLINE command directs GO_3D to calculate the field along a line joining the starting point in 3D space to the ending point in 3D space. To calculate the field along the line every 2 cm use the command
RCVRLINE rstart
rend 2.0
The line of
receivers is sometimes called the “path”.
Think of the receiver as moving along the path from the “rstart” point
to the “rend” point and sampling ,
and
every 2 cm. If the path penetrates a wall, then the
program reports zero field strength for “receivers” inside the wall. Note that the last receiver will not
necessarily be at the “rend” point, unless the point spacing is such that the
distance from “rstart” to “rend” is an integer multiple of the point spacing.
When GO_3D is run, it creates the PLAN.LAB file of Fig. 1, showing the path for
the receivers as a dashed line, but no ray paths are shown.
GO_3D offers two formats for the output file containing the field
strengths. If the RPLFILE command in
Table 2 is omitted, then the output is a file called “RCVR.DAT” which contains
five columns of data: distance along the line; the magnitude of ; of
; of
; and of the “total
field”
defined as
This multi-column data can be graphed with the user’s favorite rectangular-axis plotting software. For instance, program “RPLOT” can be used to graph the data: Fetch RPLOT.EXE Alternately, if the command RPLFILE is included in the input file, the GO_3D program will generate an output called “RCVR.RPL” in the “native format” for program RPLOT. The header of the “rpl” file includes useful information about the run of GO_3D, and includes labels for the curves and axes. If the RPLOT program is to be used for graphing then it is best if the output file is an “rpl” file.
The RPLFILE command offers various options for reporting the position on the path. Versions of the RPLFILE command are as follows:
RPLFILE
RPLFILE S
RPLFILE XYZ
RPLFILE R
RPLFILE with no qualifier, or RPLFILE S uses distance along the path as the independent variable in the RPL output file. Distance along the path is defined as the geometrical distance from the “rstart” point. RPLFILE XYZ uses a coordinate value as the independent variable, either x or y or z, for paths that are parallel to a coordinate axis. If the command “RPLFILE R” is used in the GO_3D file, then the “rpl” file uses the distance from the transmitter as the independent variable in the “rpl” file. This is useful when the changes in field strength with distance from the transmitter are required.
Figure 5 The field along the receiver path shown in Figure 1.
Fig. 5 shows the electric field strength along the receiver line of
Fig. 1, starting at the center of the doorway and ending near the window of the
room, as a function of distance along the receiver line. The transmitter is a vertical dipole, so the field strength is the
largest. Both the transmitter and the
receiver are 1.6 m above the floor. The
field was computed with a threshold of 32 dB.
The small
and
components are
introduced by reflections from the floor and ceiling. Note that there are abrupt discontinuities in
the curve of
as a function of
distance, particularly at distances of 0.76 m, 1.24 m and 1.84 m. This happens because the method is
“geometrical optics”, in which rays switch on and off with position changes,
with no compensating diffracted rays to smooth the field. Also, due to the relative phasing of various
rays arriving at the receiver location, the field is not necessarily the
strongest when the receiver is closest to the transmitter. For this path, receivers near the doorway are
“line of sight” to the transmitter, and so there is a “direct” ray from the
source and the field is quite strong.
Such receivers also see reflected fields from the hallway walls and so
the field varies with distance according to the relative phase of the field of
“direct” ray and the fields of the various reflected rays. As the receiver moves into the room, the
hallway wall blocks the “direct” ray and the field abruptly falls, at 0.76 m
distance. The field is then due to rays
which either bounce back and forth between the hallway walls and then enter the
room via the doorway, or which penetrate the hallway wall to enter the
room. The field strength as a function
of distance shows a series of peaks and minima called “fast fading” as the
various rays go in and out of phase.
The
RCVRGRID command is used to ask the GO_3D program to report the value of the ,
,
and
field strengths at a grid of points parallel
to either the xy, the xz or the yz plane.
The POINT command is used to define points at opposite corners of a
rectangle called “gridst” and “griden”,
POINT
gridst -1.28 2.000
1.6
POINT
griden 0.17 6.000
1.6
Then the RCVRGRID command asks for the
field on a grid of points spaced 3.5 cm apart starting at point “gridst”,
RCVRGRID
gridst griden 5.0
This
command will generate a grid of receivers with the “gridst” point as one corner
of the grid, and grid points spaced by 3.5 cm.
The grid will lie in the xy plane since both the “gridst” and the
“griden” points have the same z coordinate.
Note that the “griden” point will not be part of the grid, unless the
size of the rectangle in x and in y is an integer multiple of the point
spacing. Fig. 6 shows the grid as a dashed
rectangle superimposed on the floor plan, as drawn by the program in the
PLAN.LAB file. This is useful for
verifying the position of the grid on the floor plan.
Figure 6
The grid location is drawn on the PLAN.LAB file.
The output of the program can
have one of two formats. The simpler
format is a table of point coordinates on the grid and the values of the
magnitudes of the field components,
,
and
. The position
coordinates are u,v, where:
for an xy grid u=x and v=y;
for an xz grid u=x and v=z; and
for a yz grid u=y and v=z.
The columns of
the table give the values of ,
,
and
. This file can be
graphed with the user’s favorite contour plotting program.
Alternatively, the GO_3D program can be commanded to create output
files in the format required by the “CPLOT” contour mapping program [6]. Fetch CPLOT.EXE.
CPLOT does not read multi-column data in the format described
above. When the command “TBLFILE” is
included in the “go3” input file as in Table 2, the GO_3D program creates four
separate “table files” or “tbl” files, one for each field component,
,
and
. Each of these “tbl”
files can be graphed directly with CPLOT.
Figure 7 The component of the
electric field strength over the receiver grid.
Fig. 7 shows the component of the field
over the receiver grid of Fig. 6, made by graphing the field “EZ.TBL” with
program CPLOT. This “field map” was
computed with a 18 dB threshold and a 3.5 cm point spacing. The point at x=0,y=2 m near the bottom right
corner of the map is near the center of the doorway into the room, and the
field at this location is strong because it is “line of sight” to the
transmitter. A beam flows into the room
from the transmitter, upward and to the left in Fig. 7, and then reflects from
the wall. The field decreases with
distance from the transmitter changing from red to yellow to green on the color
scale of Fig. 7. The beam show some
maxima and minima in the field strength due to interference of the field of the
ray coming directly from the source with that of the ray bouncing off the wall
of the small room. Deeper in the room
there is no “direct” ray and the field is smaller in value, with colors from
blue to green. There is an interference
pattern showing maxima and minima, which are oriented roughly vertically on the
page, and arise due to rays bouncing back and forth between the two walls of
the room.
To study the field over a volume of space, the GO_3D program must be used to compute the field on grids of points at various heights above the floor. The code must be run individually for each grid.
Suppose that electronic equipment which has an immunity level of 3
V/m is operated somewhere in the “receiver grid’ region show in Fig. 6. Suppose a 600 mW cellular telephone is to be
operated somewhere in the hall. The
field at any point in the receiver grid must be maintained less than 3 V/m to
avoid interference. The GO_3D code
permits the transmitter to be moved over a grid of points in the hallway,
called the “transmitter grid”. At each
location of the transmitter in the grid, the field over the whole receiver grid
is calculated. The largest field
strength over the whole receiver grid is found, called
the “maximum interference field” or MIF.
The MIF is recorded for that transmitter location. If the MIF is greater than 3 V/m, then the
cell phone would cause interference to equipment positioned at some location in
the receiver grid. By graphing the MIF
as a function of the position of the transmitter, a map of transmitter
locations leading to interference is obtained.
To use the MIF mapping capability, first a receiver grid must be defined, using commands such as
POINT
gridst -1.28 2.015
1.6
POINT
griden 0.17 6.100
1.6
RCVRGRID gridst griden 10.0
This defines the receiver grid shown in Fig. 6, but using a 10 cm point spacing. Then the grid of transmitter locations must be defined using
POINT xmitgrid1
-4.50 0.05 1.6
POINT xmitgrid2 4.50
1.795 1.6
XMITGRID xmitgrid1 xmitgrid2 10.0
This defines a transmitter grid in the hallway, as shown in Figure 7, using a 5 cm point spacing. The GO_3D code will move the transmitter over 6335 locations in the transmitter grid, and at each location will calculate the field at 2430 locations over the receiver grid, using a 5 cm point spacing as well. At 850 MHz, 5 cm is roughly a sixth of the wavelength and may be too coarse to accurately find the maxima in the interference pattern in the receiver grid of Fig. 7. The calculation with more than six thousand transmitter locations and about 2500 receiver locations is very time-consuming and so a realistic trade-off between long running time for the GO_3D code and precise results must be made.
Fig. 8 A transmitter grid in the hallway outside the door.
The output from the GO_3D code is a “table” file called MIF.TBL
giving coordinates of each transmitter location and the MIF value at that
location. The MIF is found for one
transmitter location by computing the field strength at all the points in the
receiver grid. The MIF is the maximum
value of the total field over the receiver grid. File MIF.TBL can be graphed with program
CPLOT to obtain the color map shown in Fig. 9
Fig. 9 The maximum field strength over the receiver grid as a function of the transmitter position on the transmitter grid.
Fig. 9 shows the MIF over the transmitter grid of Fig. 8. The x and y axes give the position on the
transmitter grid of Fig. 8. Thus the x
coordinate is the transmitter’s position along the hallway and the y coordinate
is the transmitter’s position across the hallway. The center of the doorway to
the small room is at the top of the graph of Fig. 9, at x=0. At each position the largest total field over the whole receiver grid is determined and
plotted. Thus, when the transmitter is in the doorway (red region in Fig. 9)
the largest field strength in the receiver grid area in the room is in excess
of 30 V/m, more than ten times the permissible field strength of 3 V/m to avoid
interference. As the transmitter moves
away from the doorway, the maximum field strength in the receiver grid in the
small room decreases, with the color in Fig.9 changes from red to yellow to
green to cyan, and eventually to dark blue for locations far enough from the
doorway. Fig. 9 shows that only when the
transmitter is quite far from the doorway is the field in the room less than 3
V/m. A case study using the “XMITGRID”
feature of GO_3D can be found in Reference [8].
The threshold field strength T (dB) discussed in Section 4 is a control that lets the user determine how sensitive a calculation is carried out by the GO_3D program. Consider the problem of a hallway with a side room, shown in Figure 1. The field strength is to be calculated along the path shown by the dashed line, starting in the center of the doorway and ending at the window. The user must choose a threshold field strength for the program to use in the calculation of the field. As explained above, GO_3D does not ask the user to set a limit on the number of reflections that the program will track. Instead, the code retains all image sources that could, for some observer, give rise to fields that are larger than the “cutoff” field strength, which is T dB below the isotropic level field strength. GO_3D will track as many reflection as needed to meet this criterion.
Table 3 shows the maximum number of reflections that the GO_3D code tracks for various threshold values for the hallway-with-room problem, and the number of image sources that are used. With a 10 dB threshold, 7 reflections are tracked using a total of 426 image sources. With a 13 dB threshold, one more reflection is tracked and the number of image sources roughly doubles to 822. With a 16 dB threshold, up to 12 reflections are found using 1874 image sources. With a 19 dB threshold, 14 reflections are tracked using 7056 image sources. With a 22 dB threshold, 19 reflection, 19 reflections are traced, using 26,037 image sources. With a 26 dB threshold the code tracks 29 reflections using 254,379 image sources. This very large numbers of image sources causes the code to execute quite slowly!
Table 3
The Number of Reflections and the Number of Image Sources for Various Threshold Values.
Threshold |
Reflections |
Image sources |
10 |
7 |
426 |
13 |
8 |
822 |
16 |
12 |
1874 |
19 |
14 |
7056 |
22 |
19 |
26037 |
26 |
29 |
254379 |
Figure 10 The field strength along the path in Figure 1, for various values of the threshold field strength.
Does the
field become constant as the value of the threshold increases? Ideally, we would like the field to
“converge” to a constant value as the threshold value is increased, and for
“large” thresholds, show little change for further threshold increase. But in general, this behavior is not found,
as illustrated in Figure 10. The figure
shows the field strength along the path in
Figure 1 from the center of the door into the room to the window, using
distance form the antenna on the horizontal axis. The field is shown for thresholds of 10, 16,
and 22 dB. All four curves are similar
overall; they are dominated by a few rays that have relatively large field
strengths and are found by GO_3D even for the “low” 10 dB threshold value.
For close distances to the transmitter, there is a line-of-sight path from the transmitter to the observer and the behavior of the field is dominated by the large field strength of the “direct” ray from the transmitter. For all three threshold values the field for distances less than 2.07 m is very similar. By increasing the threshold value, the user commands the code to include additional rays with fields at a much lower level than the “direct” ray’s field, which have only a small effect on the net field strength.
At 2.07 m distance the line of sight path is lost, and the field is made up of rays transmitted through the wall and reflected from various walls. With a 10 dB threshold only a modest number of rays contribute to the field, and there is a trough in the field strength from 2.07 m to 2.21 m distance. As the threshold is increased, a lot of “minor” rays are added which tend to fill in the trough, hence the field in this region with a 16 dB threshold (red dashed curve) is larger than with a 10 dB threshold(black curve). However, including many more “minor” rays by increasing the threshold to 22 dB(blue curve) does not increase the field in this trough further.
From about 2.5 to 3 m distance, and again from about 3.5 to about 4.2 m, the field with a “low” 10 dB threshold is fairly smooth. Increasing the threshold to 16 dB adds the ripple to the field called “fast” fading. The average value of the field, the “slow fading”, is not much changed. Increasing the threshold to 22 dB affects the amplitude of the ripple, but again the “slow fading” or average value is not much changed.
The results shown in this figure are typical of those obtained by increasing the threshold value in GO_3D. The field does not “converge” to a value independent of the threshold at all. Instead, adding more image sources by increasing the threshold fills in troughs found with low threshold values, and adds “fast fading” behavior to the overall curve.
The input file for the GO_3D program has been described, and a sample problem has been solved with the program. The input “language” is intended to lead to a self-documenting file that is easy to read and modify. The user is encouraged to include comment lines in the file describing the contents, so that numbers in the file are readily traced to their source.
The user defines wall materials with meaningful names such as “Brick” or “Concrete”. Such names make the input file easier to read and understand. These are used to define solid or layered wall construction, again giving each a descriptive name such as “ClayBlockWall”. Points in three-dimensional space are also defined and associated with names such as “xmitter” for the transmitter location or “rstart” and “rend” for the endpoints of the line of receivers. The floor plan is built by creating two points at opposite corners of each wall panel and then joining them with a wall of a previously-defined construction invoked by name. A word description of the purpose of each wall is helpful in reading the file. For example, each wall on a drawing of the floor plan can be numbered, and the wall identified by number in the comments. Or, as done in Table 2, a brief description of each wall can be included as a comment. As modifications are made to the file comments should be added to explain what was done and give the date.
When GO_3D is run it creates output files that can be graphed with standard graphing software or with software tools designed to work with special GO_3D output formats. The floor plan is graphed with a viewer program called LABLNG. The field strength as a function of distance is graphed with a rectangular plotting program called RPLOT. The field strength over a region is graphed with a color contour mapping program called CPLOT.
GO_3D has proven a useful tool for investigating the field in a room due to a transmitter located somewhere in the room, with reasonable correspondence to measurements[7]. The program has been used to study the decline in field strength with distance from the observer in long corridors[8] and in rooms adjacent to corridors. The program has been used to study the locations in a corridor where a cellular telephone can be operated without exceeding the immunity level of equipment in an adjacent room[9], as in the example presented in this User’s Guide.
Appendix 1 Structure of the Input File for the Imported Source
The file format for defining an “imported source” is shown in Table 3, and is called a “solution” file. Fetch imported.sol. It is derived from the Concordia Electromagnetic Compatibility Laboratory’s software system for aircraft antenna simulation[9,10]. Such “solution” files are created automatically by the EMC Lab’s software system, either from the analysis of wire-grid models of aircraft and other radiators, or from FDTD analysis of portable radio handsets and models of the head. The radiation patterns are computed by the antenna analysis code, and then a utility program called “ISOLEV” reads the file, integrates the power flow density over the radiation sphere and then writes the radiated power into the solution file. Most solution files contain a great deal more information than is shown in Table 3. However, only the lines in the solution file that are used by GO_3D are actually shown in Table 3, and the “minimal” file in Table 3 is acceptable to GO_3D as input.
The file usually begins with a header having one or many “comment lines”, beginning with “CM”, which contain user comments identifying the source antenna used to generate the file, how the file was made, the date, project identification, and so forth. The first “keyword” that GO_3D searches for is “FREQUENCY”; GO_3D reads the frequency from the solution file and compares it to the frequency specified in the “go3” input file. The GO_3D program exits if the frequencies are different. The next line searched for is the line
“CM TOTAL RADIATED
POWER 0.436E-02”
Although this may look like a
comment line, the characters “RADIATED POWER” in positions 13 to 26 are used as
a “keyword” by GO_3D; when these characters are found the program reads the
radiated power in watts from the remainder of the line. The reasons that this line appears to be a
comment are historical in the EMC Lab software system.
Next, the GO_3D program expects to
find 21 radiation patterns of 73 points each.
These are the radiation patterns for the 21 “conical cuts” for =0, 25, 37, 45, 53, 60, 66, 72, 78, 84, 90, 96, 102, 108,
114, 120, 127, 135, 143, 155 and 180 degrees, at five degree increments in
angle
. Characters “RP” in
positions 1 and 2 on the line are used as a keyword to identify the start of
each pattern. The first number following
“RP” is the
angle of the pattern
cut. It is compared with the required
list of
angles given above,
and the GO_3D program will exit if an unexpected pattern cut is found. Following the “RP” line are 73 lines giving
the field at
angles 0, 5, 10, …,
360 degrees. Each line gives the
magnitude of
, the magnitude of
, the phase of
in degrees, and
the phase of
in degrees. The format of the data is rigid. The
magnitude appear
in the first nine characters on the line; the
magnitude occupies
the next 10 characters, namely positions 10 to 19 on the line; the
phase occupies the
next six character positions and finally the
phase uses the
last six character positions. No commas
or other separators are permitted.
The GO_3D program continues to look
for the “RP” keyword until all 21 of the radiation patterns in the above list
have been found and 73 field values read for each pattern. GO_3D then closes the “imported source” file.
The radiation pattern information is saved and used to calculate values of the
source field along rays originating from the source found by the ray-tracing
algorithm, using linear interpolation between and
values explicitly
included in the “import source” file.
Table
3
A sample “sol” file defining an “imported” source.
CM
This is a sample of a "minimal" imported-source "sol" file.
FREQUENCY 0.190000E+04 MHZ
CM TOTAL RADIATED POWER 0.436E-02
RP 0.0000E+00 0.0000E+00 0.0000E+00
0.5000E+01 1 73
0.000E+00
0.000E+00 0.0 0.0
…
0.000E+00
0.000E+00 0.0 0.0
RP 0.2500E+02 0.0000E+00 0.0000E+00
0.5000E+01 1 73
2.236E-01
0.000E+00 56.4 0.0
…
2.236E-01
0.000E+00 56.4 0.0
RP 0.3700E+02 0.0000E+00 0.0000E+00
0.5000E+01 1 73
3.347E-01
0.000E+00 56.3 0.0
…
2.236E-01
0.000E+00 56.4 0.0
RP 0.1800E+03 0.0000E+00 0.0000E+00
0.5000E+01 1 73
1.226E-08
0.000E+00 56.5 0.0
…
1.226E-08
0.000E+00 56.5 0.0
References
[2] C.W. Trueman, “The GO_3D Code for Indoor
Propagation”,
[3] M. Kimpe, H. Leib, O. Maquelin, and T. D. Szymanski, “Fast Computational Techniques for Indoor Radio Channel Estimation”, Computing in Science & Engineering, pp. 31-41, Jan.-Feb., 1999.
[4] C.W. Trueman, program LABLNG.EXE.
[5] C.W. Tureman, program RPLOT.EXE.
[6] C.W. Trueman, program CPLOT.EXE.
[9] S.J. Kubina, C.W. Trueman, Q. Luu, and D. Gaudine, “Visualization Aids for Effective Aircraft Antenna Simulations,” ACES 14th Annual Review of Progress in Applied Computational Electromagnetics, Monterey, California, March 16-20, 1998.
[10] S.J. Kubina, C.W. Trueman, D. Gaudine, and A. Ramos,
"Creation, Visualization and Analysis - The Dynamics of Complex
Models," ACES 9th Annual Review of Progress in Applied
Computational Electromagnetics,