                                    Scope

The RADIOSIM software concerns any engineer specialized in:

    - radio links,
    - satellite telecommunication,
    - broadcasting,
    - mobile telecommunication,
    - etc...

The performances of any transmission chain (named "canal" in this software),
digital or analog, are computed by simulating every component of the block-
diagram (for instance modulator, filter, delay line, non-linear amplifier,
etc.) by a preprogrammed "module".

The user can put modules in series or in parallel (by means of files
memorizing the signal), and modify the module parameters according to his
application.


                                 The FFT

The modulated signal is recorded in two arrays, of N samples each, A() for
the real part and B() for the imaginary part.
The signal is represented in time domain or in frequency domain according to
the current module characteristics:

   - Filter                     : Frequency
   - Non-linear amplifier       : Time
   - Delay line                 : Frequency (the reason will be seen later)
   - etc.
Going from one representation to the other is done by a FFT (Fast Fourier
Transform), by means of a peculiar module to which the user does not have a
direct access: Each module, according to its needs, controls this transform,
signalled at the upper-right part of the screen by "F-T" or "T-F".

The same couple of arrays A() and B() contains, in turn, both representations.

The advantage of the FFT algorithm, versus a classical Fourier transform, is
the computation speed.
The computing time varies as N Log2(N), N being the number of samples while,
in case of a Fourier transform of a periodic but unsampled temporal signal
(non-periodic frequency representation), the computing time varies as N^2.

On the other hand, a drawback of the FFT algorithm is that both signal
representations must be sampled; then both are periodic.

In spite of the symmetry of time and frequency properties of the mathematical
model, the above drawback has not the same importance in practical
applications. As a matter of fact, the different telecommunication services
(Broadcast, fixed service, mobile service, etc.), and their different
channels are shared in frequency domain, not in time domain.
Therefore, a given application is always band-limited. Even if, at some point
of the transmitting chain, a transversal filter is used, comprising delay
lines, so:
  - with a Finite Impulse Response (FIR),
  - with a periodic, and therefore un-limited frequency characteristic,
no doubt the canal comprises an other filter, bandwidth limited, to avoid
interference to and from adjacent channels: this last filter lengthen the
impulse response considerably.


For the user, the periodic structure of the temporal signal is seldom
constraining. Most of test signals (pseudo-random sequences in digital
transmission, TV test signals in analog transmission) are naturally
periodic.

The constraint is stronger in frequency domain:
The user must be sure (the "Graphics" module is useful for this purpose)
that the SIGNAL SPECTRAL DENSITY IS SUFFICIENTLY ATTENUATED at the sampled
band edges in order that the results obtained in the studied bandwidth
are not impaired by a folding spectrum effect.

See Users'guide chapter 8 for more comments and details about the software
principle.





                                 Notations

The main notations used are:

Ut         time unit,      for instance 1D-09 (1 ns)
Uf         frequency unit, for instance 1D+06 (1 MHz)
N          number of signal samples (size of arrays A() and B() )
dT         time difference      between two following samples
dF         frequency difference between two following samples
Tm = N dT  frame length, time domain
Fm = N dF  frame length, frequency domain
Ns         number of symbols in the temporal frame
           = number of samples in Nyquist (RF) bandwidth
NechSymb   number of samples in a temporal symbol = N / Ns
T          symbol length = NechSymb * dT
NNiv       number of modulation levels (2^k), per carrier axis

           It is a good idea to learn by heart these eleven notations.
           They are employed in the software's dialogue zones.

                          FFT properties and use

N * dT * dF = 1 because, the temporal signal being periodic with a N * dT
period, its spectrum contains rays separated by dF = 1 / (N * dT).

The FFT algorithm used is such that the integral of the square of the
signal module is the same in both domains:

                (A(i)^2+B(i)^2) * dT =  (A(i)^2+B(i)^2) * dF
                  time domain              frequency domain

In this software, the ZERO dB REFERENCE LEVEL is defined as the level of a
temporal signal for which A(i)^2+B(i)^2 = 1 (see chapters TWT, Digital
modulator and Bit Error Rate of this on-line notice).

If the level of an unmodulated signal is 0 dB, the module of every N samples
in time domain equals one, and the spectrum reduces to a unique sample, the
square of the module of which is N * dT / dF = 1 / dF^2.


The user first chooses the number of samples N.

When increasing N,

   - the arrays need more RAM memory,
   - the computing time increases, almost proportionately,
   - the accuracy of results improves, if the user increases both:
      - Ns, number of samples in a given bandwidth,
      - NechSymb, number of samples in a given time interval.
        (see Notations, above in this notice).

Only Ns is set by the user, in the first module of the canal, generally a
digital modulator. The software computes NechSymb by dividing N by Ns.

See the two chapters of this Notice : "Choice of N and of the program" and
"Choice of Ns".




                        Choice of N and the program

N must be a power of two, 2^K, K being an integer.
Two different FFT algorithms are used, according as K is even or odd, in
a way transparent to the user.

The even K algorithm is faster, so that a calculation with 4096 samples
(K = 12) is not much longer than with 2048 samples (K = 11).
Two executable programs are available:

1)   RS.EXE, most usually used. Values of N from 32 to 8192 are allowed in
     screen #1.
     At the beginning of a session, it is better to choose a small N value
     and to make a few fast passages, progressively improving the structure
     of the canal, and the parameter values.
     More often, a small value such as N = 1024 gives a sufficient accuracy
     to do so.
     Moreover, experience shows that users trend to fill too quickly
     the entry fields: a small computing time allows to correct errors
     quickly.


     A high value of N such as 4096 must be used only at the end of a
     session to finalize and save the results.

     At screen #1, the user is also proposed the "Arrays/Files" choice.

     With the "Files" option, in order to save RAM memory, some arrays are
     not dimensioned, and the corresponding calculation is performed, more
     slowly, using saving techniques on a real or virtual disk.
     For example, only arrays A() and B() remain dimensioned to N instead
     of four with the "Arrays" option: A() et B() plus Pre() and Pim(),
     holding the real and imaginary parts of the transfer function of filters.

     Generally, it is better to take the "Arrays" option which allows to
     use all the software features, especially the visualisation of the
     transfer function of filters.




     The occupied memory is maximum with N = 8192 and the "Array" option,
     the total array size being 4 x  8192 x 8 = 262,144 bytes (256 Kb):

                    #                     memory size, in bytes

     - arrays                                     262144
     - variables and auxiliary arrays          #   20000
     - RS.EXE program                          #  300000
     - resident program for screen copy        #   30000
     - DOS (versions < 5)                      #   60000
                                               --------
     - Total (approximate)                     #  672144
     This total is higher than the maximal addressing capacity of DOS:
     5  2^17 = 655,360 bytes.
     In order to fully use the maximum capacity of RADIOSIM (N = 8192,
     "Arrays" option), it is better to use a recent version of DOS, 5 or 6,
     allowing a part of DOS to be resident in upper memory.




     As a matter of fact, RS.EXE is compiled using an overlay technique:
     only parts of the file are loaded in memory, in turn, leading to a
     negligible increase of calculation time if the hard disk is a recent
     one, and to an increase of available memory of about 50 Kb.


     RADIOSIM works properly if the available memory displayed on screen #0
     is near 270,000 bytes. Except if the memory size of your computer is
     much smaller than 640 Kb, or if TSR resident programs are too many, it
     is likely that the displayed available memory will be larger than
     270,000 bytes.


     In any case, the program calculates the available memory at the moment
     N is entered at the keyboard, and displays an error message if the
     given value is too large.









2)   On computers provided with extended or expanded memory, PC AT 386 or 486
     (or on PC AT 286 and PC XT 8086/8088 equipped with an add-on memory
     card), the utility program RSXM.EXE allows to use a larger number of
     samples, only limited by the memory size.
     However, for N<=8192, the computing time is faster with RS.EXE.
     See more details in User's guide.







                                Choice of Ns

The choice of Ns comes after the choice of N. As N, Ns must be a power of
two: Ns = 2^K, K being an integer.
Recall:
   - Smaller is Ns, better the temporal signal is represented,
   - Higher  is Ns, better the signal spectrum is represented.
Without any other indication, set a value near N/8.

The choice of Ns must take into account both following constraints:

   - The transfer function of filters must be represented by samples
     sufficiently near in frequency. Graphics are drawn by linking samples
     by straight lines: they must not look too angular.
     Sharper the edges of a filter are, higher must be the number of
     samples in the filter bandwidth.
     If necessary, a line of the "Graphics" module menu allows to visualize
     samples by vertical lines.
   - Ns must be sufficiently small in order that the signal spectrum
     vanishes at the sampled band edges.
     In digital modulation, and if the canal is linear, as the transfer
     function of filters is generally null beyond 1/T from the central
     frequency, Ns may reach N/2 (two samples per symbol, c.f. first Nyquist
     criterion). The temporal signal seems angular, samples are spaced, but
     their values are exact. If necessary, intermediate samples can be
     obtained by a temporal shift (module "Shift").

     If the canal is non-linear, the spectrum widens and Ns must be reduced.
     As a practical rule, the number of samples per symbol N/Ns can be set
     at four or eight.

     Ns must also be reduced if interfering channels are simulated, at
     frequencies shifted from the canal frequency.
     As a practical rule, the spectral density must decrease by about 10 dB
     at the sampled band edges. More precisely, it is possible to estimate the
     erroneous interference due to spectrum folding by extending the spectral
     density curve until the signal bandwidth (see the figure of User's guide
     section 4.2). In digital modulation, this interference must be as small
     as the number of modulation states is high.

                                   Files

RADIOSIM uses the following types of files:

 - Binary files:
     - Files with a .SIG extension save the signal samples in arrays A() and
       B(), as explained in the description of module "Stock",
     - the NBW file is used for calculating the equivalent noise bandwidth of
       the receiver (c.f. module "Calculated filter").
   Their size is proportional to N, and is generally high. They are written
   and read during the computation process.
 - ASCII files, that can be edited (write, read or modify) with a word
   processor or, preferably, with the ad hoc "FIL_TWT.EXE" utility program.
   They are differentiated by their extension:
     - Extension .CAN : List of modules of a given canal used in a given
       session, and values of their parameters. At the next session, reading
       this file avoids to type again all entries, that would be tedious and
       cause of errors.
     - Extension .TWT : Non-linear characteristics of an amplifier or any
       other quadripole.

     - Extension .GAB : Template of filtering function, spectral density.
       rise-time, etc. These files are called by the "Graphics" module, and
       allow to superimpose a template to a displayed curve.
     - Extension .FIL : Filters entered point by point (frequency by
       frequency), in amplitude and phase.
     - Extension .FGD : as .FIL files, but the filter is characterized by the
       amplitude and the group delay.
     - Extension .PER : Interference by adjacent channels.
     - Extension .TF  : Characteristics of a transversal filter.
     - Extension .MCR : list of frequencies and levels, specific to module
       "Multicarrier amplification".
     - Extension .ANA : characteristics of the dipoles of a RLC network,
       specific to module "Analyse of a RLC network".
     All the former ASCII files have a common feature: the first 25 lines
     hold a comment. The information used by the program begins at line #26.





     Other ASCII files:
     - Extension .VAL : This extension is reserved to the unique file RS.VAL
       written and read by RS.EXE without direct intervention of the user.
       This file memorizes the last parameters of a given session written in
       screen #1 (number of FFT samples, units, etc.), and proposes them
       as default at the next session.
     - Extension .TXT and .HLP : Notice and Help pages.

RADIOSIM makes use of two repertories:
 - repertory of files to be kept, named STOCK, which is a sub-repertory
   of the repertory from which RS.EXE is called.
 - repertory of temporary files. If "extended" or "expanded" memory is
   available, it is a good idea to place this repertory on a virtual disk.

The user must enter the name of the last repertory at screen #1.
If the user do not enter any name, the repertory of temporary files is the
same as the repertory from which RS.EXE is called.

The NBW file and .SIG files are placed in the repertory of temporary files.

The .VAL, .TXT and .HLP files are placed in the repertory from which RS.EXE
is called.

The other ASCII files are placed in the STOCK repertory. At least one file of
each extension must be present in this directory.
























                               Utility modules
                               ---------------








                                    Stock

This module controls the writing or reading process on binary files used to
save the signal registered in arrays A() and B().

The calculation being made in double precision, a numerical value is
represented by 8 bytes; therefore, the file size is  2 * N * 8 bytes plus
an overhead comprising:
  - a comment ...................................  bytes n   1-256
  - the signal domain, time(T) or frequency (F)..           257
  - parameter  N ................................           258-259
  - parameters Ut ...............................           260-267
  -            Uf ...............................           268-275
  -            dT ...............................           276-283
  -            dF ...............................           284-291
If those last five parameters are not the same, in the file and in the current
session, a warning error message is displayed.

Then, arrays A() and B() fill the file as follows:

  - A(0) ........................................  bytes n 300-307
  - B(0) ........................................           308-315
  - etc.

Eight operations can be performed:
  - READ  simple reading, the former arrays being erased,
  - READ+ addition of file and arrays samples, and saving the result in
    the arrays,
  - READ* multiplication (complex) of file records by array elements, and
    writing the result in arrays,
  - READ/ as READ*, but the complex number corresponding to file record
    being replaced by its complex conjugate.
  - and the four symmetrical operations WRITE WRITE+ WRITE* WRITE/ from arrays
    to file.
If the signal domains are not the same in the file and in the arrays, a FFT
is performed before READx and WRITEx operations (x means + * or /).




Warning: the multiplication not being a linear operation, it is not equivalent
to perform it in time domain (f.i. simulation of a mixer) or in frequency
domain: so, fix the domain manually, f.i. by means of a "Edition of arrays"
module inserted in front of the first "WRITE" Stock module.
















                                   Shift

This module shifts the signal A()+jB(), in time or in frequency.

For a frequency shift f, the entered shift is rounded to an integer number of
frequency samples, the signal is put in frequency domain (a FFT is executed
automatically, if needed) and a signal shift is performed by modulo N
displacement of arrays A() and B().

A signal multiplication by EXP(2Tf) in the time domain would allow any
shift F, but the periodic and unlimited nature of the temporal signal would
give rise to a signal discontinuity, source of error.

It is not the case for a temporal shift t, because the signal is band limited
(see section "The FFT"). The shift is executed in frequency domain,
multiplying the signal by EXP(-2Ft), without any rounding.




                          Modif. frame/modulation

This module modifies the signal, in time domain.
First, each signal component, real A() and/or imaginary B() is added a
specified constant value.
Example of application: transformation of a -1 +1 sequence into a 0 +1
sequence (simulation of a FSK or AM modulation with envelope detection).

Then, calling:
   Ra and Rb the multiplying factors specified for A() and B(),
   Phia and Phib the rotations       specified for A() and B(),
A(i) and B(i) become respectively:
   A(i) Ra cos Phia - B(i) Rb sin Phib
   B(i) Rb cos Phib + A(i) Ra sin Phia
Example of application: simulation of quadrature impairments of a digital
modem.
Note: If Ra=Rb=1 and Phia=Phib, the whole signal is rotated, not leading to
      any loss of quality in digital modulation.


Then, a 2d order and/or 3d order non-linearity can be applied to A() and/or
B(). It is specified by parameters D2 in percents per Volt, and D3 in
percents per square Volt. The input voltage x becomes y such as:
          y = x * (1 + .01 D2 * x + .01 D3 * x ^ 2)
The following table gives an example:

      x                             y
           
                D2=20%           D3=20%        D2=20% and D3=20%
           
     -1         -0.8             -1.2                -1
     -0.5       -0.45            -0.525              -0.475
      0          0                0                   0
      0.5        0.55             0.525               0.575
      1          1.2              1.2                 1.4

Example of application: simulation of impairments of an analog modem.

The above operations are performed in order. If a different order is needed,
several modules must be inserted in series in the canal.
                             Edition of arrays

This module displays on the screen the element values of arrays A() and B()
representing the signal, or Pre() and Pim() representing the filter(s).
It is also possible to modify the element values, but the interpretation of
results becomes hazardous!

If the signal is to be displayed in frequency domain, all samples are first
multiplied by dF to get an order of magnitude near one (see section "FFT
properties and use" in this notice.

The display can be made, normally, in rectangular co-ordinates, or in polar
co-ordinates, the module being given either in linear or logarithmic units.

Apart editing modifications and change of signal domain, both arrays are
restored in their initial state at the module output.

Either the transfer function or the impulse response of filters can be edited.
At module output, the transfer function is always restored in arrays.

This module allows to fix manually the signal domain, if needed (f.i.
some processes of stocking on file).





A Help page giving the role of the keyboard keys is obtained by hitting the
F1 key.











                                  Graphics

This large module displays on the screen the curves representing the signal
or, if "Arrays" option has been chosen at screen #1, the transfer function
or impulse response of upstream filter(s).
It may be inserted several times in the canal, with different parameters,
but may not be the first module.

The screen comprises:
- a central window containing both graphics and alphanumeric characters,
- an external frame containing only alphanumeric characters.

An "edition" mode allows to modify by hand all but graphics, to improve
aesthetic and to add comments.

The module parameters can be adjusted during program execution, hitting keys:

 - M as "Modifications" changes essential graphic parameters as mode
   ("signal" or "filter"), co-ordinate type, signal domain, etc.

   In "signal" mode, and only in "time" domain, two more options are
   offered, considered as co-ordinates:
     - constellation of signal samples # 0 + k NechSymb in the Fresnel plan,
     - signal path in the Fresnel plan, for all temporal samples.
   The sample number on the middle of screen is #N/2 when abscissas
   represent time, and #0 when abscissas represent frequency.

   The user can choose rectangular co-ordinates, or polar co-ordinates with
   module represented either in linear units or in logarithmic units.

 - P as "Presentation" modifies secondary parameters such as the central
   window dimensions, position and quotes of graduations (default graduations
   are drawn automatically at the beginning, as a function of co-ordinate
   type), display of a template, smoothing bandwidth, etc.

   Smoothing bandwidth
   -------------------
   For "signal" mode, "frequency" domain and polar co-ordinates (display of
   power spectral density), the user can specify a smoothing bandwidth
   containing an odd number of samples, to smooth the curve.
   Moreover, in case of logarithmic units, if asked, the graduations give
   directly the difference between power in the smoothing bandwidth and the
   0 dB reference power (monocarrier saturation power of a TWT, nominal
   output power of a digital modulator, nominal input power of a coherent
   demodulator).

Watch the Help page of the "Graphics" module, which gives more details on the
action of keyboard keys.












                              Spectral density

This module computes the spectral power density at a given point of the
canal. Powers of signal samples A(i)^2+B(i)^2 are summed, in frequency
domain, in a specified integration bandwidth.

Sixteen frequencies can be specified, defined by their distance from the
central frequency.

These distances, as well as the integration bandwidth, are rounded to an
integer number of samples, the user being prompted by a message on the
screen. A correction factor owing to the integration bandwidth rounding is
automatically applied to the spectral density.

The integration bandwidth can be specified in a unit different from the
current unit, in order to comply with the common practice (in satellite
transmission for instance, it is usual to quote spectral densities in
dBW/4kHz).
As for the "Graphics" module, parameters can be modified during computation
(hit 'm' on the menu).
                                    Loop

This module must always be placed at the canal end.

Several passages in the canal are executed.

- a parameter, specified by five values, is incremented. The five values are:
    - the module number in the canal (given at the corresponding screen #3),
    - the parameter number (1 to 10 max., from top to bottom of same screen),
    - the initial value,
    - the final value,
    - the incrementation step.
  The above five values must be separated by a comma.
  From one to three loops can be nested, specifying as above from one to three
  parameters at lines #1, #2 and #3 of the menu. Most of the time, only one
  loop is used, leaving ",,,," at lines #2 and #3.
- the corresponding variations are displayed for one to sixteen "results"
  obtained in modules downstream the variable parameter module(s), specified
  as follows at the fifth line of the menu:
  m3,r3:m4,r1:m6,r2 etc. (m is the module number, r is the result number).


During parameters entries, be cautious to the separating commas and colons
(colons are used to separate results).

Modules giving a result are signalled by a "*" leading character on screen #2
(hit "R" in screen #3 to identify the results).

Not all modules give a result.
In some modules, results must be specified in screen #3 by the user.

A pause can be asked, with a specified duration, to watch intermediate
results. That pause can be shortened hitting the space bar.

The "LOOP" module uses a file named "LOOP", in the repertory of temporary
files, to save the intermediate results. This file can help to recover
the computed data, in case of faulty operation or in case of further
importation in a word processor.




Several computations can also be performed without changing any parameter.
At computation end, the arithmetic mean of results is displayed (only
significant in case of a canal using a gaussian noise, a random sequence,
etc.).

The computation time can be long: Caution: if a "LOOP" module is used,
stopping the program can be obtained,
- by hitting Ctrl c, but in this case the program always return to DOS.
- by hitting Ctrl d. In this case, the user is warned by a special sound,
   and the iteration stops after the next pause, allowing to return to
   screen #1.

If the user asks to display graphics, the computation time is higher but
abnormal events appear more easily (without display, warnings appearing
within a frame on the screen are only visible during a fraction of second).





Display format: it is defined in screen #3, and can be modified at any time
hitting Ctrl d during computation.
A 'x' represents a figure, a '.' the decimal point, a 'e' or a 'd' on the
right side indicates an exponential notation, a 'b' on the left side
represents a blank space.

The LOOP file is normally written in exponential notation, with six
decimals. In order to import it further from a word processor, its format can
be modified at the end of computation. The format obtained on the screen will
be retained in the file.








                                  Minimax

This module minimizes the maximum absolute value, or maximizes the
minimum absolute value of m functions, each depending of n variables.

As for the 'Loop' module ',
- variables are defined by the module number and the parameter number,
- functions are defined by the module number and the result number,
but, the optimization needing often a large number of variables, the
variables are defined in the same manner as functions, on a single line
i1,j1:i2,j2:i3,j3 etc. the i being the module numbers and the j being
the parameter number. The number of variables is equal to the number of
colons ':' plus one.

This syntax allows to treat any type of canal, but its use may be delicate:
do not give bad numbers to modules and parameters !
At the third line of the menu, a 'pivot' function may be defined, followed
by a - + * or / operator.
In this case, the pivot function value is substracted, added to the main
functions values, or it multiplies (*) or divided (/) them.
For all entries, blanks are ignored.

During computation, in order to watch the optimization process, variables are
displayed using a specified format.
As a function of this format and of n+m, either all or some among n variables
and m functions are displayed. Variables are displayed by priority.
Whatever m+n is, the 'worst case' (function whose absolute value is the
largest or the smallest) is displayed on the right side of the screen.

A file named "MINIMAX", in the repertory of temporary files, holds the
optimization history, with a good accuracy (six decimals, exponential
notation).

It is a good idea to save the canal before running optimization, to avoid
tedious new entries if bad module, variables or results numbers have been
entered, leading the computer to return to DOS.

At any time, hitting Ctrl d stops the computation for a while.
The acknoledgement of this hit is a special audio signal.
Then, an entry line is displayed, which allows:

- to quit the optimization before its term, AFTER the initial iterations
  signalled by a 0 number, then to come back to screen #1,(hitting Ctrl c
  returns immediately to DOS).
- to modify the display format, as for module "Loop".

Nota 1: The convergence would be much slower in case of minimizing the value
of a unique function, defined as the maximum value of the m functions.

Nota 2: All warnings during computation are cancelled (for instance, rounding
the entered parameters). So, it is a good idea, after optimization, to erase
the "Minimax" module at the canal end, to set a pause between modules at
screen #1, and verify the validity of the results.

Nota 3: If a too small iteration number has been specified, simply run a new
computation: the semi-optimized parameters are kept in memory, as can be seen
by watching the menu (screen #3) of the modules including parameters to be
optimized.



Nota 4: Do not specify 0 as the initial value of any parameter: as a matter of
fact, the parameters used by Minimax are multiplying factors of the initial
parameter values.

Nota 5: The last line in the menu is used only by computers equipped with a
HERCULES graphic card, the display method used by RADIOSIM being then
different.












                                   Memory



The "Memory" module displays the remaining free memory in DGROUP (STACK, see
BASIC manual) and for dynamic arrays (FRE(-1), far heap).

Note: All RADIOSIM arrays are dynamic, except variable length strings arrays.












                             Filter initiation

This module is useful only if the "TOTAL" option has been chosen in screen
#1.

This option decides, when displaying filter transfer function or impulse
response by the "Graphics" module:

- to display the set of filters located upstream, until the beginning of the
  canal, or until an "Filter initiation" module,
- and not (option "LAST") the last upstream filter.

This module sets all the elements of array Pre() to 1, and sets the elements
of array Pim() to 0. So, if a canal includes three filtering modules A B and
C, you can view the cascade of B and C inserting a "Filter initiation" module
between A and B.




                               Practical hints





This chapter deals with the following items (hit the PGDN key)

      Entry screens
      Name of keyboard keys
      The four screens 0, 1, 2 and 3
      Prompt on the up-right part of the screen
      NUM LOCK key
      Keyboard repetition feature
      Screen copies





Entry screens
-------------
Some principles common to all RADIOSIM entry screens, including one
or several entry fields, are given here-under:

Have a good look to the last screen line: it gives indications that will
help you to answer.

If this line displays "Help", hitting "h" or "H" will bring additional
indications to be displayed. After reading them, the entry screen will
recover as it was previously.
For some screens, Help is got by hitting function key F1.

If this line displays "Comment", you can:
- hitting "c" lowercase, display and edit the canal comment (1 screen).
  Note that a change will be saved only if you save the canal at screen #2.
- hitting "C" uppercase, display and edit the remarks file (10 screens).
  You can write here any personal remark, independently of the loaded canal.
  Any modification is saved at once.



An entry line is validated by hitting either ENTER or DOWN. Doing so, the
cursor goes to the next line.

At the last line of the entry screen,
- DOWN returns to the first line,
- the 25th line indicates how to validate the whole screen.

It is not possible to go back to the previous line by hitting the UP key,
you must go across the bottom line by using the DOWN key. As against this
constraint, it is more easy to program entry interdictions depending upon
previous parameters.

The following table gives the names used in RADIOSIM to designate the
keyboard keys.




Name of keyboard keys
---------------------
RADIOSIM name    Key description
-------------    ---------------
  DOWN             Down arrow
  UP               Up arrow
  PGUP             PGUP
  PGDN             PGDN
  LEFT             Left arrow
  RIGHT            Right arrow
  INS              INS key
  DEL              DEL key
  END              END key
  ENTER            ENTER or RETURN
  ESC              Escape key
  TAB              tabulation key
  HOME             HOME key
  PRT SCRN         PRT SCRN
  NUM LOCK         NUM LOCK
  F1 F2 F3 F4      Function keys
The four screens
----------------






        A RADIOSIM session always begins by four screens:

        Screen #0 appears only at the beginning of a session.

        Screens #1, #2 and #3 are of hierarchical nature, with decreasing
        hierarchy. The user goes from one of these screens to the other by
        means of keys PGDN and PGUP.





Screen #0
---------

Screen #0 gives some warnings of general kind.

On the left-up side, appears the memory available before dimensioning the
main arrays A(), B(), Pre() and Pim(). It must be at least 270,000 bytes.
If less, let us verify that the RAM base memory size of your computer is
640 K, that resident programs are not too much, etc.

A Help page tells how to modify the used colours, for colour or monochrome
monitors.

The screen #0 Help page (A or F1) explains how to fix the colours and the
duration of acoustic warnings from the command line.

During a same session, it is usual to do several "passages" across the canal
(several computations) with parameters values somewhat different: Screen #0
appears only at the first passage.

Screen #1
---------
Screen #1 allows to set nine parameters:

1) Pause between modules: If you are a beginner in RADIOSIM, it is better to
   stop the calculation after every module, to read displayed indications.
   During calculation, you can activate or de-activate this pause hitting
   Ctrl s (hit key "Ctrl" then, without releasing this first key, hit
   key "s".

2) The Arrays/Files option is described in section  "Choice of N and of the
   program". Choose "A" preferably, to be able to visualize the filter
   characteristics.

3) According to the choice "last"/"total" (and if the above option is "A"),
   the transfer function or impulse response displayed by a "Graphics" module
   will be relative to:
   - "last" the last upstream filter,
   - "total" the cascade of all upstream filters, until canal beginning or
     a "Filter initiation" module.

4) Unit of time for keyboard entries and screen displays.

5) Unit of frequency for keyboard entries and screen displays.

6) DOS path of the repertory of temporary files.

   RADIOSIM creates some files specific of a session, that you must erase
   periodically in order to avoid an excessive crowding of the hard disk.
   These files can be placed in any repertory but, if "Extended" or "Expanded"
   memory is available, it is better to create a virtual disk holding this
   repertory. Calculation will be speeded, and erasing will be automatic each
   time the computer is switched off.
   If you indicate nothing, these files will be placed in the repertory
   from which RS.EXE has been invoked.
   If this repertory is a sub-repertory of the repertory from which RS.EXE
   has been invoked (recommended procedure), the name of the former may be
   omitted.
   Always end by "\".


   Example : Name of launching repertory      C:\RADIOSIM
   Name of repertory of temporary files       C:\RADIOSIM\PROV
   Indication to be entered                   C:\RADIOSIM\PROV\ or PROV\

7) Number of samples : 32 64 128 256 512 1024 2048 4096 or 8192.

8) You will soon notice that it is very useful, to resolve a new problem,
   to start from an analogous one, saved in a previous canal.
   About 50 typical canals (.CAN extension files) are available in the
   original STOCK repertory.
   You can:
   - get the number and the title of these canals by entering  "999",
   - read a detailed comment ("V" followed by the number),
   - erase a canal ("K" followed by the number).
   - load a canal ("L" followed by the number).
   You can also enter nothing, and build your canal from zero in following
   screens (screen #2 and #3).
   RADIOSIM loads a new .CAN file only if a new non-void name has been
   entered.


9) Normally, a RADIOSIM session is quitted only at this line, hitting "q" or
   "Q" (quit). It is better to proceed so, because the command line parameters
   (colours and bip duration) and screen #1 parameters are saved in the
   RS.VAL file, in the repertory from which RADIOSIM has been invoked. These
   parameters will be automatically loaded at the next session.
   You can also quit the program at any time by hitting Ctrl c.
   This procedure is helpful if a too long calculation has been initiated
   by mistake (too high value of N, absence of arithmetic co-processor, etc.)
   and avoids to reinitiate the system by a Alt Ctrl Del sequence.

   After hitting Ctrl c, two options are offered:
   - immediate return to DOS, the RS.VAL file and .CAN file being neither
     modified nor saved,
   - calculation continued until the end of the current module, then return to
     screen #1, allowing to pursue the session.



Screen #2
---------
Screen #2 is specific of the canal yet loaded or being built:

Are displayed,
- in the left part of the screen, the list of modules of the current canal,
- in the right part, the list of library modules (modules delivered
  with RADIOSIM or written by the user).
Screen #2 allows to build or modify a canal (see the corresponding Help
screen page).

Particularly, the canal can be saved at this screen ("s" key), writing a title
of one line, and a comment of 24 lines. In order to edit this comment,
RADIOSIM involves a simplified word processor, the rules of which are also
described in a Help screen page.

Hitting "s" allows also to edit the comment, without saving, because
saving process can be halted at the end of the comment edition.


Screen #3
---------
Screen #3 (one screen #3 per canal module) allows to edit the module
parameters of the canal under study. The modules are switched by means of
the LEFT and RIGHT arrows.















Prompt on the up-right part of the screen
-----------------------------------------
During computation, the signal domain, frequency or time, is displayed.
During a change of domain by a FFT, the indication F-T or T-F appears

NUM LOCK key
------------
It is better to activate NUM LOCK . Entering numeric figures is easier.

Keyboard repetition feature
---------------------------
The keyboard repetition has been deleted in some cases, because a too long
action on a key giving one or several repetitions could, for instance,
bring the result displayed by the last module to be lost.

As a counterpart, you must wait the display of some messages, for instance
"Hit any key" before using the keyboard, if not your action will be
ineffective.


Screen copies
-------------
When you are asked to hit a key, after a computation phase, you can transfer
the screen contents to a printer hitting the PRT SCRN key.

If the screen contents is only text (table of letters and figures), no
previous action is needed.

If the screen contain graphics, an ad hoc resident program must be loaded
before RADIOSIM (before hitting RS + ENTER):
-  for instance GRAPHICS.COM from DOS (specify the type of printer, see
   your DOS manual),
-  or a specialized software, for instance PIZZAZ,
-  preferably, the utility file of your favourite word processor (GRAB.COM
   for WORDPERFECT, SCR.EXE for MANUSCRIPT, CAPTURE.COM for WORD, etc.) which
   creates a file holding the screen copy, that you will use later to insert
   a figure in your reports.
If your word processor is any version of WORD for Windows, run RS.EXE from
the File Manager of Windows and put the screen(s) you want to include in
your report in the clipboard of Windows, hitting PRT SCRN.











                              Electrical modules








                             Digital modulator

Two families of modulation are dealt with in this module:

   - Phase modulations (PM) with k phases (k = 2, 4, 8, 16 etc.),
   - Amplitude modulations (AM and QAM) with NNiv (2, 4, 6, 8, 12...)
     symmetrical levels, on one carrier or two quadrature carriers.

The 2PSK and 4PSK modulations belong to both families.

Three kinds of phase modulations are treated by RADIOSIM:

   - the classical phase-shift keying modulation (kPSK).
   - its variant k_2kPSK obtained by a /k signal rotation at every even
     symbol. In this case, there is always a phase variation between a symbol
     and the next one, and this variation never equals .
   - a type of constant envelope modulation, only phase being changed
     between two successive symbols, with a linear or sinusoidal time
     variation. For such a modulation, the phase variation between the
     characteristic instants of two symbols is n/k, n being odd and varying
     from 1 to k-1. There is always a phase variation from a symbol to the
     next one. For a linear variation and k=2, Minimum Phase Modulation (MSK)
     is obtained.

   For k_2kPSK and above constant envelope modulations, the number of points
   of the constellation is 2k instead of k.

For QAM modulations, it is possible to shift the symbol sequences A() and B()
by half a symbol. For NNiv = 2, Offset Quadrature Phase-shift Keying (OQPSK)
is obtained.
The case of 32QAM, 128 QAM, etc. is also dealt with (number of levels per
modulation axis multiple of three). The constellation corners are truncated.

1) AM, QAM, kPSK and k_2kPSK modulations
   -------------------------------------
The module generates a sequence of Ns binary signals 1, pseudo-random or
random. To build a signal with k levels or phases, the module performs a
weighted addition of sequences produced by Ns/2/NbitAxe shifts of the initial
sequence (NbitAxe = Log2(NNiv)).

Dirac pulses are put in the middle of symbols, with areas (amplitudes) given
by the above sequence, every NechSymb samples of array A().

In case of two quadrature carriers modulation, the same signal shifted by
N/2 is put in array B().

In case of PSK modulations, symbols A()+jB() stay on a circle, with k phases
distant from 2/k.

The following normalizations are performed:

   NechSymb for the maximal level, in case of single carrier modulation,
   NechSymb/2 for the maximal level, in case of two quadrature carriers
   modulation,
   NechSymb for the envelope level in case of kPSK or k_2kPSK modulations.

As a consequence, after band-limiting the signal in a RF bandwidth less than
2/T, the maximum envelope level SQR [A(i)^2 + B(i)^2] equals 1 (say one Volt)
without modulation and, if filtering is intersymbol free, at the optimum
sampling instants.

The use.r must control the signal level along the transmitting chain,
particularly for a correct behaviour of the non-linear amplifier module (TWT)
and "Bit Error Rate" module.

The spectral density, A(i)^2 + B(i)^2 in frequency domain integrated on
several samples, is flat.
If needed, a sinX/X spectrum (X =  f T) can be specified, in order to
simulate a real modulator, with rectangular shaped symbols.
An unmodulated signal can also be specified, with unity envelope.
The signal spectrum then consists in a single line at the zero (central)
frequency.
Other choices: isolated pulse, and step pulse.
In every case, if the canal filters are intersymbol free, and if the
receiving filter is matched (if the complex conjugate of its transfer function
equals the Fourier transform of a receive pulse), the "Coherent demodulation"
and "Bit Error Rate" modules give a null degradation versus theory.



2) Constant envelope PM modulations
   --------------------------------
The signal is settled at every symbol as above, but each intermediate
sample is calculated by linear or sinusoidal interpolation (for PSK and QAM,
interpolation is achieved by the signal filtering).
The spectrum is neither flat, nor in sinX/X. It is not necessary to use a
transmitting filter to limit interference from/to adjacent channels.

Modules "Coherent demodulation" and "Bit Error Rate" indicate always
a non-zero degradation. Dimensioning the receive filter leads only to a
compromise between:

   - degradation due to intersymbol distortion, if bandwidth is too small,
   - degradation due to thermal noise if bandwidth is too large.

The "Digital modulator" module must be placed at the beginning of the canal.
It sets the sampling parameters dT and dF.

Read User's guide for more details.



Note: The output signal of this module can also be viewed as a baseband
      signal (c.f. section "Fresnel plan" of User's guide). Hence, a FSK
      modulation (f.i. GMSK) can be simulated by arranging this module in
      "AM" and having it followed by a "Frequency modulator" module.














                           Coherent demodulation

The first task of this module consists in re-treiving the informations saved
in the file "NBW" by the various filtering modules of the receiver, and in
calculating the equivalent noise bandwidth.

To speed calculation, the user can fix manually the noise bandwidth, when it
is known in advance (for instance  raised cosine filter).

The theoretical C/N corresponding to the BER entered by the user is displayed
(C is the peak modulation power, except for truncated QAM: in this case, C
is the power corresponding to a corner of the constellation square, and C/N
for the peak power is displayed in parenthesis).

Then, the signal is time-shifted with a time lead equal to the opposite of
the sum of group delays of filters (transmission and reception), at the
central frequency. Doing so, temporal samples # 0 + k NechSymb constitute
a first approximation of the optimum sampling instants.


A) Then, two sets of Ns complex numbers are compared:
   - the set constituted by symbols transmitted by "Digital modulator"
     module, saved beforehand,
   - the set constituted by the Ns elements of arrays A() and B() with
   number 0 + k NechSymb, after ad hoc rotation and amplification.
   The optimum rotation/amplification couple is find using an algorithm
   minimising the RMS (root mean square) difference between values of the
   two above sets.
   This first operation eliminates the ambiguity modulo /2, /4, /8 etc.
   of the carrier phase.

B) Then a fine temporal shift of the signal is worked out, in order to lower
   as much as possible the above RMS difference. The optimum temporal shift
   is got by interpolating between adjacent temporal samples.
   This operation is only performed if NechSymb is larger than 2.

C) Operation A is worked out again.
The advantage of this first method is the computation speed. With this method,
the BER value entered by the user has no influence on the amplification/
rotation/shift computed values.
A second method can be chosen, in which BER is optimized instead of RMS
error in operations B and C. The result is more accurate, at the expanse of
a longer calculation time.

For checking purpose, the user can fix manually the values of gain, rotation
and temporal shift.

At last, the BER is computed, simulating by the Erfc() function a gaussian
noise applied at the module input with a level smaller by C/N (theoretical
value displayed above) than the reference level.

The signal is rotated an shifted in the best way, but its level remains
unchanged. So, the theoretical BER is only obtained if the peak modulation
power at the module input equals the reference power, and if there is neither
intersymbol interference, nor interferers.

This BER depends strongly on the signal level at the module input. The
value of the optimum amplification calculated by this module is transmitted
to the "Bit Error Rate" module, if present downstream. It represents the
part of C/N degradation due to signal level.
At the module output, the signal is rotated and shifted by the optimum values
previously computed, in order to display the signal constellation, eye
diagrams, etc., but the signal level is not changed.

In satellite transmission by a transparent repeater, this module simulates
the down-link noise, the up-link noise being simulated by a previous
"Gaussian noise" module.

This module can also be used in case of FSK modulation: the "Digital
modulator" module is arranged in "AM", acting as a frame generator in
baseband, it drives a "FM modulator" module which modifies the parameters
of modulation recognition Mo$ and Symb%().

A rather abnormal use of this module is done in prerecorded canals such as
FSKQUAD.CAN, GAUSS.CAN, etc. : If demodulation is not coherent, the noise must
be directly simulated by a "Gaussian noise" module and not by function Erfc.
Entering 999 at the third line of menu makes this module to only count the
errors present at the module input, one by one. In this case, the computed BER
is practically limited to high values such as 10^-2.






In this module, N represents the rms noise value at the demodulator input,
except at the bottom line, only displayed if the computed or specified
equivalent noise bandwidth is different from the Nyquist bandwidth:
Then, N represents the rms noise value integrated in the Nyquist bandwidth.











                               Bit Error Rate

This module must be preceded by a "Coherent demodulation" module.
It simulates the addition of a gaussian noise to the signal A()+jB() but,
at the module output, the signal remains unchanged.

As the former module, it calls a procedure that, for a given value of the
carrier to noise ratio C/N in the Nyquist bandwidth, calculates the BER
corresponding to the level of each sample by means of the Erfc() function,
on each carrier axis, and calculates the mean BER value.

Two C/N values are displayed (note the definitions of C/N):

- The theoretical C/N corresponding to a given BER, C being the power of a
  peak modulation state: for QAM, one of the four corners of the
  constellation square.
- The computed C/N, C being the reference power and N being the level of a
  gaussian noise supposed to be applied at the input of module "Coherent
  demodulation", simulated by function Erfc(), and integrated in the
  Nyquist bandwidth.
For a given sample, the computed BER is equal to the theoretical BER if its
value equals the value of the transmitted symbol, this last value being
saved in memory.
If it is the case for all samples, the mean BER computed by this module
equals the theoretical BER, and the eye diagram is fully open.

In case of intersymbol distortion or interferences, the mean BER increases.

In case of attenuation, owing to a TWT output backoff for instance, BER also
increases, very rapidly.

The "Bit Error Rate" module displays two tables, successively:

   - a table, calculated every half dB but displayed every dB, giving the
     calculated BER, from 10^-K1 to 10^-K2, K1 et K2 being entered by the
     user. If K1 and K2 are different, this table is then displayed on a
     graphic form.
   - a table obtained by linear interpolation between the results of the
     former table, giving the degradation (difference between computed and
     theoretical values of C/N, in dB), versus integer log-values of BER.
     For guidance, the table displays the part of degradation due to the
     mean signal value at sampling points (amplification value used by the
     "Coherent demodulation" module).
     Note: Partial degradations are not additive. Please, read the User'
     guide for an exact definition of the degradation.

The last table can be saved on disk, if asked, to be imported later in any
word processor software.

Warning: if the signal at the input of "Coherent demodulation" module is yet
errored (f.i. previous addition of a gaussian noise), the entered minimum
BER must not be less than the corresponding BER! In such a case, a warning
message is displayed.







                        Differential demodulation


This module computes the BER in PM modulation in case of differential
demodulation, by counting individual errors in presence of a previous
"Gaussian noise" module (the Erfc function cannot be used, as in modules
"Coherent demodulation" and "BER").

At module output, in order to display the eye diagram, the product of
A(I)+jB(I) by [A(I0)+jB(I0)] EXP j Phi is put in arrays A() and B(), with:

     I0=I-NechSymb (previous symbol sample),
     Phi= 0 in two phases modulation,
          /4 if NPhase>2,
          plus /NPhase, for any NPhase value, for K-2K, LIN and SINUS
          modulation types.




                                    TWT

This module calls a file with a .TWT extension which gives, as a function of
the input level in dB, the output level in dB and the input/output phase-shift
in degrees, for a sinusoidal input signal.

For a 0 dB input level (saturation of TWT, or 1 dB compression point of a
FET amplifier), the output level is always 0 dB (f.i. 0.707 on each carrier
axis).
Input levels are negative (and backoffs are positive) if powers are smaller
than 0 dB.
In the file, the input level must mandatorily be given dB per dB, from -20 dB
to + 10 dB, for instance.

Between the recorded values of input level, and below the smaller one, the
program interpolates with a quadratic law.
Above the larger input level, the program keeps the file data corresponding
to the maximal input level, and displays a warning message.

An input attenuator A dB allows the user to set the working level.

The module calculates and displays the output backoff -10 log P, P being
the global output power, sum of A(i)^2 + B(i)^2 (arrays being read at the
module output). This power would be equal to 1 in case of amplification of
an unmodulated monocarrier with input level A dB.

This backoff depends on the mean input signal level, the value of the input
attenuator, the modulation type, eventually the adjacent channels,
intermodulation products, etc.











                                   Limiter

This module simulates an envelope limiter acting on the modulated carrier.
Warning: in principle, this module must be used in a canal point at which
the signal represents a modulated carrier.
It can be used in a canal point representing a baseband signal, but be
cautious about its meaning.
It works in time domain, and modifies only the signal envelope:
E = [A(i)^2+B(i)^2].
Soft limiter
   Let Limit = 10^(L/20) be the limitation level.
   If Ei<L at limiter input, the ith sample is not modified.
   If not, output E is given the value of a truncated sine signal.
   If E (input) >> Limit, E (output) tends to  4 Limit /.
   An optional amplification by (- L - 20 Log 4/) can be set in such a way
   that output level tends asymptotically to 0 dB if E >> Limit.
Hard limiter
   If the user enters L = -999, envelope E of output signal is set to 1,
   whatever input value is.

                              Calculated filter

This module simulates a Butterworth, Tchebycheff or anti-Tchebycheff filter
with infinite unloaded Q (no loss) elements.
If a null value is entered as central frequency, either a low pass filter or
a symmetrical band-pass filter is simulated.
To simulate a dissymmetrical band-pass filter, simply enter the value of its
central frequency (entering a negative frequency allows to simulate the
influence of a lower sideband mixer).

Four options are offered as regard the group delay (GD):
   - WITH_GD  normal group delay
   - GD0      idem, minus central frequency GD. This recommended option
              centres the impulse response on sample #0, an interesting
              feature, peculiarly for graphics. Signal distortions due to GD
              variations are not changed.
   - NO_GD    null GD, simulating a perfect equalization.
   - GDEQ.    The module of the transfer function is set to one, and the phase
              is sign inverted, simulating an ideal group delay equalizer.





From RADIOSIM version #3, entering a negative number of poles allows to
simulate a stop-band filter centred at the central frequency (or a high-pass
filter in baseband).

Whatever is the number of poles, the attenuation in decibels is null:
- at the central frequency for band-pass filters,
- at frequencies very far from central frequency for stop-band filters.
So, if the number of poles is even, the attenuation is negative at some
frequencies.

As for any other filtering module, this filter can be included in the
receiver for calculation of equivalent noise bandwidth (see the "Equivalent
noise bandwidth" chapter of this notice).



                             Raised cosine filter

This module simulates raised cosine (Nyquist) filters which, if the canal is
linear, afford a null intersymbol distortion.

Filter parameters are:

   - the cut-off frequency, 1/2T if intersymbol-free filter,
   - the roll-off coefficient, from 0% (rectangular shape) to 100%,
   - the percentage of total roll-off. For intersymbol-free filtering, the
     sum of transmission and reception filter percentages must equal 100.

Phase and group delay are null.







                       Filter defined point per point

This module simulates a real filter, with a measured transfer function.
Transfer function must be given, as a function of frequency,
   - by amplitude, expressed in decibels,
   - and:
      - either by phase, expressed in degrees,
      - or by group delay, expressed in Ut. In this case, the utility
        program FIL_TWT.EXE converts GD into phase.

Entry of transfer function is preferably made using the utility program
FIL_TWT.EXE. This program creates a file with a .FIL extension, called by
this module (see "Files" chapter, in this notice).

Depending on a choice in the menu, either the amplitude of the transfer
function, or the logarithm of this amplitude, is linearly interpolated
between two following records in the file.



                              Gaussian filter



Let us call B the 3 dB bandwidth in baseband (a 2B value must be entered in
the module menu) and let G = LOG (2) / [2 B^2].

The transfer fonction is EXP(- G F^2) = EXP[- 0.5 LOG(2) (F/B)^2].
If F = B, the above expression equals 0.707.

The impulse response EXP[-(t)^2/G] is also gaussian.

Note: Writing mathematical equations in ASCII is not easy, and leads to
      ambiguities. Please, refer to User's guide.






                              Whitening filter


Amplitude/frequency characteristic of this filter varies as x/sinx, with
x =  F (T/K).
Generally, this filter is used at the transmission side, just after a
"Digital modulator" module generating rectangular symbols, with sinx/x
shaped spectrum. In this case, K=1.

K can be larger than one, if the x/sinx spectrum to be whitened comes from a
transversal filter sampled with hold, with less than NechSymb samples per
symbol.

Sinx being null for x = , the whitening function is calculated only for
x < 0.9975 , and the last computed value is maintained for larger values
of x.




                             Transversal filter

A transversal filter output sample is obtained by addition to the input
central sample a weighted sum of:
-   Nc input signal leading samples,
-   Nc input signal delayed samples.

Nc being the specified number of coefficients, the filter comprises a
central coefficient equal to 1, Nc upstream coefficients and Nc downstream
coefficients.

If upstream coefficients and downstream coefficients are the same, the filter
has a zero phase shift and null group delay.

The same filtering is done on A() and B() signals. There is no coupling from
A() to B() and from B() to A(), as in transversal filters of the
"Auto-adaptative equalizer" module.



The number of samples per symbol Nss must be specified:
The time T/Nss represents,
- the delay between two delay line taps of an analog transversal filter,
- the sampling period in a digital transversal filter.

The coefficients values can come from,

- calculation of a raised cosine filter impulse response, truncated to
   Nc/Nss symbols.
  If Nc = Nss x Ns / 2 is entered, the impulse response is not truncated,
  and theoretical performances are obtained.
- an ASCII file.

Varying Nc allows to evaluate the performance degradation due to a too small
number of samples of impulse response.

In both cases, coefficients can be quantized with 2^NbBit equidistant
values, from -1 to +1, NbBit being the specified number of bits.
Varying NbBit allows to evaluate the performance degradation due to a too
rough quantization (digital filter).
The input signal of a reception digital filter, or the output signal of a
transmission digital filter can also be quantized by a "ModuleQuant" module
put, respectively, upstream or downstream of filter.

The transfer function is periodic, with a Nss/T period.

At filter output,
- the filter temporal periodicity is always Tm,
- the filter frequential periodicity remains Fm if the filter is analog, and
  reduces to Fm/(NechSymb/Nss) if the filter is digital because, in the last
  case, only one temporal sample every NechSymb/Nss is present.

If Nss<NechSymb, two complementary filters must be used:

- a first one, before the transversal filter, if the signal bandwidth is
  larger than Nss/T (sampling theorem).
  In practice, the purpose of this filter is:
  - at the transmit part, to limit the modulator output spectrum at Nss/T,
  - at the receive part, to avoid a perturbation by adjacent channels, if
    present.
- a second one, after the transversal filter, to erase the undesirable signal
  spectrum periods, except if the transversal filter is analog.
  In practice, the purpose of this filter is:
  - at the transmit part, to avoid saturation of the power amplifier and
    overlapping adjacent channel spectrum, if present,
  - at the receive part, to apply to the receiver only the central period of
    the signal spectrum, rebuilding the lacking temporal samples.


The bandwidth of these filters must be:
- sufficiently small to eliminate undesirable spectrum periods,
- sufficiently large not to distort the signal.
The required bandwidth is as large (easier filter implementation) as the
specified number of samples per symbol is large.

In case of a digital transversal filter, a holding sampler can be represented
by an additional sinX/X transfer function, with X = fT/Nss.

If this module is used, the "Arrays" choice at screen #1 is mandatory.

                              All-pass network

This module simulates a one pole all-pass LC network, as used in equipments
to equalize the group delay of a filtering chain. To simulate a real
equalizer using several one pole networks, insert several modules in series
in the canal.
Three types can be chosen:
- in RF, symmetrical,
- in RF, dissymmetrical (network implemented in intermediate frequency),
- in baseband.
In the two first cases, the user must enter the difference, named "Untuning"
  at the third line of the menu, between the network tuning frequency and
  the simulated central frequency.
  In the first case, frequencies are supposed to be very high, in the second
  case the user must enter the network tuning frequency at the fourth line of
  the menu, and the ratio N/Ns must be small enough in order that half
  the sampled band be less than the network tuning frequency.
  This type of distinction can also be found in the "Computed filter" module.



In the third case, the "Untuning" does not mean anything, the user must enter
the baseband tuning frequency at the fourth line of the menu.
This fourth line is also used to specify the tuning frequency of a RF
dissymetrical network.

At the second line of the menu, the user must enter the RF bandwidth over
which the phase-shift variation is 90, a convenient way to normalize the
network selectivity. See in the User's guide how to relate this bandwidth
to the physical circuit L and C elements.

The fifth line of the menu concerns the choice 'GD0' and 'WITH_GD', common
to all filtering modules in RADIOSIM.







                            Subsidiary filtering

Module coming in complement of other filters, simulating (frequency domain)
in basebanb (bb) or in high frequency, after modulation (rf):

   - a linear or quadratic variation of amplitude/frequency or GD/frequency
     characteristics,
   - a same attenuation and/or phase-shift of every signal samples.

For linear variations of amplitude or GD, and for a signal phase-shift, the
result depends on the bb/rf choice.

Using two 90 phase-shifts in baseband allows, for instance, to build a SSB
modulator.

As for other filters, this filter can be visualized, and included in noise
bandwidth calculation.



                         Equivalent noise bandwidth

This module is not directly accessible by the user.

Seven types of filtering modules can be designated as included in the
receiver, to be taken into account in the noise bandwidth calculation.

At the first filter so designated in the canal, the square of the module of
the transfer function is saved in a N records file named NBW, in the repertory
of temporary files. For the following filters, every file record is multiplied
by the square of the module of the transfer function.

This file is initiated at every passage in the canal. The computation of the
noise bandwidth is made in the "Coherent demodulation" module.






                               Two rays model

The two rays radio-electric transmission model is employed to characterize
the performances of digital links in presence of a selective fading.
Only the first ray is present without fading.
The second ray is characterized by:

- the ratio Ro of its amplitude to that of the first ray, always positive
  and inferior to 1 in the used model,
- its relative delay Tau, positive in case of minimum phase fading and
  negative in case of non minimum phase fading,
- and the difference from central frequency of the most near notch of the
  amplitude/frequency response (periodic response, with period 1/Tau);
  this difference depends on the phase-shift between rays.

It is possible to calculate the so called "signature" for a given notch
frequency: a "Loop" module varies Ro in a specified range and displays the
RMS error result given by a "Coherent demodulation" module placed after the
"Two rays model" module.


Characterizing the signature by BER is not wise, because the pseudo-random
sequence length is generally too small to compute accurately, by direct
simulation, the BER due only to intersymbol distortion.

Inversely, it would be necessary to know the distribution law of RMS error
amplitude to derive exactly the BER from it.

As for other filters, to centre symbols on sample #0, the central frequency GD
must be subtracted from GD. However, this module being generally associated
with a "Auto-adaptative equalizer" module, the variations of GD in the signal
bandwidth can be very large.
For this reason, the subtracted GD is not the central frequency GD, but the
mean GD value in the Nyquist bandwidth.

The two rays model describing a phenomenum occurring upstream the receiver
antenna, must not be included in calculation of the receiver equivalent noise
bandwidth.


                         Auto-adaptative equalizer

This module must be placed before a "Coherent demodulation" module, or
at the canal end, if the purpose is only to draw a signature.
Equalized linear distortions must come from preceding filters and/or from a
"Two rays model" placed just before.
The simulated equalizer is:
- linear : no decision is taken in the loop,
- synchronous, delays being multiples of T.
LINE #1 OF THE MENU
   An equalizer equipped with N1 upstream taps and N2 downstream taps
   comprises N1 + N2 + 1 complex coefficients indexed i:
   i =  -N1 ... 0 ... N2. First, all coefficients are nulled, except the
   real part of the central coefficient.
LINE #2 OF THE MENU
   Two structures can be chosen:
   -  transversal, leading and following signals being added without any
      loop,
   -  or transversal for the upstream part and recursive for the downstream
      part.
LINE #3 OF THE MENU
   The algorithm used for the ith coefficient is:
   Coef = Coef - Eps (SGN(Ai) * ErrA - Sgn(Bi) * ErrB) for the direct path,
   Coef = Coef - Eps (SGN(Ai) * ErrB + Sgn(Bi) * ErrA) for the quadrature
   path.
   The central coefficient central (i=0) multiplies the signal by a complex
   coefficient, simulating AGC and APC (carrier recovery).
   For i<>0, Ai+jBi is,
   - either the upstream equalizer signal (options A1 or N1: MMSE),
   - or the downstream equalizer signal (options A2 or N2: Zero Forcing),
   at a time preceding of i symbols the time of evaluation of errors ErrA
   and ErrB.
   For A1 or A2 options, the program supposes that errors are evaluated in
   analog way (or digital, but with many quantizing steps).
   For N1 or N2 options, errors are replaced by their sign, the
   incrementation step of coefficients Eps being reduced in order to avoid
   a too large residual oscillation of coefficients.
   If errors are not quantized, Eps can be set larger.
   A small Eps value leads to a slower equalizer convergence.
   The equalizer can diverge if Eps is either too small or too large.
LINE #4 OF THE MENU
   Coefficients are refreshed at every symbol, in order to make the central
   sample of symbol the most close of:
   - either the constellation nearest nominal state (ESTIM), simulating the
     operating conditions,
   - or the transmitted state, at modulator output (REAL), to speed
     convergence. Doing so, the case where a learning sequence, known by
     the receiver, is sent before any transmitted sequence, is simulated.
LINE #5 OF THE MENU
   At this line, the user specifies the incrementation steps:
   - Eps, incrementation step of coefficients (see above),
   - the incrementation step, in decibel, of the selectivity (the quantity
     -20 log (1-Ro) is named selectivity, Ro being the relative amplitude
     of the second ray),
   - the incrementation step, in time units, of the characteristic
     sampling time To.
   The incrementation of Eps is performed automatically by the program.
   Incrementations of selectivity and To are controlled manually by the
   users, during computation, between two phases of convergence of the
   equalizer. The incrementation of To has generally a small impact.
LINE #6 OF THE MENU
   The user must specify, in number of FFT frames, the total time allowed
   to convergence.
LINE #7 OF THE MENU
   For AM and QAM modulations, the coefficient refreshing can be restricted
   only to the case in which the estimated or transmitted symbol is located
   on the constellation periphery, sometimes easing the convergence.

Convergence (or divergence) is shown by:
- displaying the constellation,
- periodically computing RMS error,
- displaying the progression of coefficient values.

At the beginning of computation, a level recovery (AGC) and a phase recovery
(modulo , /2 or /n as a function of the modulation type) are applied to
the distorted signal, to initiate the central coefficient.
Later, this job is done at every symbol by the equalizer algorithm.
The equalizer input signal is periodic, with a Ns symbols period. Several
periods can be required to acquire convergence. If distortion is too severe,
it is better to choose a high Ns value.
If the canal is linear, two samples per symbol (N = 2 Ns) are enough.
It is better to choose the highest possible value of Ns, hence of N. As
opposed to other modules, the computation time is quasi proportional to Ns
not to N.

LINE #8 OF THE MENU

   1) Case of option "NO"
   In case of equalization of a selective fading, simulated by a "Two rays
   model", the user can:
   - progressively increase the value Ro of the perturbating ray, between
     two convergence phases of the equalizer, to determine the "signature"
     in Holding mode (the equalizer coefficients are not reinitiated
     between two following convergence periods. Moreover, if the
     selectivity is decreased, following a divergence period, coefficients
     take again the values obtained after the last but one period which,
     generally, was convergent).

   - he also can determine the signature in "acquisition" mode, modifying
     the selectivity in the menu of the "Two rays model" module.
   In both cases, the signature limit is defined by a given value of the
   RMS error. The RMS error increases very rapidly in the vicinity of the
   signature edges.
   2) Case of options "Acquisition" or Hold"
   The selectivity -20 log (1-Ro) at signature edge can be obtained
   automatically, with both options "Acquisition" and "Hold".
   - with the "Acquisition" option, the program increment the selectivity by
     dichotomy (see User's guide). At every trial, the coefficients are
     reinitiated at the value obtained after the initial level and phase
     recovery process described above. The initial (positive)
     incrementation step equals eight times the step specified at line #5.
     As soon as a divergence phase is found, the step is divided by two,
     until the initial step specified in line #5 is obtained again. So,
     this steps set the computation accuracy of the signature.
   - with the "Hold" option", the selectivity in incremented by positive
     steps equal to the step specified line #5. The convergence is faster
     with this option.
   The step specified line #5 must be as small as the number of levels per
   modulation axis is high.

   If the canal is terminated by a "Loop" module incrementing the notch
   frequency, the full signature drawing is obtained.

   As it is possible that the selectivity on signature edges be infinite
   (Ro=1), the user is asked to enter a maximum value to be tested
   RoLogMax. The computing accuracy is the half of the minimum
   incrementation step of the selectivity, equal to the manual
   incrementation step of selectivity entered at line #5 of the menu.

LINE #9 OF THE MENU
   Choice of the rms error at signature edge, and of the maximum signature
   value.
LINE #10 OF THE MENU
   An auto-adaptive equaliser considerably increses the receiver
   equivalent noise bandwidth.

The simulated equalizer works only for AM, QAM (non offset) and PSK (normal
and K_2K type) modulations.


                                    Feeder

This module allows to simulate the influence of a feeder (f.i. transmission
line between equipments and antenna) on the transmitted signal.
The following parameters must be specified:
- the type of feeder, coaxial (non dispersive line) or waveguide,
- the feeder length, in meters,
- the loss, in decibels per meter,
- the return losses at the feeder ends, in decibels,
- if coaxial: the propagation velocity,
- if waveguide: the cut-off frequency and the central (carrier) frequency.

The feeder's one way time delay Tau (1 x feeder length / propagation velocity)
is removed from the module transfer function, because it has no influence on
signal distortions.

The sum of return losses is supposed to be high. So, only one parasitic
echo with delay 2 Tau is considered, echos with delay 4 Tau, 6 Tau are
neglected.

The feeder transfer function shows periodic oscillations: the couple N/Ns
must be such as dF is smaller than the frequency period of those
oscillations, if not a stroboscopic effect appears. This period is displayed
in the "Feeder" module menu.


The menu asks to enter the difference between:
- the central frequency.
- the frequency of the minimum of the amplitude/frequency characteristic the
  nearest from the central frequency
Most often, the feeder is long enough in order that several periods stay in
the Nyquist bandwidth, then this difference has no influence on BER.








                               Quantization

Two parameters Dyn (dynamic) and k (number of quantizing bits, preceded or
not by a zero, f.i. "08" instead of "8"), must be specified.

At the module input, the signal dynamic is limited from -Dyn to +Dyn.

At the module output, the signal is quantized at levels separated by
Step = 2 Dyn / (2^k - 1), and takes:
   2^k values between  Dyn if "k" is entered (no zero quantized level),
   2^k -1 values between Dyn - Step/2 and -Dyn + Step/2 if "0k" is entered.

Note: Without any interference, the signal dynamic is, respectively, 1 or
0.707 if one or two carrier axis are modulated. An entered dynamic equal to
twice this value is generally enough to take into account filtering
overshoots.

Caution : if the signal is sampled with less than NechSymb samples per
symbol, as it is the case at the output of a "Digital modulator" module
arranged in "Flat spectrum" (Dirac pulses), the dynamic is higher.
                               Butler matrix

This module applies the concept of Butler matrix to the power amplification
of a satellite repeater.

A Butler matrix of order n (4, 8, 16, etc.) comprises n inputs, n outputs,
and a set of hybrid 3 dB couplers and phase-shifters.
For a Butler matrix, the attenuation between input #i (from 0 to n-1) and
output #j (from 0 to n-1) is 10 log(n), and the phase-shift is 2ij/n.
The second matrix has opposite phase-shifts.
A set constituted by n amplifiers inserted between two Butler matrix has the
following properties:
-The input signal of the upstream matrix input #K goes across all the
 amplifiers but is only present at the downstream matrix output #K,
-For a wise disposition of input signal frequencies, the intermodulation
 products at frequency Fi are found at a different output that the signal of
 the same frequency Fi, and so can be eliminated by filtering,
-The global output power of the n amplifiers can be shared between one or
 several signals, in a flexible way.


See "The Butler matrix transponder", W.A.Sandrin, BSTJ Vol 4, Nb 2,
Fall 1974, page 340

The n signals to be amplified, of monocarrier or multicarrier type, must be
saved beforehand in n separate files.

Two "Butler matrix" modules must be put in the canal:

Upstream matrix (upstream TWTs)
---------------
This first module calculates the signals present at the outputs of the n TWT,
and saves them in files.
The n input signals are read, phase-shifted by the value given in the above
article (value depending on both input and output), attenuated by 10 log n dB,
voltage summed, amplified by the TWT, and saved in n different files.
Nota: for n = 16, 32 files are used. If N = 4096, the storage capacity must
be larger than 32 * 2 * N * 8 = 2 Megabytes.



Downstream matrix
-----------------
The calculation is similar, except there is no more any TWT. The
calculation is performed for only one output, without any saving process.

The set of both matrix is optimum in the Sandrin sense, if the signal
frequencies of the upstream matrix are in the order given at page 326 of
the above article (accesses are numbered from 0 to n-1 in the program, and
from 1 to n in the article).

Levels
------
If the input signals of the upstream matrix are unmodulated carriers, and if
their level is 0 dB ( A(i)^2 + B(i)^2 = 1 ), the TWTs work with an input
multicarrier back-off equal to the value of their input attenuator.
If Dec is the multicarrier output back-off, the input signal of upstream
matrix input #j can be found at each upstream matrix output with a level
-Dec -10 log n, and at downstream matrix output #j with a -Dec dB level.


If the input signals of the upstream matrix are the sum of m carriers with the
same 0 dB level, they must be attenuated by 10 log m before saving in order
that TWTs work with a multicarrier input backoff equal to the value of their
input attenuator.

One of the components of the signal at upstream matrix input #j can be
found at downstream matrix output #j with a level a few less than
-Dec -10 log m dB.

If "Coherent demodulation" and "Bit Error Rate" modules are following, a
degradation near 10 log m + Dec will occur.








                            Frequency modulator

The instantaneous frequency of the output signal of this module is
proportional to the input baseband signal amplitude.
The input baseband signal is held by array A(), B() being void.
The output signal is held by A()+jB().

Must be specified:

- the modulation sensitivity, in frequency units per Volt,
- the coupling mode, DC or AC, for transmitting or not transmitting the DC
  component of the input baseband signal,
- if DC, the input level corresponding to the central frequency (if AC, this
  level is the mean level of the input signal).

Unlike "Digital modulator" module, this module must not be placed at the
beginning of a canal. The baseband signal applied to its input is created
by another upstream module, for instance "Sine and DC steps", which sets
the sampling parameters dT and dF.



If the FM modulator is used to create a digital FSK modulation (then the
first module "Digital modulator" acts as a baseband signal generator, and
sets Mo$ to "AM"),
- a NPhase modulation is created, NPhase being equal to the number of levels
  NNiv entered in the first module,
- the modulation has a constant envelope of type "LIN" if the first module
  is set in "SINX/X" or has the K_2K type if the first module is set in
  "FLAT" spectrum,
- the user must specify the type of demodulation used further (fourth line of
  the menu):
  1) If the downstream demodulation is made by a phase discriminator,
     in a differential or coherent way, two adjacent phases must differ by
     2/NPhase, then the modulator slope must be set manually to:
     Symbol rate * (NNiv-1)/2/NNiv   (Frequency unit/Volt).
     In this case, the module modifies the modulation type Mo$ and the set of
     transmitted symbols Symb%(), used by downstream "Coherent demodulation"
     or "Differential demodulation" modules, to compute the BER.



  2) If demodulation is performed by by a frequency demodulator, the
     modulation slope may take any value. Mo$ remains set to "AM". The
     "Frequency demodulator" module must be followed by a "Coherent
     demodulation" module in which the call to the Erfc() function must be
     cancelled (nominal BER set to 999). Then the purpose of this last module
     reduces to counting errors.


WARNING: Do not use a RANDom sequence. Only PSEUdo-random sequences issued
from the "Digital modulator" module, with two or more levels, have a zero
mean. It is not the case for random sequences, so the "Frequency modulator"
module would perform automatically a level adjustment, unsuitable to this
type of use (see User's guide).





                           Frequency demodulator

The output signal amplitude of this module is proportional to the
instantaneous frequency of the input signal, the slope in Volt/MHz being the
inverse of the upstream frequency modulator slope.

The input signal is represented by A()+jB().
The output baseband signal is held by the A() array; the B() array is void .

The restoration of the output signal DC component has not been deemed to be
necessary, because this component has no effect on following modules
(baseband filters) eventually placed downstream. Therefore, there is a
direct proportionality between:
- the output signal amplitude and
- the difference between the instantaneous frequency of the input signal and
  the central frequency.




                             Sine and DC steps


This module generates a sinusoidal signal superimposed to DC steps, as in the
test signal used to measure differential gain and differential phase.

It must be placed at the beginning of the canal, and sets the sampling
parameters dT and dF.

The number of sine periods per step must be an integer, power of two.

The choice of parameters (number of steps, number of sine periods per step,
sine frequency and N) must lead to a sampled band much larger than
the signal spectrum bandwidth (Carson bandwidth). The Carson bandwidth
depends upon the sine frequency and the frequency deviation.

To help the choice of parameters, the sampled band is displayed at the
end of every entry screen.


                           Differential gain/phase

In this module, a graphic displays the differential gain and the differential
phase of the sine signal transmitted by module "Sine and DC steps",
necessarily present upstream, the parameters of which being memorized.

The calculation of differential gain and differential phase is performed for
every sine period, and the result is displayed by a point. Points located on
both sides of a transition between DC steps are not displayed (F6 links or
not the points with a straight line).

The points located on a same DC step should have the same ordinate. This
property allows to check the validity of results. Particularly, alignment is
bad if the sampled band is too narrow.

The differential phase is displayed after subtracting the mean phase at the
middle of DC steps.

Take care to the synchronism of transmit/receive signals: all filters must
have the "GD0" parameter.  See User's guide.
                               Pre/deemphasis

The "Pre/deemphasis" module is intended to be placed upstream a frequency
modulator, and downstream a frequency demodulator.
The parameters of the 625 lines TV CCIR network are offered as default
(11 dB attenuation at low frequencies, 3 dB gain at high frequencies for the
preemphasis network).

Note: If the frequency deviation is specified at low frequencies, as it is
      usual in satellite transmission, the value to enter in the
      "Frequency modulator" module entry screen must be increased by 11 dB.









                        Interference Reduction Factor

This module computes the IRF (Interference Reduction Factor), namely the
ratio of the two following powers:

- power of the modulated signal at the output of receiver filter(s),
- power of the same signal, at the same point, when the signal spectrum is
  frequency shifted by a specified amount.

The IRF module must be placed two times in the canal, upstream and downstream
the receiver filter(s).
The signal goes one time across the first module, and two times across the
receiver filter(s) and across the second module.

Before frequency shifting, the signal is saved in a file named IRF, placed
in the repertory of temporary files. The file size is about 16 N bytes.

See User's guide section "ModuleIRF" for more details.


                                Interferences

This module places in the vicinity of the modulated signal band one or
several interferers, modulated at the same bit rate, and with the same
modulation type.
Each interferer is obtained by shifting the main signal in frequency and
in time (for decorrelation), and eventually by changing the level.
The maximum decorrelation is got for half the FFT frame duration Tm (Tm is
displayed by the "Digital modulator" module). So, it is a good idea to enter
shifts multiple of Tm/(K+1), K being the number of interferers.

All signals are voltage added.

If the following module is a non-linear amplifier ("TWT" module), the input
multicarrier backoff is zero dB if the input attenuator is set to 10 log(K) dB
minus the difference between peak power and mean power.

If K is not too high, the interferers characteristics can be entered by hand,
separated by commas, other wise it is necessary to write a .PER file with
the utility program FIL_TWT.EXE.
                                   Power K

This module sets the signal to its Kth power, in time domain. The module is
set to its Kth or (1/K)th power, the phase is multiplied or divided by K.
The variation of the instantaneous frequency, derivative of the phase, is
modified in the same ratio.
K must be an integer, power of two.

For a phase division by K, the 2/K ambiguity is resolved by choosing,
among K samples, the nearest one from the previous sample.

With sampling (third line of menu), only are taken into account the central
samples of symbols, with number 0, NechSymb, 2 NechSymb, etc., other
samples are nulled.

With limitation, the output module of all samples is set to one.

Without limitation, the module is set to its power:
- K in case of multiplication,
- 1/K in case of division, that has no physical meaning.

If you want to simulate a carrier recovery by multiplication/filtering/
division, choose "Limitation" for the phase division in order not to
modify the signal level in the "Coherent demodulation" module (the "Stock"
module, set in "READ/" or "WRITE/" being used to simulate the return to
baseband, see User's guide chapter "The Fresnel representation").














                                Gaussian noise

This module adds a gaussian noise to every signal sample, in time domain.
You must enter the wanted C/N and the RF band b in which the noise is
defined.
C is the reference level.
Hence, the rms noise voltage on each axis is 10 log (C/N) - 10 log (N*dF/b)
lower than 0.707 (Fm=N*dF is the frame bandwidth).

Recall:
In digital modulation, the signal power is 0 dB at a modulation peak, at
the output of "Digital modulator" module.
In FM, at the output of a "FM modulator" module, the signal power is 0 dB.

On each axis, the gaussian noise is obtained by the BASIC instruction RND,
which supplies a sequence with a uniform distribution between 0 and 1.
The logarithm of the terms of this sequence has a Rayleigh distribution.
A gaussian distribution is obtained multiplying this logarithm by the cosine
of an angle uniformly distributed between 0 and  (other call of RND),


If you choose "NO" reinitiation, the pseudo-random sequence issued from
the instruction RND is scrambled at every passage in the module, in order to
allow to perform the mean of several results (f.i. using a "Loop" module).
If you choose "YES", the result will be the same from one computation to
another.














                         Multicarrier amplification

This module computes the level of the intermodulation products created when
several sine carriers with frequencies fi, fj, fk etc. are amplified in a
unique non-linear RF amplifier (TWT).

    Ŀ
      The carriers must be uncorrelated, unmodulated, and their  
      frequencies must be a multiple of a same elementary step.  
    

The carrier frequencies and levels at the TWT input are set by the user
(they can also be specified at the TWT output).
A Help page gives details on the edit process.

The corresponding list is saved in a file with a .MCR extension, to ease the
entering process in further sessions.

The carriers are sorted in groups with a same level and a same frequency
spacing (a group may include only one carrier).
The number of groups is limited to 100.

A given frequency is not allowed to be present in several groups; if it the
case, the program displays a warning message.

Only are considered the third and fifth order products. The frequencies of
even order products are very far from the carrier frequencies, so they can
be eliminated by filters. Also products with frequencies 3fi, 5fi, 4fi-fj,
etc. can be filtered.

So, only are considered terms in:
3rd order:
 2fi-fj  fi+fj-fk
5th order:
 3fi-2fj  3fi-fj-fk  fi+2fj-2fk  fi+fj+fk-2fl  fi+2fj-fk-fl  fi+fj+fk-fl-fm

Most often, computation of the 3rd order is enough, speeding computation
and simplifing the presentation of results, the counterpart being an error
near one decibel.


The third order intermodulation products are included within a bandwidth
three times larger than the bandwidth occupied by the carriers, the fifth
order products in a band five times larger.

Carriers are supposed to have uncorrelated frequencies and phases (coming
from different stations and/or oscillators): if several intermodulation
products appear at the same frequency (for instance fi+fj-fk = 2fl-fm, the
program adds them in power.


In general, the "Multicarrier amplification" module is the first one in the
canal, alone.

The non-linearity can be specified in two ways:

1) it can be described by a .TWT file giving amplitude/amplitude and
   phaseshift/amplitude curves, or a .LIN file if the TWT has been
   linearised during a previous session (if not, insert a "Linearizer" module
   before the "Multicarrier amplification" module.

   Nota: in case of a linearized amplifier, the fifth order products cannot
   be neglected.

   The TWT monocarrier characteristic Z(r), complex amplitude of the
   fundamental output signal as a function of r, imput signal amplitude, is
   given in a discontinuous way by the .TWT or .LIN file. This data is
   converted in a continuous function by a development in Fourier Bessel
   series (see User's guide).
   The number of terms of the development is fixed by the user (about 10).
   As a verification, the program displays the differences, in percents,
   between the continuous and discontinuous functions, for every file
   record (differences minimized by the program), and also for the
   intermediate points obtained by linear interpolation between the file
   records, those last differences generally being larger, especially for the
   point just below the maximum level.
   If needed, modifying the number of terms in the development allows to
   minimize those differences.

   If output levels are specified, the program tries in turn several input
   level sets, in order to get those output levels. If those levels are too
   high, a message appears on the screen.
   If too high input levels are specified, no message appears.

2) If amplitude/amplitude and phaseshift/amplitude curves are not available,
   the non-linearity can be more simply specified by the third order
   intercept point.
   Recall on the third order intercept point definition:
   Two sinusoidal carriers with the same level are applied at the non-linear
   quadripole input, the global output level being very far below the
   saturation level.
   A graphic comprising two straight lines is drawn, giving, in logarithmic
   units:
   - in abscissas the input level of one carrier, or the global input level
     of both carriers,
   - in ordinates the output level of one carrier, and the output level of one
     2Fi-Fj intermodulation product.
   In quasi linear operation, two straight lines are obtained, with slopes
   1dB/dB and 3dB/dB. The interception point is the ordinate of the two lines
   intersection.

   Order of magnitude of the third order interception point:
   - for a TWT: 3 dB above the saturation level.
   - for a FET Asga amplifier: 9 dB above the 1 dB compression point.
   - for a Shottky diodes mixer: 3 dB below the local oscillator level.

   If the non-linearity is specified by the third order interception point,
   levels must mandatorily be specified at the input, and the fifth order
   products cannot be computed.











                               Predistorter

The purpose of a linearizer is to make the output amplitude/ input amplitude
curve of an amplifier more linear, and to make the phaseshift / input
amplitude curve more constant.
Those curves are defined in a sinusoidal mode: when speaking about the output
amplitude, more exactly the amplitude of the fundamental output signal is
meant.
This module simulates a linearizer using a predistorsion method.
The block diagram is as follows:

                           Ŀ
  Ŀ  Ŀ Ĵ  Linear path (atten.)   Ŀ  Ŀ
 ĴAtt.Ĵ3 dB couplerĴ Ĵ Ĵ3 dB coupler
     Ĵ  non-linear path          
                           

The non-linear quadripole to be linearized ("TWT" module) is inserted after
the linearizer, on the right side of the above diagram.

The user must specify the absolute level (in dBm, at the input of the first
3 dB coupler in the block diagram) corresponding  to the RADIOSIM 0 dB level.
The program manages in such a way as the output level of module "Predistorter"
is 0 dB if the level on the RIGHT of the attenuator Att. is 0 dB,
whatever the parameters of the linear and non linear paths are.

Consequently, for a 0 dB linearizer input level (at the left of the "Att."
attenuator) , the "TWT" module output level will be 0 dB if:
- the attenuator "Att." is set to 0 dB,
- the input attenuator of the "TWT" module is set to 0 dB,
- the gain of the modules, if any, inserted between the "Predistorter"
  module and the "TWT" module is 0 dB.

The "Att." attenuator on the left side of the above block diagram, sets the
backoff of the linearized amplifier (Predistorter module +...+ TWT module).
For the simulated predistorter,
- the non linear path includes two diodes and one resistor in parallel (the
  two diodes have opposite conduction sense).
  The diode characteristic  V = (LOG(I / Isat + 1)) * V0 + Rs I  depends on
  three parameters Isat, V0 and Rs (series resistance).
- the linear path includes an attenuator and a phase shifter. More often, the
  phase shifter must give a phase lead.
The predistorter can be implemented in microwave or in intermediate frequency.

The user specifies the .TWT file name, as well as values of the above
parameters:
- Att, attenuation  at the predistorter input,
- Isat, diode saturation current,
- V0, diode voltage,
- Rs, diode series resistance,
- Resistance in parallel with the diodes,
- Absolute input level (in dBm, at the first 3 dB coupler input) leading the
  amplifier at saturation (0 dB level),
- Linear path phaseshift,
- Linear path attenuation.

The user can also specify:
- the number of integration steps dividing a sine period, used to calculate
  the amplitude and the phase of the fundamental of the signal created by
  the diodes. This number must be even. The default value is 10.

- the number of computing iterations (see User's guide). The default value
  is 7.


The module creates two files, with the same structure and same name that TWT:
- a file with a .PRE extension, characterising the predistorter,
- a file with a .LIN extension, characterising the linearised TWT.
For both files, as well as for the .TWT file, a 0 db output level corresponds
to a 0 dB input level.

See the User's guide for more details.

Notes:
Because the level expansion in the predistorter, the .PRE and .LIN files
could include a smaller number of records than the .TWT file.

The characteristics of the .PRE et .LIN files depends neither on the input
attenuator value, nor on the signal upstream the "Predistorter" module.

                        Signal or Filter Results

This module alllows:
- to display, directly or using the "Loop" module,
- or to optimize, using the "Minimax" module,
some characterising values of the signal or filter(s), at a given point of
the canal.

The maximum number of values (results) is 16.

The user must specify the 0<n16 corresponding times or frequencies and,
as in the "Graphics" module, select either the signal or filter(s), the
A() or B() component, and the coordinates type R P or PL.

For filters, also the group delay can be selected.
For filters, only the frequency domain is allowed: if results concerning a
filter impulse response must be obtained, select a single pulse in the
"Digital modulator" module menu, and specify convenient results of the signal
at the filter output.


In the same way as the "Multicarrier amplification" module, the results of
this module MUST be specified by the user before to run the computation,
unlike the results of other modules, not depending on specific times or
frequencies.

A linear interpolation is performed between the adjacent samples, that is the
reason for which the specified frequency (time) range must be less by  2dF
( 2dT) than Fm (Tm).

For the signal, it is a good idea to set a range less than half Fm or Tm,
in order to lessen the influence of periodicity (for instance, watching the
time reponse to a step impulse).

Several consecutive "Results Signal or Filter" modules can be used to display
more than 16 results, or results with a different type.




                         Analyse of a RLC network

This module analyses any linear network including passive RLC (resistors,
inductors and capacitors), the element values of which being specified in a
file with a .ANA extension. It calculates the transfer function between two
given ports, either at one given frequency or for the N sampled frequencies.
In this last case, the user must specify the central frequency absolute value.

The .ANA file can be edited during a session.
Before edition, the user is recommended to draw the network on a paper sheet,
and to number its nodes from 0 to NbNode (0 is the ground) and its dipoles
from 1 to NbDip.

During edition, a dipole can be deleted, or a new dipole can be added until
NbDip=100.

The program recovers NbNode and NbDip from the file records.



Eventually, losses can be represented:
- specifiying a non null R value,
- and/or specifying the unloaded Q of inductances; in this case, the program
  adds a L Om / Q resistor in series with every inductor.

The user can also simulate a tolerance T on elements values, in percents:
before any calculation, every R L or C value is multiplied by 1 + X T /100,
X being randomly taken in the -1 / 1 range, by means of the RND instruction
of BASIC.

To observe the influence of T, specify a unique calculation frequency and
end the canal by a "Loop module".
If the module is asked to compute the transfer function for all samples, the
same element set is used for every sample.

The calculation principle consists in writing the NbNode node equations (sum
of currents = 0) and the NbDip dipoles equations (such as Vi-Vj = emf-ZI),
and to resolve a system of NbNode+NbDip linear equations. To speed the
computation, only one unknown is calculated: the voltage across the dipole
designated as the output load.
The screen displays, from left to right:

- the dipole number
- a number specifying the type of dipole:
   1  L1 only,               in series with R
   2  C1 only,               in series with R
   3  L1 and C1 in series,   in series with R
   4  L1 and C1 in parallel, in series with R
   5  L1 and C1 in parallel, in series with L2, C2 and R
   6  L1 and C1 in series,   in parallel with C2,
      altogether in series with L2 and R
  See the figure in User's guide for more clearness.

  To simulate a mutual inductance, insert two type 1 following dipoles,
  and type the value M of the mutual inductance in L2 and L'2.
  L2 = L'2 = M   and   M^2 <= L1 L'1   must be verified.

  A negative number must be entered to specify the dipole holding the
  electromotrice force, and the dipole holding the output load.
- the values of L1, C1, L2, C2,
- the value of the series resistance R,
- N1 and N2, numbers of the dipole terminating nodes. N1 and N2 can be
  exchanged, except for dipoles holding the electromotrice force and the
  output load: if there is an inversion, the transfer function phase is
  increased by .

The dipole holding the output load must be placed lower (its number must be
higher) than the dipole holding the electromotrice force, and it must be
connected to the ground (V1=0).

As computation time increases as the third power of Nbnode+Nbdip, a temptation
consists in lessening Nbdip by integrating the electromotrice force in a RLC
dipole, but this is not recommended: if the n resistive loads in a given
n ports large network each constitute a dipole by themselves, the transfer
function between two ports can be calculated modifying only the sign of their
dipole type.

For every dipole type, the program asks that no LC specific element (f.i. L1
and C1 for type #3) is null.


Exceptions: - for type 1, L1 can be null ir R is not null,
            - for all types, L2 can be null.
At edition end, the program performs syntax verifications, and send back to
editor if needed.
If the syntax is correct, the user can, if needed, save the new file with the
former name or a new name.

Note 1: Any network can be represented with types 1 and 2, at detriment of
the computation time which increases as the third power of NbNode+NbDip.

Note 2: In the menu (module's screen #3), you MUST give a .ANA existing file
name. At the moment of saving a new network, you will be proposed this name:
answer NO, and give another name.

A Help file can be called during edition to recall what is said above, and
to precise the action of different keys.






As other filtering modules of RADIOSIM, the central frequency group delay can
be subtracted from the transfer function, and the transfer function can be
taken into account when computing the receiver noise bandwidth; in this case,
take care of the attenuation A (dB) at the central frequency:
This attenuation lessens, in an artificial way, the noise bandwidth: if the
simulated network is placed at the receiver input, a A dB attenuator must be
inserted in the canal to get a correct degradation value.










                            Filter synthesis

This module can be considered as an utility for module "Analyse of a RLC
network". It can be inserted at any point of the canal, and does not modify
neither A()+jB(), nor Pre()+jPim().

Il calculates the elements of a Butterworth or Chebychev lossless filter,
with low-pass, high-pass, band-pass or band-stop type.
The user specifies the number of poles, the bandwidth and, possibly, the
ripple. The program calculates the location of poles, then calculates and
displays the element values.

In case of a high relative bandwidth band-pass or band-stop filter, the
transfer function is geometrically symmetric versus the central frequency Fo.
To get an arithmetical symmetry (only for the entered bandwidth B), enter
SQR[(Fo+B/2)(Fo-B/2)] instead of Fo.

In case of a narrow band band-pass filter, a more suitable structure can be
selected, consisting in capacitively coupled resonators:


- as a link, with a small value, in case of grounded parallel resonators,
  (Pi structure),
- to the ground, with a high value, in case of linking series resonators,
  (Te structure).


To get this special structure, simply enter the common inductance value
of resonators at the last menu's line. If this value is too small (Pi) or too
high (Te), the program displays a warning and fixes the inductance value; in
this case, the terminating resonators are directly connected to terminating
loads.

The user specifies only one terminating load. For Chebychev filters with an
even number of poles, the other terminating resistor has mandatorily a
different value, except for narrow band band-pass filters with the special
structure described above.



                                Return to DOS

This module allows to temporarily come back to DOS, f.i. to visualize a
"LOOP" or "MINIMAX" file, etc.
The return to RADIOSIM is obtained hitting "EXIT".

As RADIOSIM remains loaded in memory, the available memory is rather small:
only those executable programs that fit in this memory size can work (if it
is not the case, DOS displays a warning, but the program can be carried on).
For instance, the EDIT.COM editing program of DOS cannot be used. Instead,
use the "Shareware" LIST.COM.


WARNING: do not change the default repertory, or restore it before hitting
"EXIT", if not the program will fail.

