atlc - Arbitrary Transmission Line Calculator (for transmission lines and directional couplers)

Transmission lines, including directional couplers, of arbitrary cross section and an arbitrary number of dielectrics can be analysed with atlc. The impedance Zo of a two-conductor transmission line, as well as the odd-mode, even-mode, differential mode and common mode impedances of a directional coupler can all be computed with atlc. Tools to both analyse and synthesise directional couplers are available. atlc is primarily a UNIX or linux program.

atlc likely to be of use to radio amateurs, professional RF engineers, students and academics.

Great effort has been put into making atlc portable. Whilst written under UNIX, atlc's portability means pre-compiled command-line Windows binaries have been produced by Mark Chun KH6HPQ and others from the source code without any changes at all. A port to OpenVMS in a possibility, although the main development is aimed very much at UNIX.

In addition to the the commmon Linux PC, atlc has been tested on a Sony Playstation 2 as well as the Cray YMP-EL supercomputer, which is available for free public access at Cray-Cyber network. It has also been tested on Debian Linux, Slackware Linux, Gentoo Linux, Redhat Linux, Suse Linux, IBM's AIX, Apples's OS X for Mac, HP's HP-UX (both PA-RISC and Itanium), SGI's IRIX, Sun's Solaris, SCO's UNIXWare, HP's Tru64, Cray's UNICOS, NetBSD, OpenBSD and FreeBSD. If you run atlc on any other operating system, please let me know.

Previous version of atlc could use multiple-processors if present, to reduce execution time. This has been temporarily disabled, as the algorithm had some intermittent problems on IBM's AIX operating system. Careful checking showed the problem that only seemed to affect AIX, was a real bug with the potential to occur on other operating systems, although it only ever showed up under AIX. Hence the current release has disabled the support for multiple processors - atlc will run fine on multi-processor machines, but it will only use one of them. A revised method of computation has been determined, which will re-enable the use of multiple processors. It is hoped to release this by early February 2004 at the latest - probably some time in January 2004.

round coax very odd line directional coupler directional coupler
Coaxial cable
Zo= 70.0215 Ohms
C=47.637 pF/m
L=233.557 nH/m
Really odd!!!
Zo= 56.020 Ohms
C= 59.544 pF/m
L= 186.862 nH/m
Directional coupler
Zo= 64.7449 Ohms
Zeven=65.3682 Ohms
Zodd= 64.1275 Ohms
Microstrip coupler on double-sided PCB
Zodd= 35.10 Ohms Zeven= 50.93 Ohms
Zdiff= 70.21 Ohms Zcomm= 25.46 Ohms
There are 12 programs that comprise the package atlc. One of the programs is called atlc; the other 11 have different names. Using the programs comprising the package atlc one is able to:.
  1. Calculate the characteristic impedance and other properties of two conductor transmission lines, like coaxial cable (far left above), but the cross section can be of any shape whatsoever, including that second from the left. A technique known as finite difference is used for this. There can be an arbitrary number of different dielectrics. Note the inner conductor is shown red, the outer green and a vacuum dielectric is shown as white - for all practical purposes, the permittivity of a vacuum (1.0 by definition) dielectric is the same as that of air (approximately 1.0006)
  2. Calculate the impedance's for both the odd-mode and even-mode, along with many other properties of directional couplers of arbitrary cross section, like that third from the left below. Note, with couplers, there is two inner conductors, with - one red as before, but another one blue, in addition to the green outer conductor. The finite difference technique is used for this too. Analysis extends to couplers with multiple dielectrics, such as the microstrip coupler on the PCB on the right below.
  3. Compute the common-mode impedance Zcomm and differential-mode impdance Zdiff of arbitrary directional couplers.
  4. Compute the values of electric field, voltage, energy stored etc in 2 and 3 conductor transmission lines and save this data to binary files, as well as bitmaps which can be viewed in a graphics package.
  5. Automatically create bitmaps for some common transmission lines, to save the user having to create them in a graphics package, which would soon become tedious.
  6. Compute the odd and even mode impedances required of an arbitrary directional coupler to satisfy a given frequency response and coupling factor.
  7. In the case of a coupled stripline with thin conductors, the program design_coupler can fairly quickly (within a few minutes) compute the dimensions of a directional coupler to satisfy your requirements of frequency response, coupling factor and optionally length. If you wish to implement the design on a double-sided printed circuit board like that on the right below, the program find_optimal_dimensions_for_microstrip_coupler will do this for you, but it takes several hours (perhaps a couple of days) to find a solution, although some well-timed and sensible human intervention can reduce this considerably.
  8. Since the program atlc can save quantitative data on the x and y components of electric field, energy, voltage etc to binary files, there is a program readbin that can read the binary files and tell you something about the data saved in them. This information is for debugging only - it is not expected the user will use readbin. The user is expected to write their own programs to read this binary information, in the very unlikely event they wish to use the information. It is likely to be of academic interest only. The normal output from atlc is in simply text.

In any example which has been checked against exact analytical solutions, the errors in atlc are under 1% and usually under 0.4%

In order to perform 1, 2, 3 or 4 above, the programme atlc needs to know shape of the transmission line's cross section. This cross section is stored in a data file, which happens to be a Windows bitmap file. The bitmap file is read by atlc, following which the programme performs the analysis.

There are two ways to generate the bitmap for atlc.
  1. As you might expect, you can draw the transmission line's cross-section in a graphics programme such as Gimp, Photoshop, Windows Paint, Corel Photopaint etc. The programme must be able to save images as bitmap (.BMP or .bmp) files, in 24-bit (true colour) mode. The graphics programme can run under whatever operating system you like. If for example you have some U-section brass and some hollow rectangular tube, and wanted to know the properties of a transmission line formed from these, you might draw something like this, and save it as a file, which we might call ushape.bmp

  2. In the case of simple cross-sections, the bitmaps can be generated automatically. Currently 7 such programmes have been written:
    1. create_bmp_for_circ_in_circ
    2. create_bmp_for_circ_in_rect
    3. create_bmp_for_rect_cen_in_rect
    4. create_bmp_for_rect_in_rect
    5. create_bmp_for_symmetrical_stripline
    6. create_bmp_for_stripline_coupler
    7. create_bmp_for_microstrip_coupler
    to quickly generate bitmaps for transmission lines. The first five are for two-conductor transmission lines, whereas the last two are for directional couplers. See the section Automatic Bitmap Generators for information about what cross sections these programs generate. Using these programs to create bitmaps is very fast - much faster than creating them with a graphics programme.
A UNIX computer, with a gcc or other C compiler, is needed to build atlc. The programme should compile very easily and quickly. Being rather CPU intensive, atlc has been written to support multiple processors if available. Here is an example of using atlc, with the file ushape.bmp, which was drawn by a graphics programme.

sparrow % atlc -v ushape.bmp
ushape.bmp 2 Er= 1.00 Zo= 43.55 Ohms C= 76.6 pF/m L= 145.3 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.2.2
ushape.bmp 2 Er= 1.00 Zo= 43.64 Ohms C= 76.4 pF/m L= 145.6 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.2.2
ushape.bmp 2 Er= 1.00 Zo= 43.64 Ohms C= 76.4 pF/m L= 145.6 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.2.2
It will be seen that atlc makes several estimates of the transmission line's properties, each subsequent one being closer to the true values (normally only the final result is shown, but the -v option added above causes atlc to print intermediate results).

atlc produces numberous bitmap and binary files, in addition to the text shown above. Hopefully some of the text output is comprehensible, but the exact format of all of atlc's outputs is disucced in the fileformat section.

Here's an example of using create_bmp_for_circ_in_circ to create a bitmap, following which is it analysed using atlc. The programme create_bmp_for_circ_in_circ creates a bitmap (.bmp file) for a cicular conductor inside another circular conductor - like coaxial cable. The program takes takes 5 command line arguments which (in order) are:
  1. D - The inner diameter of the outer conductor.
  2. d - The outer diameter of the inner conductor
  3. O - The offset between the inner and outer conductors (this is zero for standard coax)
  4. Er - The relative permittivity of the dielectric between the conductors
  5. filename - The filename to write the bitmap file to, which would normally end in .bmp
sparrow % create_bmp_for_circ_in_circ 500 100 100 1 x.bmp
sparrow % atlc  x.bmp
x.bmp 2 Er=1.00 Zo= 85.44 Ohms C= 39.0 pF/m L= 285.0 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.2 2
How to use create_bmp_for_circ_in_circ (or any other program) is best determined by reading the UNIX man page, seeing an example or by running the program with no arguments, where it will print a usage message. An html version of the man page for create_bmp_for_circ_in_circ is available, but the all-important diagram is not clear.

Return to the atlc homepage

atlc is written and supported by Dr. David Kirkby (G8WRB), who works at the department of Medical Physics, University College London. He has to suffer the Southminster Branch Line to get to work.
LogoValid HTML 4.01! Bluefish