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(2ãTëf) 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(-2ãFët), 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 ±N±s 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 ±canal±s 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> 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/2±T± 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 Nss0, 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 2ãij/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 ±TWT±s) --------------- 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 ±TWT±s 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