Imported Upstream version 4.6.0
[debian/atlc] / src / non_gui / give_examples_of_using_design_coupler.c
1 #include "config.h"
2
3 #ifdef HAVE_STDIO_H
4 #include <stdio.h>
5 #endif
6
7 #ifdef HAVE_STDLIB_H
8 #include <stdlib.h>
9 #endif
10
11 #include "definitions.h"
12 #include "exit_codes.h"
13
14 void give_examples_of_using_design_coupler(void)
15 {
16   printf("Here are a examples of how to use 'design_coupler'\n");
17   printf("In the examples, the %c sign is used in front of anything you must type\n",'%');
18   printf("which is what you will probably see when using the csh or tcsh as a shell. It\n");
19   printf("would probably be a $ sign if using the sh or bash shell. \n\n");
20   printf("To find the odd and even mode impedances and frequency response of a 50 Ohm\n"); 
21   printf("coupler, covering 130 to 170 MHz, with a coupling coefficient of 30 dB:\n\n");
22   printf("%c design_coupler 30 130 170\n\n",'%');
23   printf("Note the frequency response is symmetrical about the centre frequency at 0.192 dB\n");
24   printf("below that wanted. You may wish to redesign this for a coupling coefficient of \n");
25   printf("about 29.9 dB, so the maximum deviation from the ideal 30.0 dB never exceeds 0.1 dB\n");
26   printf("Note the length suggested is 0.5 m (nearly 20\") is a quarter wave at\n");
27   printf("the centre frequency of 150 MHz. You might find this a bit too long, so\n");
28   printf("let's specify a length of 0.25 m.\n\n");
29   printf("%c design_coupler -L 0.25 30 130 170\n\n",'%');
30   printf("What you may notice is that while the coupling to the coupled port is exactly\n");
31   printf("30 dB below the input power at the centre frequency (150 MHz) it is \n");
32   printf("no longer symmetrical about the centre frequency. Also, deviations from the\n");
33   printf("ideal 30 dB are now much larger, with a maximum error of 1.012 dB\n");
34   printf("Unlike the case when the length is the default quarter wave, there is not much\n");
35   printf("you can do about this, since the deviations occur in both directions.\n\n");
36   printf("Now assume you are reasonably happy with the response when the length is 250 mm\n");
37   printf("but would like to see the response at every 2.5 MHz. This can be done using the\n");
38   printf("-s option to design_coupler.\n\n");
39   printf("%c design_coupler -L 0.25 -s 2.5 30 130 170\n\n",'%');
40   printf("Assuming the performance is acceptable, the dimensions of the coupler can\n"); 
41   printf("be determined by adding the -d option. This will design a coupler that must look\n");
42   printf("like the structure below. The two inner conductors, which are spaced equally\n");
43   printf("between the top and bottom edges of the outer conductor, must be very thin.\n");
44   printf("These are placed along the length of a box of width W, height H and of\n");
45   printf("a length L determined by the user, which in this case is 250 mm.\n");
46   printf("|-----------^------------------------------------------------------------------|\n");
47   printf("|           |                                                                  |\n");
48   printf("|           |              <---w---><-----s----><---w-->                       |\n");
49   printf("|           H              ---------            --------                       |\n");
50   printf("|           |                                                                  |\n");
51   printf("|           |   Er=1.0 (air)                                                   |\n");
52   printf("------------v------------------------------------------------------------------\n");
53   printf("<-----------------------------------------W----------------------------------->\n");
54   printf("The program reports: H = 1.0, ; w = 1.44 ; s = 0.44\n");
55
56   printf("The height of the box H must be small compared to the length L, (perhaps no\n");
57   printf("more than 7%c of the length), or 17.5 mm in this case, with a length of 250 mm,\n",'%');
58   printf("otherwise fringing effects will be significant. The width of the structure W\n");
59   printf("should be as large as possible. The program suggests making this 5*H+2*w+s. The\n");
60   printf("7%c and 5*H+2*w+s are educated guesses, rather than exact figures. There is\n",'%');
61   printf("no problem in making the width  larger than 5*H+2*w+s. The length L must be\n");
62   printf("kept at 250 mm. The RATIO of the dimensions H, w and s (but not L or W\n");
63   printf("must be kept constant. W just needs to be sufficiently large - it is\n");
64   printf("uncritical.  \n\n");
65   printf("If you happened to have some 15 mm square brass available, then using that\n");
66   printf("for the side-walls would require that H becomes 15*1.0 = 15 mm,\n");
67   printf("w = 15*1.44 = 21.6 mm  and s = 15*0.44 = 6.6 mm\n\n");
68   printf("There is no need to compute the above scaling with a calculator, as using\n");
69   printf("The -H option allows one to specify the height H. The program then reports the\n");
70   printf("exact dimensions for the length L, height H, w, s and suggests a minimum width\n");
71   printf("for W.\n\n");
72   printf("In summary we have:\n");
73   printf("                   30 dB coupler +1.02 dB / -0.78 dB for 130 to 170 MHz\n");
74   printf("                   Length L = 250 mm, height H = 15 mm, stripline spacing s\n");
75   printf("                   = 6.6 mm, stripline width w = 21.6 mm, width W >= 124 mm\n");
76   printf("By default, design_coupler prints a lot of information to the screen.\n");
77   printf("This can be reduced by the -q option or reduced to only one line with -Q\n");
78   printf("Other options include -Z to change the impedance from the default 50 Ohms\n");
79   printf("and -C to see the fully copyright, Licensing and distribution information\n");
80   exit_with_msg_and_exit_code("",OKAY);
81 }