Home
RLE-TR-450-047433
Contents
1. b N ITN I0 bm 011 11 11 N Q8WN1 1 81 QENI 1 11 N QENT 31vnlvA3 b gt NI Liz EE 011 11 11 9 52 to examine at box 1 by setting a subscripted variable LI N to the likelihood of the branch to be tried next In Fig A 2 we draw a distinction between the two kinds of boxes in the word flow diagram by drawing the question boxes as diamonds All questions must be formulated as comparison of two algebraic expressions with the routes leaving the diamond labeled with the appropriate inequality The other boxes where operations are carried out can almost always be formulated in terms of evaluating an algebraic expression and assigning this value to a variable After all the boxes have been numbered a translation to Fortran can be made Each diamond box becomes an IF statement and each of the other boxes will usually be series of assignment statements terminated by a GO TO n statement where n is the number assigned to the next box in the flow diagram The Fortran statements for each box are then written down labeling the first statement with the box number These groups of statements may be written down in any order but following more or less the same order as the flow diagram enables removal of many GO TO statements and the use of the IF statement of one argument since the following statements are those to be executed next Making this translation we obtain the skeleton
2. the metric increments use BACKUP DEPTH IS 256 NODES SAVE LAMBDA 256 The first statement sets Ny and the second statement acts like a Fortran DIMENSION statement except that all references to this table will result in the subscript being taken modulo 256 E Requirements to Collect Statistics few more miscellaneous initialization statements have been added which are concerned with the automatic collection of statistics on the decoding process A histogram of 1 the waiting line 2 the search depth and number of computations on searches and 3 any other variable desired will be collected automatically simply by inserting the proper initialization statement The waiting line histogram is computed by using the statement COMPUTE WAITING LINE 20 where 20 is the ratio of the time for one branch to be received to the time for the decoder to advance or retreat one node in the simulated decoder The search depth and number of compu tations histograms are collected by using the statement COMPUTE SEARCH DEPTH V EXAMPLES TESTS AND CONCLUSIONS A Example Chosen In order to demonstrate the effectiveness of the system a problem was chosen and pro grammed which would exercise most of the system s capabilities The modulation demodulation process tested is that of M 8 orthogonal signals in white Gaussian noise The tree structure is binary one information bit per branch with one use of the channel per branch Therefore the c
3. ized 3 REPORT TITLE Enter the complete report title in ell capital letters Titles in all cases should be unclassified If a meaningful title cannot be selected without classifica tion show title classification in all capitals in parenthesis immediately following the title 4 DESCRIPTIVE NOTES lf appropriate enter the type of report e g interim progress summary annual or final Give the inclusive dates when a specific reporting period is covered 5 AUTHOR S Enter the name s of author s as shown on or in the report Ente last name first name middle initial If military show rank and branch of service The name of the principal author is an absolute minimum requirement 6 REPORT DATE Enter the date of the report as day month year or month year If more than one date appears on the report use date of publication 7a TOTAL NUMBER OF PAGES The tota page count should follow normal pagination procedures Le enter the number of pages containing information 7b NUMBER OF REFERENCES Enter the total number of references cited in the report 8a CONTRACT OR GRANT NUMBER If appropriate enter the applicable number of the contract or grant under which the report was written 8b 8 amp 8d PROJECT NUMBER Enter the appropriate military department identification such as project number subproject number system numbers task number etc 9 ORIGINATOR S REPORT NUMBER S Enter the offi cial report numb
4. In the left half of the second word are the data on the y increment of this branch stored in a form which the display will accept in order to draw a line segment of the appropriate slope In the right half of this word is a pointer to a second branch at this depth in the tree In the right half of the first word the value which must be added to the y position of the first branch to obtain the y position of the second branch is stored The downward chain of pointers continues through all branches at this depth in the tree The last branch has a pointer back to the first branch on the chain thereby closing the loop The left half of the first data word for a branch contains a back pointer which indicates the location of the data for the branch terminating at the beginning of this branch This previous branch is obviously at a depth in the tree one less than the original branch Thus in Fig C 1 f points to c which points to a These backward pointers define the tree Structure of the stored data giving information about how the individual branches are connected 69 1 2 3 YTOTAL Y TOTAL 100 DELTAY DELTAY 100 100 AY VECTOR 100 YTOTAL 200 CPATHY DELTAY 100 CPATH VECTOR 4100 VECTOR 100 VECTOR VECTOR 100 100 VECTOR 100 Fig C 1 List structure of the tree The portion of the tree which is to be displayed is determined by the position of t
5. Security Classification DOCUMENT CONTROL DATA R amp D Security classification of title body of abstract and indexing annotation must be entered when the overall report ia classified Research Laboratory of Electronics M I T nclassified 2b GROUP None 3 REPORT TITLE An Experimental Facility for Sequential Decoding 4 DESCRIPTIVE NOTES Type of report and inclusive dates Technical Repo 5 AUTHOR S Laat name first name initial Niessen Charles W 6 REPORT DATE EPLEMDE 8a CONTRACT OR GRANT NO 9 ORIGINATOR S REPORT NUMBER S Pn NE I Technical Report 450 5 PRoJEC T no 200 14501 831F NSF Grant GP 2495 NIH Grant MH 04737 05 9b SIUE REPORT NO S Any other numbera that may be assigned NASA Grant NsG 334 ESD TDR 65 442 Lincoln Laboratory Q c T PDO Q 6 NA A al IN 4 D 10 AVA ILABILITY LIMITATION NOTICES Qualified requesters may obtain copies of this report from DDC 11 SUPPL EMENTARY NOTES 12 SPONSORING MILITARY ACTIVITY None Joint Services Electronics Program thru USAECOM Fort Monmouth N J 13 ABSTRACT This report describes the system design and implementation of a facility for the experimental study of sequential decoding that may be used at M I T by graduate researchers in communication theory Flexibility and ease of use are the primary requirements of this system Through investigation of the characteristics of sequential decoding and likely problems to be studied led to a sy
6. Symbol Meaning S Shift right one bit I information bit B end of baud P int check bit from parity net P lt int gt Thus the statement SEQUENCE 1 5 S I P4 B 1 P2 means that when called upon to do so the coder is to shift right two places then output the sequence of one information bit followed by a check bit from parity net P1 for baud 1 and the second information bit followed by a check bit from parity net P2 for baud 2 This represents a tree with four branches per node and two bauds per branch The alphabet size for each baud is 4 Note that the number of S s must be at least equal to the number of I s and must be less 44 than or equal to 4 thus allowing trees with up to 24 16 branches per node Any number of SEQUENCE statements may be used so long as the over all total number of I s and P s does not exceed 36 There can be no more than nine B s in any SEQUENCE statement Statements 1 2 and 3 are initialization statements and should be executed only once by placing them at the beginning of the program after the DIMENSION and SAVE statements The CONSTRAINT statement must appear before any use of SEQUENCE When it is desired to use the convolutional coder which has been initialized by these statements statement 4 GENERATE Cint should be used The integer in this statement refers to a particular SEQUENCE statement The effect of the GENERATE statement is to generate the signal numbers on all the branche
7. is of great im portance in the design of a sequential decoder If search in a section of the tree takes too long the buffer memory storing input data will overflow resulting in complete loss of com munications J Savage has studied this problem extensively and has found that for memory less discrete channels the probability that the waiting line exceeds K behaves as o gt 4 for large values of K The number o depends primarily on the ratio R R and is relatively insensitive to machine speed Experimental verification of these ideas has Somewhat limited so it would be useful to collect such statistics for several kinds of channels If we model the sequential decoder as taking T sec either to advance or retreat 1 node and it takes sec for one branch to be received then each time the decoder advances one node the waiting line if nonzero changes by 1 if the decoder backs up one node it changes by 1 We can then sample the waiting line every sec and use these samples to make histogram on the value of the waiting line This can be done automatically with the user re quired only to specify T T At the end of the run the histogram is automatically outputted Data on the behavior of the algorithm during searches are also useful In particular it would be useful to know the distribution of the number of nodes back the algorithm has to search and the distribution of the number of computati
8. the information bit for that branch is shifted into this register which already contains the last v digits describing the path through the tree to this node Then m parity nets form the sum modulo 2 of the bits of the shift register to which the adder is connected This matrix of connections therefore specifies the code The m binary digits generated by the parity nets is an m bit binary number which selects one channel waveform from the set of 219 M signals With this encoding method if an error is made at the receiver which must have a copy of the tree and the assignments made to each branch hopefully the received sequence will not be identical to any of the other paths through the tree but will appear to be closest in some sense to the correct path Now we must define some function for measuring the closeness of the received signals and the allowed message sequences Let us denote the sequence of N received signals by ro ry Possess PN the N information digits of message i by 4 mi i and the 2 corresponding sequence of transmitted waveforms by 8 Suppose we choose Si S15 NER Siy the path through the tree which maximizes Pr r m hence Pr r 8j Ideally then what the receiver should do is compute all 2N of the numbers Pr r 5 and pick the largest But 2N is a very large number if N 250 say and such a huge amount of computation is clearly impractical We must find some other method
9. 4 i lt s 24 e M 01 0 1 01 bud d Also we can see that Pr r is a constant over the ensemble of convolutional codes used in the random coding theorem since all M M 7 ordered lists are equally likely when each of the 5 are equally likely Evaluate M M Pr r p P r s d Dis ai P P r s to check this Therefore the metric becomes P r s leg Mq log Pis R Mq 108 E 2 1 The values of depend the S N ratio and unfortunately are not readily available values needed for this example were obtained from K L Jordan The S N ratio used determines R comp for this Lr now that the other parameters have been fixed From the paper by Wozencraft and Kennedy an SAN ratio J2E N 2 5 represents 29 an Reomp of 1 2 bits baud E is the energy of one baud and N 2 is the double sided noise power spectrum Thus operating at R 1 bit baud represents R w 0 8 Romp The signals used for this test were recorded from a Gaussian noise generator One signal value was given a bias appropriate for the desired S N ratio The sequential decoder described here is the same one used as a programming example in Sec IV of Appendix A Thus the details of the program will not be discussed here B Example of Display The program was compiled assembled and loaded and ran as expected Figures 5 a through 1 show an example of the display generated during a simple search Figu
10. College Attn Secretary Fort Leavenworth Kansas 66270 Dr H Robl Deputy Chief Scientist U S Army Research Office Durham Box CM Duke Station Durham North Carolina 27706 Commanding Officer U S Army Research Office Durham Attn CRD AA IP Richard O Ulsh Box CM Duke Station Durham North Carolina 27706 Superintendent U S Army Military Academy West Point New York 10996 The Walter Reed Institute of Research Walter Reed Medical Center Washington D C 20012 Commanding Officer U S Army Engineer R amp D Laboratory Attn STINFO Branch Fort Belvoir Virginia 22060 Commanding Officer U S Army Electronics R amp D Activity White Sands Missile Range New Mexico 88002 Dr S Benedict Levin Director Institute for Exploratory Research U S Army Electronics Command Attn Mr Robert O Parker Executive Secretary JSTAC AMSEL XL D Fort Monmouth New Jersey 07703 Commanding General U S Army Electronics Command Fort Monmouth New Jersey 07703 Attn AMSEL SC AMSEL RD D HL O RD G HL R RD MAF 1 NL D RD MAT NL A RD GF NL P XL D NL R XL E NL S XL C KL D XL S KL E HL D KL S HL L KL T HL J VL D HL P WL D Department of the Navy Chief of Naval Research Department of the Navy Washington D C 20360 Attn Code 427 Chief Bureau of Ships Department of the Navy Washington D C 20360 Chief Bureau of Weapons Department of the Navy Washington D C 20360 Commanding Officer Office of Nava
11. Include address 13 ABSTRACT Enter an abstract giving a brief and factual summary of the document indicative of the report even though it may also appear elsewhere in the body of the technical re port If additional space is required a continuation sheet shall be attached It is highly desirable that the abstract of classified teports be unclassified Each paragraph of the abstract shall end with indication of the military security classification of the in formation in the paragraph represented as TS S C or U There is no limitation on the length of the abstract How ever the suggested length is from 150 to 225 words 14 KEY WORDS Key words are technically meaningful terma or short phrases that characterize a report and may be used as index entries for cataloging the report Key words must be selccted so that no security classification is required Identi fiers such as equipment model designation trade name military project code name geographic location may be used as key words but will be followed by an indication of technical con text The assignment of links rules end weights is optional UNCLASSIFIED Security Classification
12. Patterson AFB Ohio 45433 Office of Research Analyses Attn Technical Library Branch Holloman AFB New Mexico 88330 Commanding General Atin STEWS WS VT White Sands Missile Range New Mexico 88002 RADC EMLAL 1 Griffiss AFB New York 13442 Attn Documents Library AFCRL CRMXLR AFCRL Research Library Stop 29 L G Hanscom Field Bedford Massachusetts 01731 JOINT SERVICES REPORTS DISTRIBUTION LIST continued Academy Library DFSLB U S Air Force Academy Colorado 80840 FJSRL USAF Academy Colorado 80840 APGC PGBPS 12 Eglin AFB Florida 32542 AFETR Technical Library ETV MU 135 Patrick AFB Florida 32925 AFETR ETLLG 1 STINFO Officer for Library Patrick AFB Florida 32925 ESD ESTI L G Hanscom Field Bedford Massachusetts 01731 AEDC ARO INC Attn Library Documents Arnold AFS Tennessee 37389 European Office of Aerospace Research Shell Building 47 Rue Cantersteen Brussels Belgium Lt Col E P Gaines Jr Chief Electronics Division Directorate of Engineering Sciences Air Force Office of Scientific Research Washington D C 20333 Department of the Army U S Army Research Office Attn Physical Sciences Division 3045 Columbia Pike Arlington Virginia 22204 Research Plans Office U S Army Research Office 3045 Columbia Pike Arlington Virginia 22204 Commanding General U S Army Materiel Command Attn AMCRD RS PE E Washington D C 20315 Commanding General U S Ar
13. as being the ae most likely if it is the p hypothesis on the ordered list of signal numbers for this baud For example if the four hypotheses from an alphabet of 16 were 0 7 3 and 10 and the ordered list of signal numbers of length 8 for this baud was 1 0 3 5 7 12 2 11 then signal number 0 is the most likely signal and is in position 2 on the ordered list 3 is second most likely being in position 3 7 is third most likely being in position 5 and 10 is fourth most likely being in position 9 off the list If not all the hypoth eses are on the ordered list e g only two are on the list then for some values of LI 72 POS will have value 7 1 where 2 is the list length indicating that the hypothesis is off the list Since there may be more than one hypothesis off the list and these hypotheses are all considered equiprobable a random choice is made between them to find the value of INFB This choice is random but repeatable and no other value of LI will yield the same value of INFB Statement 45 XFINDF lt hypothesis gt lt node number baud number is an integer function whose value is the position on the ordered list of signal numbers of the hypothesis the encoded symbol specified by the first argument for the node and baud specified by the second and third arguments If the list length is 7 and the hypothesis is not on the list the value returned is 7 1 Statement 46 XPFINDF Khypothesisy node numb
14. as possible The 22 particular features available in the display program were determined by studying the properties of the process to be investigated Each feature included fulfilled a recognizable need for in formation about a particular aspect of sequential decoding There are several uses for the display feature as a whole First of all it provides an excellent way to debug new algorithms By watching the searches made one can easily deter mine whether the algorithm is performing properly Second it may be used to observe more closely the behavior of an algorithm when the search gets into trouble by getting far off the right path If there is a pattern to these searches a pattern relating to why they leave the correct path it may be possible to use this information to design new algorithms which will perform better Third but by far the best the display feature may be used to gain a better feeling for the behavior of the algorithms The dynamics of the decoding process are something about which people have little appreciation If it is possible to strengthen intuition by observing this display new algorithms may result for channels for which mathematical investigation is dif ficult Alternatively the results obtained from the simulation may point the way to further mathematical investigations C Monitor System Control over the algorithm as it is executed is maintained by monitor system The monitor has some automatic internal
15. channel is used hence there is no gain in increasing the length of the shift register beyond a certain point Experimental work at Lincoln Laboratory has used a constraint length of 60 information bits It would seem that a length of 108 bits which represents three PDP 6 words should be sufficient A way must now be found to provide the coder subroutine The particular way in which the subroutine is implemented also influences features of the coder The brute force way to com pute a check bit would be to have 108 bits to specify a parity net 4 implies connection 0 implies no connection then count up the number of 1 s in the shift register bits to which a connection is specified and see if the total is odd or even This process could be repeated for each check bit Fortunately a better implementation is available by using a table look up method which enables 36 check bits to be formed in the same time it takes to form one and the time to form one check bit is about 1 6 that of the brute force method The subroutine not only computes these 36 check bits for one branch at a node in the tree but actually computes the check bits for all branches at a node simultaneously The coder subroutine arranges these bits any de sired way into groups of upto ten bauds For trees up to 16 branches per node up to 4information bits per branch are allowed The output from the coder is a set of tables one for each baud into which the check bits have been placed i
16. falls below the threshold so must the j 1 etc so there is point in looking at any of these Eventually the coder backs up along the original path to a point which lies below the threshold At this point it has searched all paths leading from this node and has found that they all eventually fall below the threshold The decoder then lowers the threshold to Ti T To and begins to search all these paths again just as if it had never seen any of them before The difference is that this time the decoder will not allow the threshold to be raised again until it arrives at a new node one it has never reached before However it has searched all the paths leading from the current node until they fell below T thus any new node must be one which lies on an extension of these paths at a point below T and of course if it is to be successful above T T Only after the decoder finds one of these new nodes does it allow the thresh old to be raised again when it advances successfully beyond this node This control over the threshold is maintained by means of a flag F in the algorithm It is set to 1 thereby inhibiting the threshold from being raised whenever a path which has been tried fails The flag is cleared to 0 allowing the threshold to be increased as needed when the decoder finds one of the new nodes i e the nodes lying less than To above the current threshold Should all paths even the new ones fall below the new thr
17. halves must be separated by a space When Fortran is finished it will tell if there have been any errors in the program Now type EFTEMP D to enter the machine language program just compiled by FORTRN onto the system tape under the name TEMP and return to MACDMP If there were no errors in the compilation proceed to the assembly If there were errors they must be found as follows and corrected The statements which Fortran refused to parse may be found by use of TECO Type TECOy by y we mean carriage return then 14ERTEMP Y O The machine coded program will appear on the display Now type St and a statement which Fortran could not translate will be found on the line above the blinking pointer Other such statements may be found by typing f Use of MACDMP Memorandum MAC M 248 Project MAC M I T 1 July 1965 59 11 5 Changes must then be made in the original program by use of TECO Once a compilation has been made with no errors the machine coded program may be assembled into a relocatable binary file by while in MACDMP typing MIDASy to load the assembler then 2EMERTEMP A The assembler will type the name of the program twice and then type out the location of the con stants storage area When this typing is completed type EF lt name gt SOD and the binary file will be entered on the user s tape under the name specified Note that this name should be different from the ori
18. interaction possible with the PDP 6 display facility affords a vast im provement over the situation just described Information about the tree search can be displayed visually by constructing a picture of the actual tree through which the algorithm is searching The information about which path the algorithm has taken may be combined with the information about the metric increase for each branch to generate a plot of the tree in which the x dimension represents depth in the tree and the y dimension at a node represents the total of the metric increases along all the branches leading to this node Each branch is entered as a straight line segment whose slope is proportional to the metric increase on that branch Each time the algorithm advances on a new branch the branch is entered on the display As the algorithm backs up its position in the tree is indicated and all the branches it has already searched re main on the display The use of such a display is clearly a solution to the problem posed in Sec I namely how to improve the form of output available from the simulator over that of the printed page Clearly not all of the many thousands of branches searched can be displayed at once As the algorithm advances branches are added to the display and the current position in the tree moves closer to the edge of the display When the current position gets too close to the edge the entire picture of the tree must slide to the left preferably slowly so
19. is not 1 it is expected that the variable given as the first argument of the statement will be doubly subscripted the first subscript having maximum value equal to the second argument of statement 17 For example SAVE HYP 3 256 LABEL PATH HYP 3 The contents of the shift register itself are displayed from right to left across the top of the Screen as binary digits grouped into the number of information bits per branch above the branch to which they correspond which is specified in statement 16 BITS PER BRANCH int number 46 This statement may appear anywhere in the program so that the tree structure may be changed at wil However to do so will cause a temporarily incorrect display of the shift register As the algorithm is executed and the tree search is accomplished the display of the tree Structure changes normally this would be done at computer speed which wouid result in change so rapid the eye could not follow it To slow down this change statements 18 and 19 ENTER BRANCH WAIT are used Both these statements cause a delay for a fixed time before the next statement is executed time for the human eye to react The length of this time is set by the monitor com mand SPEED Statement 18 may be inserted only at a point in the algorithm where an advance through the tree has occurred since the last execution of statement 18 i e after an assignment statement using the argument of statement 13 has been executed
20. is written out on tape as one word and the multiplexer advances to the next S H unit When all M signal values have been written on tape a longitudinal parity word is written on tape and then the equipment is ready to record the next use of the channel If M 1 writing this longitudinal parity word would result in a low data density on the tape since every other word would be a parity word To improve this situation the parity word may be omitted if desired It would be desirable to have a large number of S H units so that large values of M may be used Unfortunately such devices are very expensive so a compromise of ten was chosen Part of the rationale for this decision was that experimental modulation demodulation systems would not be built with more than ten matched filters due to the amount of equipment required Moreover for a narrow bandwidth channel of particular interest the telephone line when fre quency orthogonal pulses are used most of the inner symbol interference results from fre quencies located 5 tones around any frequency of interest so ten output voltages would be sufficient The A D converter has an accuracy of 10 bits 0 1 percent which is more than enough The additional accuracy of the A D converter was obtained at very little extra cost and will make the data acquisition system useful for other purposes such as recording speech The logical design of the digital equipment used for recording was completed as part
21. modification of the Fortran II compiler supplied with the PDP 6 computer by Digital Equipment Corporation This language is described in their manual PDP 6 Programming Manual Fortran Language Other manuals on Fortran are available from IBM but there will be minor differences It is not the purpose of this User s Manual to teach Fortran programming although this knowledge is necessary to some extent in order to use the modified Fortran provided with this system We shall confine this section to a description of the differences between Fortran II as described in the DEC manual and the version used in the sequential decoding system Unless Specifically mentioned all features available in the DEC Fortran are also available in this system Table A 1 is a listing of special statements added to Fortran together with a few variable and subroutine names which have special significance All the entries in this table are discussed in Secs 1 through 5 below It should be noted that the special statements are generally two types initialization statements I and executable statements E The former will be placed near the beginning of the program where they are executed only once the latter may be used as often as needed The entries in Table A 1 for which no type is given are not complete statements they are variable or subroutine names Those entries marked N are nonexecutable statements and must be placed before the I statements in the program Be
22. one with the highest value is that which is a posteriori most likely The algorithm then adds this best Ain to the total metric L and checks to see if this new value of L is at least equal to the current value of the threshold T If so the algorithm accepts this branch and advances along it to the next node The algorithm then increases the threshold by as many increments of To as it can and still keep L gt T This process continues until some best branch has a negative value which causes the total metric to fall below the current value of the threshold When this occurs the algorithm begins to search the tree for a better path Actually the threshold may be violated for two reasons either the decoder was on the right path all the time but a bad period of noise on the channel caused the metric along the right path to fall or the decoder made a wrong turn at some previous node but the error was not detected until now because noise on the channel made the bad path look good The decoder responds to this threshold violation by searching all paths leading from all previously searched nodes which lie above the threshold to see if any of these paths remain above the threshold It does this by backing up one branch at a time without changing the threshold and exploring all other paths leading from this node until each falls below the threshold Note that the decoder does not actually look at all of them if the 3 most likely branch at a node
23. slowly as k increases Along an 1 incorrect path however it should grow negative rapidly observing the behavior of L algorithm can make a decision whether to continue moving forward through the tree or ium to back up and try some other path Just what rules are used to determine when to back up de pend on the details of the particular algorithm In the example discussed above the tree was binary it had two branches stemming from each node because each branch represented one information bit Trees with 2 0 branches per node can be constructed by assigning Ra information bits to each branch Also the assignment may be such that a sequence of u channel symbols is assigned to each branch of the tree instead of just one In addition the restriction to a memoryless channel can be eliminated by changing the tree structure through which the decoder searches In the example discussed above this iree was the same as the tree generated at the transmitter but for a time variant channel the tree structure at the receiver might be changed so that at each node there would be a branch for every combination of information bits and channel state instead of just for every combination of information bits Thus there are many quite different communication problems to which sequential decoding is applicable and all have the common characteristic of being tree search algorithms 2 Example of an Algorithm To clarify later discussions
24. than some number which is characteristic of the channel and the modulation demodulation system used The number Bunn is of course less than channel capacity but for many channels it is a sizable fraction of capacity In contrast the number of computations to decode a branch in a tree using a coder with shift register of length v is exponential in v when all paths in the tree must be searched to depth v v This reduction in the amount of work done to decode N branches is paid for by the fact that the actual number of computations is a random variable Practical considerations require a closer in vestigation of the behavior of this random variable since a receiver must have a finite buffer memory of some sort in which to remember the received data until the decoder is ready for it If the decoding algorithm should take too long in searching a section of the tree the buffer might fill up and there would be no place to store incoming data resulting in complete breakdown of communications The error correction capabilities of the sequential decoder are also of interest It can be shown that the probability that the decoder will make a mistake on an information bit and still succeed in getting back on the right path by getting correct information bits into the shift register without correcting the mistake decreases exponentially with v the same exponential behavior with v long known for block decoding 4 Need for Experimental Stud
25. the insurance that each element of the decoder is flexible enough to handle them Once the capabilities of each part are determined the details of implementing each of them can be studied First of all what are the general types of experiments to be performed Certainly evalua tion of operating characteristics and optimization of parameters in the algorithm will be done for particular algorithms and channels Another more difficult class of problems involves the invention of new decoding techniques for example finding some way to reduce the variability of the number of branches looked at in order to reduce the probability of buffer overflow A further problem of this type would be to find ways to resynchronize the decoder get it back on the right path once buffer overflow has occurred Extending present algorithms so that they will work on a broader class of channels particularly time variant channels will also be im portant As suggested previously this would probably be done by changing the decoding tree Structure and therefore the algorithm to include a hypothesis on the state of the channel as well as on the information bits The experimental facility will also be useful in studying modulation techniques for coding on channels of various types In particular both time variant and time invariant narrow band width channels with a high signal to noise S N ratio need to be studied Also of interest will be wide bandwidth channels with lo
26. the list is of length 4 then C has the value M 4 M since all ordered lists are equally likely over the ensemble of convolu tional codes However if r is considered to be the ordered list of both signal numbers and signal values then Pr r is clearly not the same for all r In both these cases sending the all zero information bit sequence is a sufficient test for experimental purposes When there is only one baud per branch and the probability that a particular channel symbol was sent is a monotonically increasing function of its received signal value the decision of what branch to take is quite easy In this case the jh most likely branch is the Ge hypothesis on the ordered list Therefore if the metric used is a monotonically increasing function of the likelihood of the hypothesis it is possible to select the branch which has the largest metric hypothesis the list subroutine called FIND has been provided to do this It finds the position on the ordered list of the dh hypothesis and also re increase simply by picking the j turns the information bits associated with this hypothesis Once the position is known the signal value can be found and any arbitrary function of list position and signal value may be used for the metric Quite often this function can be implemented as a simple table reference For example if the list were of length 2 and the metric increase was only a function of the position of the hypot
27. to be used and they both insert additional code after N 1 N N 1 which construct the required histograms Statements 33 and 34 SET lt var gt CLEAR var may be used to set and clear flags having any name desired Cleared flags have value 0 and should always be tested against 0 when used in an IF statement Statements 35 and 36 PUSH TO lt statement label POP provide ways to enter and exit internal subroutines If an identical sequence of statements must appear more than one place in program they need not be rewritten every time They should be written out once at some location in the program where they cannot be reached directly e g immediately following GO TO statement terminated with the statement POP and the first statement given a label Then wherever this sequence needs to be used statement 35 should be inserted instead with its argument being the statement label of the start of the statements required The results of this are that PUSH TO has the same effect as GO TO but when POP is executed control returns to the statement right after the PUSH TO Obviously PUSH TO saves the return location in the program on a push down list and then transfers control to the specified statement POP retrieves this information from the push down list and transfers con trol back to the return point Statement 37 GO TO MONITOR transfers control to the monitor system when executed The monitor will type REA
28. x4 to be entered these bits are taken from the low order end of the integer expression presented as a binary number Any number of bits less than or equal to 4 may also be entered at the right end of the shift register by use of statement 8 ENTER SR END lt int gt lt int exp gt The shift register may be shifted right or left up to 4 bits by use of statements 5 and 6 SHIFT LEFT lt int gt SHIFT RIGHT lt int gt The shift register may be cleared to all 0 s by statement 11 SR lt 0 The shift register is actually stored as three computer words of 36 bits each These words may also be directly referenced as the integer variables SR1 SR2 and SR3 4 Display Statements Several statements have been added to control the display All except two are initialization Statements and should be placed at the beginning of the program Statement 13 45 DISPLAY INCREMENTS sub var is used to specify what name has been given to the increments in metric for each branch in the tree It is expected that if this statement is used the name chosen will have appeared in a SAVE statement as a single subscripted variable The name may be either real or integer An example of use of this statement is SAVE LAMBDA 256 BACKUP DEPTH IS 265 NODES DISPLAY INCREMENTS LAMBDA The effect of statement 13 is to insert additional code after every assignment statement involving the variable so named such that each new branch increment is passe
29. 1 and 0 which allow and suppress input output statements respectively When IO 1 is used all further I O statements are ignored 6 Use of Light Pen In addition to changing the display of the ordered list the light pen may be used for two other purposes First the light pen may be used to move the entire display around by touching the light pen to the word MOVE which is displayed on the screen Immediately an 8 pointed star will appear on the screen If the light pen is then touched to one of the tips of this star the entire display of the tree will drift in the direction to which this tip points and will contine to move as long as the light pen is touching the star The speed at which the display drifts is set by the SPEED monitor command The display may be reset to its former position by touching the light pen to the word RESET which will have appeared on the display Second the light pen may be used to intensify one path in the tree Normally the path through the tree which leads to the current position as indicated by a small blob at the node for the present value of is made brighter than all the rest This allows ambiguities of path to be resolved which can be caused by two different paths crossing at a node However other paths which are not intensified may have the same difficulty These paths may be made dis tinguishable by touching the light pen to one of the nodes along one of the paths The path leading from the poi
30. 290 P2 5431 2256 7722 3264 1642 000 SCALE 32 17 13 29 41 64 IDIST C1 IDIST 2 IDISTKS IDIST 4 IDISTC5 7117117 ITS 58 Ne 8 IT 8 Le SR 8 CLEAR FLAG LIC2 e 1 IWLM 188 ISDM e 25 Fig A 4 Complete program 55 RESTART DATA EVERY 5000 NODES IS L IT FLAG TABLES LI 256 LMBD 256 ISR 256 HYP 256 ICOUNT ICOUNT 1 IF WAITING LINE L IWLM 31 TYPEOUT 51 WAITING LINE FORMAT 17H WAITING LINE IS 17 GO TO MONITOR IF SEARCH DEPTH L ISDM 32 TYPEOUT 52 SEARCH DEPTH FORMAT 17H SEARCH DEPTH IS 15 GO TO MONITOR GENERATE 1 CALL FIND POS J LICN 2 N 8 ISR N SREND ENTER SR 1 J HYP N e GENCJ LT e L LMBD N IDIST POS IF OTHERS E 812 OTHERTC1 e IDISTLXPFINDF GENC N 22 e IDIST XPFINDFCGENC1 N CALL CHANGE Fig A 4 Continued 56 ils END ENTER BRANCH IF LT L IT 11 Ne MN ti IF FLAG 818 IF IT G LT 7 IT IT IT GO TO 5 L LT LICN 1 WAIT GO TO 1 IF IT IT G L 1 IF IT IT LE LT 7 CLEAR FLAG GO To 5 BEGIN SEARCH SET FLAG SHIFT LEFT 1 ENTER SR END Ci SREND IF IN E 21 18 LB e L LMBDCN 1 IF LB L IT 18 N e N 1 SHIFT LEFT i ENTER SR END 1 ISRCN Le LB WAIT IF LICN 2 12 LICN e LICN 1 GO TO 1 IT e IT IT LICN e 1 GO TO 1 Fig A 4 Continued 57 for this branch must be put into
31. 450 s Do ROGUMENT ROOM SO TREE RESEARCH OF Ele a kun es 1 MASSACHUS TE q 3TITUTE GF TCcHINULOGY CAMBRIDGE MASSACHUSETTS 025 89 U S A AN EXPERIMENTAL FACILITY FOR SEQUENTIAL DECODING C W NIESSEN Cy by TECHNICAL REPORT 450 SEPTEMBER 13 1965 MASSACHUSETTS INSTITUTE OF TECHNOLOGY RESEARCH LABORATORY OF ELECTRONICS CAMBRIDGE MASSACHUSETTS The Research Laboratory of Electronics is an interdepartmental laboratory in which faculty members and graduate students from numerous academic departments conduct research The research reported in this document was made possible in part by support extended the Massachusetts Institute of Tech nology Research Laboratory of Electronics by the JOINT SERV ICES ELECTRONICS PROGRAMS U S Army U S Navy and U S Air Force under Contract No DA36 039 AMC 03200 E additional support was received from the National Science Founda tion Grant GP 2495 the National Institutes of Health Grant MH 04737 05 and the National Aeronautics and Space Adminis tration Grants NsG 334 and NsG 496 The research reported in this document was also performed at Lincoln Laboratory a center for research operated by the Massa chusetts Institute of Technology with the support of the United States Air Force under Contract AF 19 628 5167 Reproduction in whole or in part is permitted for any purpose of the United States Government Qua
32. 5M fin sec where M is the alphabet size and is the desired list length It is recom mended that 15 in sec be used at all times however to avoid having to readjust the recorder The tape recorder is connected to the computer through a special I O interface Thirteen coaxial cables are provided and should be connected to the recorder outputs specified by their labels B Use of Ordered List Programs Put the DEC Tape labeled SEQ DECODING SYSTEM on any free drive and set it to number 4 Be sure no other drive is set to number 1 Mount the tape on which the ordered lists are to be written on another drive and set this to number 7 with the switch on WRITE Set the address keys to all 0 s Push STOP IO RESET and READ IN inthis order The system tape should spin and the teletype give a carriage return If this does not happen the paper tape labeled MACDMP must be read inf Type the word INPUT followed by carriage return to load the proper program which will start automatically The program will begin by asking several questions on the teletype Answers should be typed in and terminated by carriage return The questions are 1 ALPHABET SIZE IS 2 DATA BLOCK SIZE IS 3 LONGITUDINAL PARITY 4 LIST LENGTH IS 5 IS MOST PROBABLE SIGNAL POSITIVE 6 ADD TO SIGNAL ZERO THE VALUE 7 ARE YOU READY TO START The answers to most questions are obvious Question 1 asks for the size of the channel alphabet question 2 asks
33. A they differ in the way A may be used in arithmetic expressions later in the program If DIMENSION is used the allowed value of the subscript of A in these arithmetic expressions is confined to lie between 1 and 256 inclusive if SAVE is used the subscript may take on any positive value but is taken modulo 256 before the table is referenced Thus SAVE A 256 sets up a ring buffer of length 256 If the variable name appearing in the SAVE statement has more than one subscript as in SAVE B 10 256 it is understood that in later uses of the variable B in arithmetic expressions the rightmost sub Script will always be taken modulo the number appearing as the rightmost subscript in the SAVE statement 256 for this example The intent is to provide a ring buffer in which data on the current path through the tree may be kept The user may reference these data with a subscript of the node depth and get the correct address The number 256 is suggested as a likely length for the ring buffer since this is more than twice the maximum allowable constraint length of the coder Use of a ring buffer having one dimension of 256 would mean of course that only the data for the 256 nodes adjacent to the current value of N would be stored at any one time The statement COMMON SAVE bears the same relation to SAVE as COMMON does to DIMENSION in normal Fortran The statements SAVE and COMMON SAVE are used only in conjunction with the statement BACKUP DEPTH IS int n
34. As preliminary when we assume that the N successive uses of the channel are statistically independent we may write N Pr r s II Prir s 4 n 1 D D t H 3 D D and instead of maximizing this over 1s maximize TIGHTEN THRESHOLD YES DOES MOVE ORIGINATE OR TERMINATE ON A NODE WHICH 1S F 0 LESS THAN T ABOVE THRESHOLD MOVE FORWARD Y O START 1NODE ES ON worst NO BRANCH LOOK FORWARD ON BEST BRANCH OR THRESHOLD NEXT BEST IF VIOLATED BACK UP ENTERING VIA A 1NODE YES NO NO SET AT LOOK BACK THRESHOLD Fel ORIGIN 1NODE VIOLATED YES YES DECREASE THRESHOLD BY Ty Fig 3 Word flow chart of Fano algorithm Ly log Pr r N X log Eet Sin 1 N gt Ain 2 nz1 In this form we see that the total closeness of fit between the received signal and each path through the tree is the sum of the measures of the closeness of fit Ain for each branch in the tree along the path corresponding to Si It is this form which suggests the possibility of using a tree search algorithm to find the best path through the tree i e the best The receiver will move forward through the tree one branch at a time keeping a running total of the increments Ain along the path leading from the origin to the current position in the tree Ifthe algorithm chooses the correct path this number LG AL should become more negative only
35. DATA AT N Succeeding bauds may be reached by typing Space carriage return t n 1 times where 7 is the list length and n is the baud number 3 Restart Commands The algorithm may be restarted at some previous depth in the tree at points for which re start data have been saved by using the monitor command 63 RESTART AT N with an argument of the desired node number If restart data for this node have been saved the algorithm will restart at the requested point execution of the algorithm begins at the point in the program after the statement RESTART DATA EVERY If restart data are not available for this node the algorithm will be restarted at the next lower value of N for which restart data have been stored The command REPEAT may be used to restart the algorithm at the last value of N for which restart data have been stored Once the algorithm has been restarted at a given value of N a larger value of N may be reached only through normal execution of the algorithm i e the following sequence of commands is illegal RESTART AT N 1000 RESTART AT N 5000 The second command will result in a restart at the same place the first command started since the first command destroys the restart data for all N gt 1000 The command STORE will cause restart data to be stored the next time the statement RESTART DATA is executed in the algorithm 4 Program Modification via DDT The command DDT is
36. DY on the teletype and will stop the execution of the decoding algorithm in the same manner as if the oper ator had typed STOP on the teletype Statement 38 RESTART DATA EVERY int number NODES IS var list is a very important one since it allows the algorithm to be restarted so that a particular part of the tree search may be repeated and it allows the display to be turned off and then turned back on again Data that will allow the algorithm to be restarted are automatically saved each time the algorithm advances the specified number of nodes Data may be stored away for only a finite number of restart points usually about ten The data that the user decides must be stored away to enable the algorithm to be restarted should be put on the variable list which is a sequence of variable names separated by commas The first entry in the variable list must 49 be the name whose value is the total of the branch increments to the current point in the tree It is usually necessary to save several complete tables of information after putting the word TABLES on the variable list the names of these subscripted variables are placed last Each table name must be followed by an entry on the variable list which is the total dimension of the table obtained by multiplying together all the maximum subscripts of the variable as given in the DIMENSION or SAVE statement An example of the correct form would be RESTART DATA EVERY 5000 NODES IS L T
37. Fortran program shown in Fig A 3 Clearly statement labels 2 3 4 6 9 13 14 15 16 17 and 19 are unnecessary since they are never used ina GO TO or an IF however since they do no harm we shall leave them 2 Statements for Metric and Coder Before going further we must specialize the algorithm to a particular tree structure and metric function We will use the example of a binary tree alphabet of 8 ordered list length of 4 metric that is only a function of the position of the hypothesis on the list We shall now add to the skeleton program obtaining the program shown in Fig A 4 The additions will be made by inserting statements according to type rather than by starting at the beginning of the program and working forward The evaluation of the metric increase LMBD takes place at statement 1 in the program and for a given hypothesis consists only of getting a value from a table say IDIST of 4 1 5 entries where the index to be used on the table is the position of the hypothesis on the ordered list If not on the list use 5 as the index We can use the subroutine FIND to get the position POS of the LIN most likely branch When we compute LMBD for a branch we must save this value in case we back up thus LMBD is a table indexed by the node depth and must appear in a SAVE statement The values shown for the table IDIST represent metric increments ap propriate for an S N ratio SEAN 2 5 when the additive Gaussi
38. S has the value 0 The most critical part of the display is positioning the checkpoints in the algorithm Clearly just after a new branch has been computed we must insert ENTER BRANCH This should be done at point A in the flow chart After the branch has been accepted and the threshold raised we should insert another checkpoint at B If the branch fails we should insert a checkpoint after the threshold has been lowered point C If instead of lowering the threshold N is re duced by 1 we should have a checkpoint at D Note that point D is also inside the loop from box 16 to box 12 so that if retreat of more than one node happens the program will reach checkpoint after each reduction of N Points B C and D should have a WAIT statement 4 Statements for Collection of Statistics We shall also compute the distribution of the waiting line under the assumption that the ratio of time for one baud to be received to time to advance one branch is 20 Histograms for the search depth and number of computations on a search will be computed also Clearly BEGIN SEARCH should be inserted when a path fails at statement 10 At statement 1 we will check to see if the waiting line exceeds 100 or the search depth is greater than 25 If either of these conditions exists we shall GO TO MONITOR thereby stopping the decoding after typing out an appropriate message We shall also count the number of times box 1 is passed through by placing the stateme
39. State Testing in Information Decoding Ph D Thesis Department of Electrical Engineering M 1 T September 1964 Perry and J M Wozencraft SECO Self Regulating Error Correcting Coder Decoder Trans IRE PGIT 8 128 1962 P R Drovilhet Jr The Lincoln Experimental Terminal Signal Processing System IEEE Annual Communications Convention Boulder Colorado 7 9 June 1965 P Rosen and R V Wood Jr The Lincoln Experimental Terminal IEEE Annual Communications Convention Boulder Colorado 7 9 June 1965 G Blustein and K L Jordan An Investigation of the Fano Sequential Decoding Algorithm by Computer Simulation Group Report 62G 5 Lincoln Laboratory M 1 T 12 July 1963 DDC 412632 H 525 Programmed Data Processor 6 Handbook Digital Equipment Corporation Maynard Mass 1964 R Kennedy and J M Wozencraft Coding and Communication paper presented at URSI Conference Japan 1963 M H Check and B Reiffen A Note on Sequential Decoding Applied to Large Alphabet Incoherent Channels Reomp Determination Group Report 656 6 Lincoln Laboratory 1 31 May 1963 DDC 410883 H 519 J E Savage The Computation Problem with Sequential Decoding Technical Report 371 Lincoln Laboratory M 1 T 16 February 1965 DDC 621713 PDP 6 Programming Manual FORTRAN II Language Digital Equipment Corporation Maynard Mass 1965 E T Irons A Syntax Directed Compiler
40. Statement 19 should be used when backing up or as a second delay point after a branch has been entered For example use 18 after the new branch has been computed and use 19 after the branch has been accepted and N increased So far the display does not show all the branches at a node only the one branch the algo rithm is considering It is possible to display and label all the other branches at the node by use of the monitor command OTHERS 1 This requires that the user insert in his algorithm a test on the value of the variable OTHERS and if it is nonzero all the branch increments at this node should be computed and placed in the table OTHERT which must not appear in a DIMENSION statement if the increments are type integer and in the table TOHERT if the increments are type real They should be placed in the table in an order such that the index on the table entries will be the information bits for the branch to which the increment corresponds After all the branches have been computed statement 22 CALL CHANGE must be executed to cause the new table entries to be displayed If OTHERS nas a value of zero this computation should not be done OTHERS is automatically set to zero when the display is turned off by the monitor command MODEO in order not to slow down the tree search with un necessary computation 5 Other Special Statements A large number of more general statements has also been included and will now be ex plained
41. Statement 23 has already been discussed as used in conjunction with statements 46 and 47 Statement 24 LIST LENGTH IS number is an initialization statement which is very important It requires that the user specify the length of the ordered lists which had previously been formed and written on DEC Tape Of course the user need not make use of the entire list but he must specify the length of the list that was formed This statement allows the monitor system to put the input data in memory as needed and in the correct place to be referenced by the user s program Statement 25 BAUDS PER BRANCH int number 47 beggen aa aaa serves an important function Its presence determines that there is a fixed number of bauds on each branch of the tree If this is the case a direct translation can be made between N and the index K of the ordered list for the first baud of branch N Thus K is no longer needed and the user need not update K whose value is then automatically set to the value of N If statement 25 is not used N and K become separate variables and it is the responsibility of the user to keep K up to date as wellas N This is more difficult but is necessary if the user desires to assign two bauds to one branch one baud to the next branch and three bauds to the following branch Statement 25 is an initialization statement and may be used only once at the beginning of the program Statem
42. TABLES HYP 256 LMBD 256 The contents of the shift register are automatically saved Statement 38 must appear once and only once in the program It must be placed in the main flow of the program where it will be reached each time the algorithm advances It cannot be reached by means of the PUSH TO statement When the monitor commands REPEAT or RE START are used the specified data are restored and execution of the algorithm begins with the statement just after statement 38 Statement 38 works by checking the value of N each time it is executed and if N has reached the next restart point the current values of all the variables on the list are computed and stored away on a push down list Each table whose name appears on the variable list is written out on DEC Tape number 6 The amount of storage required the push down list for each restart point is 6 t2A B where A is the number of variable names and B is the number of tables on the list in the pre vious example 2 2 The push down list is 192 long so the number of restart points which may be saved is easily computed Statements 39 40 41 and 42 RECVAL baud number node number list position RECVAL lt node number list position RECNUM baud number gt node number list position RECNUM lt node number lt list position are used to reference the input data the ordered lists These expressions are to be treated si
43. This is implemented as a syntax directed compiler 1 zd which takes its name from its use of a syntax table to perform translation from the input language Fortran II to the machine language The syntax table specifies the syntactical elements of the input language and the ways in which they may be com bined into larger syntactical units It gives the rules by which the characters of the input lan guage may be combined to form complete statements in Fortran II The great advantage of syntax directed compilers in general and for our purpose in partic ular is the ease with which additions or modifications can be made to the programming language Only the syntax table need be changed not the programs which interpret it For additions to the language new rules are added to the syntax table for modification rules in the syntax table must be changed In either event the work required to make changes is relatively minor With the algebraic capabilities of Fortran II to start with the number of changes and additions required is reasonably small This was a major reason why this implementation of the special language was chosen and its availability on the PDP 6 was another reason why this machine was chosen A description of the syntax directed compiler is found in Appendix D The following sections describe the special features of the language features which are determined by the requirements of the other programs already described and by the nat
44. an channel is modulated with eight orthogonal signals Next we must insert the statements for using the convolutional coder First of all the SEQUENCE statement will be SEQUENCE 1 S I P1 P2 The CONSTRAINT statement and the definitions of Pi and P2 must also be entered at the beginning of the program We must insert the GENERATE statement before computing the new LMBD at Statement 1 in the program After selection of particular branch to try the information bit T These numbers were computed from data supplied by K Jordan of Lincoln Laboratory 53 20 Ne IT 8 Le 8 SR 8 CLEAR FLAG LIC e i LMBDCN e LT e L LMBD N IF LT L IT 11 Ne 1 IF FLAG NE 8 8 IF IT ITO G LT 7 IT e GO TO 5 Le LT LIND 1 GO TO 1 IF IT IT 11 18 IF IT IT LE LT 7 CLEAR FLAG GO TO 5 SET FLAG IF 8 18 LB lt L LMBDCN 1 IF LB L IT 18 N e N 1 L e LB IF LI N E 2 12 LICN e LIOD 1 GO TO 1 IT IT IT LIN e l GO TO 1 Fig A 3 Skeleton program 54 28 TITLE DECODE SAVE 11 256 HYP 256 LMBD 256 ISR C256 DIMENSION IDISTC5 BACKUP DEPTH IS 256 NODES LIST LENGTH IS 4 BITS PER BRANCH 1 BAUDS PER BRANCH 1 DISPLAY THRESHOLD IT IT DISPLAY INCREMENTS LMBD LABEL PATH HYP 1 COMPUTE WAITING LINE 20 COMPUTE SEARCH DEPTH CONSTRAINT IS 68 SEQUENCE 1 5 I Pl P2 7368 3681 4576 2426 3854 0
45. and to provide an example which will be used throughout this report we will describe in detail the particular sequential decoding algorithm shown as a flow chart in Fig 3 which is a variation by Jacobs and Wozencraft of an algorithm described by Fano This algorithm uses a decision criterion which may be represented as a horizontal line in a plot of total metric vs depth in the tree This threshold may take on only integer multiples of the threshold increment To Instead of the Min of Eq 2 the metric used for each hypothesis on a tree with one channel use per branch is defined as T This is not a true metric in the strict mathematical sense Pr r z 3 Ain log Pr r where n is the node depth fa is the received data about the branch at this depth and Sin is the Signal associated with the branch in question R which equals vo is the information trans mission rate in information bits per branch and serves as a bias that causes the total metric along a typical incorrect path to decrease on the average and the total metric along the correct path to increase Thus a plot of metric vs node depth along the correct path should be a line which has an average positive slope despite occasional dips which are caused by the noise in the channel The algorithm searches the tree in the following manner It evaluates Ain for all i all branches at the current node at depth n and orders them numerically The
46. ation China Lake California Commanding Officer Naval Avionics Facility Indianapolis Indiana Commanding Officer Naval Training Device Center Orlando Florida U S Naval Weapons Laboratory Dahlgren Virginia Weapons Systems Test Division Naval Air Test Center Patuxtent River Maryland Attn Library Other Government Agencies Mr Charles F Yost Special Assistant to the Director of Research NASA Washington D C 20546 NASA Lewis Research Center Attn Library 21000 Brookpark Road Cleveland Ohio 44135 Dr H Harrison Code RRE Chief Electrophysics Branch NASA Washington D C 20546 Goddard Space Flight Center NASA Attn Library Documents Section Code 252 Green Belt Maryland 20771 National Science Foundation Attn Dr John R Lehmann Division of Engineering 1800 G Street N W Washington D C 20550 U S Atomic Energy Commission Division of Technical Information Extension P O Box 62 Oak Ridge Tennessee 37831 Los Alamos Scientific Library Attn Reports Library P O Box 1663 Los Alamos New Mexico 87544 NASA Scientific amp Technical Information Facility Attn Acquisitions Branch S AK DL P O Box 33 College Park Maryland 20740 Non Government Agencies Director Research Laboratory for Electronics Massachusetts Institute of Technology Cambridge Massachusetts 02139 Polytechnic Institute of Brooklyn 55 Johnson Street Brooklyn New York 11201 Attn Mr Jerome Fox Resear
47. bit in all the previous words written and is formed by resetting the flip flops in the NRZ converter If one of these flip flops has written an even number of 1 s it will already be in the 0 state hence the reset pulse will have no effect If an odd number has been written it will be inthe 1 state and the reset pulse will return it to the 0 state thereby writing a 1 on the tape recorder If the longitudinal parity word is not to be written the end of scan pulse turns the clock off and nothing more happens until the next trigger pulse is received If the longitudinal parity word is to be written the clock is not turned off until this is done Coincident with the last word to be written in a block be it the longitudinal parity word or just the word for the last MPX channel a 1 is written in a thirteenth channel which is used as a framing bit To connect the recorder to the PDP 6 for playback a special I O buffer unit was designed and constructed see the block diagram shown in Fig B 2 The I O requirements of the PDP 6 are handled by a 7 channel priority interrupt system all MO devices are connected to the central processor by means of the I O bus One set of 36 67 lines serves all I O devices for transmission of data in both directions The particular device which receives or transmits data is selected by the binary number on the seven device selection lines each I O device is assigned one of the 128 possible numbers To reques
48. bits repre senting the output of the ADC on the data lines in bits 19 through 28 anda 1 in bit 0 if there was a parity error At the beginning of the DATAI pulse the priority interrupt lines are cleared at the end of the DATAI pulse the flip flop register is cleared 68 APPENDIX C DISPLAY OF TREE Display of the tree through which the algorithm is searching presents some interesting data storage and retrieval problems Methods used are described in this appendix The unit of output for the tree display is a line segment representing one branch specified by the x and y coordinates of its starting point and the x and y increments of the branch The x increment is constant the y increment depends on the metric increment for this branch The PDP 6 display requires two binary words of data to display each branch The data words posi tion the electron beam to the proper x and y coordinates and draw a line segment of the proper length and slope using the display s line segment generator The program is organized so that it makes up a list of words for all the branches at once then the display looks at these words one at a time as rapidly as possible and displays singly the branches specified by the data words When all the words on this display list have been used the display stops If the picture is to be free of flicker each element of the display must be retraced about 30 times per second Since the picture of the tree is constantly movin
49. c speed For longer lists decoding speed is DEC Tape limited The programs PGi PG2 and are intended to be as modular as possible in order to permit changes to be made easily which would remove some of the present restrictions on inputs For instance if a program should be written to simulate a channel it could be substituted for PG1 quite easily If output to some device other than DEC Tape is desired only PG3 need be changed Details of the use of the input system will be found in the User s Manual which is included as Appendix A of this report II OPERATING SYSTEM Based on the preliminary design decisions of Sec I C and on the information obtained by study of the data collection system Sec II further design decisions can be made and specific ways of implementing the system requirements may be found The choices made and the reasons for them are described below A Available Subprograms 1 Coder Since the sequential decoder must have a copy of the signal assignments made to the tree it must contain a convolutional encoder with the same set of parity nets used by the coder The general form of the shift register encoder is very well defined and it is possible to implement 16 the coder by means of a subprogram which is capable of simulating the coder for almost any situation that could prove useful There are three parameters of the coder which must be variable over a wide range v Vo and p but basically
50. causes the values of metric increments to be passed along automatically to the display program For example if the name of the table of metric increments is LAMBDA the state ment will be DISPLAY INCREMENTS LAMBDA A similar initialization statement is used to control the display of the threshold lines In this case both the names given to the threshold and the threshold increments must be given as in DISPLAY THRESHOLD IT ITO If the value of the threshold increment ITO in this case is zero only the line corresponding to the threshold will be drawn Initialization statements are also used to specify a table whose entries will be used to label the current path It will be up to the user to program his algorithm to store in this table the signal numbers corresponding to each branch of the tree along the current path Such a state ment when the table name is HYP and there is only one baud per branch would be LABEL PATH HYP 1 the number 1 means there is one baud per branch To set up the check points where the algorithm must wait a length of time determined by the monitor system two executable statements are provided ENTER BRANCH to be used just after calculating the metric increment for a new branch and WAIT to be used at all other points D Requirements to Reference Input Data Still another class of statements is used to control the referencing of input data ordered lists and subscripted variables Several forms of a
51. cessive A compromise has been made by allowing these numbers to be displayed for only the branches along the current path Instead of being displayed alongside these branches the numbers are displayed across the top of the screen here also are displayed the contents of the shift register as binary digits in groups of 5 the number of information bits per branch with each group above the branch along the current path to which it corresponds There is further information which should be made available on the display In particular the critical point in any tree search and therefore the point about which the most information should be supplied is the current point where the algorithm is attempting to advance in the tree The information which the algorithm has available is the ordered list for this node and the set of signal numbers which have been assigned to all the branches at this node From these data and possibly from other internal data the algorithm computes a metric increment for each of these branches and then selects which of these paths it will follow or whether to back up The user should have this information available to him It is provided by displaying the ordered list in numerical form both signal value and signal number expressed in octal and a table of the signal numbers assigned to each information bit sequence for this branch If the user desires and is willing to insert some extra coding in his algorithm program all the b
52. ch Coordinator Director Columbia Radiation Laboratory Columbia University 538 West 120th Street New York New York 10027 Director Stanford Electronics Laboratories Stanford University Stanford California Director Coordinated Science Laboratory University of Illinois Urbana Illinois 61803 JOINT SERVICES REPORTS DISTRIBUTION LIST continued Director Electronics Research Laboratory University of California Berkeley 4 California Director Electronics Sciences Laboratory University of Southern California Los Angeles California 90007 Professor A A Dougal Director Laboratories for Electronics and Related Sciences Research University of Texas Austin Texas 78712 Division of Engineering and Applied Physics 210 Pierce Hall Harvard University Cambridge Massachusetts 02138 Aerospace Corporation P O Box 95085 Los Angeles California 90045 Attn Library Acquisitions Group Professor Nicholas George California Institute of Technology Pasadena California Aeronautics Library Graduate Aeronautical Laboratories California Institute of Technology 1201 E California Blvd Pasadena California 91109 Director USAF Project RAND Via Air Force Liaison Office The RAND Corporation 1700 Main Street Santa Monica California 90406 Attn Library The Johns Hopkins University Applied Physics Laboratory 8621 Georgia Avenue Silver Spring Maryland Attn Boris W Kuvshinoff Document Librarian Scho
53. corresponding bit in the M preceding words Thus along with the parity bit written with each word it is possible to detect and correct single errors at least in each block made during playback The maximum repetition rate of the trigger pulse is once every 3000 M 1 s microseconds where M is the number of S H channels used and s is the setting of the TAPE SPEED knob provided the PARITY knob is on otherwise every 3000 M s microseconds The operational procedure is a Connect the M lowest numbered S H inputs to the receiver and also connect the common ground LVR Connect the trigger pulse adjusting for proper polarity duration and repetition rate Be sure to provide a ground return for the trigger pulse Connect the output cables to the specified channels of the tape recorder The special ground coaxial cable provided is not needed b Set the front panel switches as follows TRIGGER EXTERNAL CHANNEL SELECT to last channel to be scanned DATA OFF PARITY normally ON TAPE SPEED appropriate for the repetition rate of the trigger c Move the DATA switch to the RESET position and push the SET button and the ALARM light The light must go out or else the trigger pulse is incorrect The trigger pulse must be applied during this time d Move the DATA switch to TAPE This will switch on the 117 volt AC outlet at J55 The receiver may be reset or adjusted as desired at this point since the trigger pulse is not needed i
54. d along to the display routines Statement 14 SCALE number is used to set the display size The number should be the same type as the name used in state ment 13 and have a positive value equal to that which when taken on by a branch increment will cause a branch to be displayed having a 45 slope If it is desired to display a horizontal line as a threshold statement 15 DISPLAY THRESHOLD lt name gt name is used The two names must be the same type integer or real The first name is to be given to the threshold and the second name is that given to the unit by which the threshold may be incremented Horizontal lines will be plotted at the value of the threshold and at all increments above and below it If the value of the threshold increment is zero only the threshold line will be displayed The effect of this statement is to insert additional code after every assignment statement involving the threshold name The channel signal numbers along the current path through the tree may be displayed by use of statement 17 LABEL PATH dint sub var y int The first argument of this statement is the name of an integer subscripted variable appearing in a SAVE statement into which the user has caused the program to insert the appropriate chan nel signal numbers The contents of this table are displayed as octal numbers across the top of the display above the branch to which they correspond If the second argument of statement 17
55. d by saving everything but perhaps not by too much A paper by Kennedy and Wozencraft indicates just how much is lost when orthogonal signals are used in white Gaussian 14 noise The conclusion drawn from this paper is that it may be unprofitable to save a list longer than M 2 and even for M 64 a list of 16 seems sufficient F Programs for Ordered Lists Because of the generality of the ordered list 2 1 and 2 M are the extreme cases we Shall take this form as the standard input to the sequential decoding algorithm This requires that we have some way to convert the raw data from the tape recorder into ordered lists of any length desired Unfortunately computer requires a good deal of computation to perform this type of Sorting operation The time required to form the ordered list can easily exceed the time re quired to do the actual decoding The problem is worse the larger the list length and alphabet size Thus if the ordered lists are constructed as the algorithm runs the decoding speed will be cut down There is another serious disadvantage to preparing the ordered lists at the same time that the algorithm is being run Since data are coming in from the recorder ata constant rate and cannot be stopped in less than 2 sec even then data would be lost we would have a waiting line problem just as in a real sequential decoder But we cannot afford the solu tion to this problem used by the real decoder namely to operate
56. de storage room 74 APPENDIX D SYNTAX DIRECTED COMPILER The syntax directed compiler takes its name from use of a syntax table to perform translation from the input language Fortran in this case to the output language machine code acceptable to the Midas assembler The syntax table gives the rules by which characters of the input language may be combined into complete Fortran statements Entries in the syntax table are called rules and are usually written in Bachus Normal Form2 For example in Fortran the syntactical elements variable and arithmetic ex pression may be put together with to form an assignment statement The rule would be written Kassign statement variable lt arith exp Quantities metabrackets lt gt are called metavariables and are the syntactical elements of the input language Other symbols are characters of the input alphabet The symbol is used to separate the subject of the rule on the left from the definition which consists ofa string of components on the right Ifa subject can be formed in more than one way the alternatives each a string of components are written on the right of the sign and are separated by signs For example lt letter gt A B C D Rules may be recursive as in the example lt number gt lt digit gt lt number gt lt digit gt For each alternative in a rule there is a production a list of actions to be
57. e where the algorithm advances or retreats a node so that each change in the tree will be displayed long enough for the operator to see it 2 Control of Data Input Another basic feature of the monitor system is its automatic control of data input This feature is necessitated by the system requirement that the user should have to do as little I O programming as possible Again the monitor makes use of the clock and every 1 60 ofa second checks to see how deep the algorithm is in the tree If the algorithm is on the verge of running out of input data ordered lists the monitor system tells another program to get more data from the DEC Tape The monitor system will force the algorithm to wait until these data have been brought into memory The request for new data is usually made soon enough so that this wait is not necessary only when the decoder advances unusually rapidly will the wait be required Input data are stored in memory in a ring buffer i e as a table in which new entries are made at the beginning of the table after it has filled up The length of this ring buffer in branches determines the number of nodes which an algorithm may back up before running into an area where new data have been written over the old This length ranges from 256 ordered lists when the list length is 16 to 2048 ordered lists when the list length is one or two These lengths seem adequate in view of the 108 bit maximum constraint length of the coder Th
58. e branch 4 succeeds since the threshold has been lowered Figure 5 e shows the algorithm trying to advance from node 75 The most likely branch 1 succeeds In Fig 5 f the algorithm finds that even the most likely branch extending from node 76 violates the threshold The algorithm retreats to node 75 since it is above the threshold and here examines the second most likely branch It is shown in Fig 5 g that this branch 0 fails Again the algorithm backs up to node 74 because it is above the threshold to examine the second most likely branch This branch 3 succeeds as shown in Fig 5 h so the algorithm advances on it to node 75 In Fig 5 i it is shown that both the alternatives from node 75 fail branches 2 and 5 have the same metric increment since neither are on the ordered list for this node Because node 74 is above the threshold the algorithm retreats to it but discovers that there is no branch at this node which it has not already examined as shown in Fig 5 j The algorithm now retreats to node 73 since it is also above the threshold and examines the second most likely branch Fig 5 k This time the second most likely branch 0 which we know to be the correct one succeeds the algorithm has finally worked its way back to this node with the threshold reduced enough so that the dip in the correct path stays above it The algorithm advances on this branch and is shown in Fig 5 1 on the correct path after moving forwa
59. e purpose of the automatic data input function of the monitor system is to remove from the user the necessity of including any programming dealing with input data He need merely reference this table as if the data are there and they will be Occasionally he may desire to modify the input data which have come off the tape for in stance to answer the question What would happen if the ordered list at node 5 were Data for individual nodes may be inserted manually by means of command on the teletype providing another form of man machine interaction 3 Control of Algorithm Two other basic classes of monitor commands must be made available First is the simple running command to start or stop the algorithm It is also possible to command the monitor to run the algorithm until it reaches a particular node depth and then stop or the monitor will run the algorithm until a specified number of check points have been passed Second is that command dealing with restarting the algorithm at a particular node depth Once an interesting point in the tree has been found the user may desire to rerun this critical part of the search several times to observe it more closely A good procedure to follow would be first to run the data through rapidly without the display being turned on and then on the basis of data collected about the search such as the node depths where the search depth exceeded a certain number 24 or the waiting line was large
60. e required to generate the sequence of channel symbols corresponding to the particular sequence of information bits used For the symmetrical channel the coder is not needed since the zero information bit sequence always codes into channel symbol 0 D Hardware for Playback Having recorded data on the digital tape means must be provided to connect the tape re corder to the PDP 6 for playback This connection requires that a special I O buffer unit be built which consists essentially of a flip flop register to hold each word as it comes off the recorder and logic so that the computer may read in the contents of this register A parity check on each word is also performed The recorder is not under program control by means of this device the recorder must be started and stopped manually A detailed description of the input buffer is found in Appendix B E OrderedLists Although a real sequential decoder would have allthe M voltage values available it would probably not use them all directly Perhaps the optimum function of these M variables to evaluate the metric increment for a branch would be too complex to be useful some simpler function of fewer than M variables could be used without much degradation of operating char acteristics Indeed one anticipated use of the system is the evaluation of performance as a function of various schemes for reducing the number of bits required to store in digital form the data about the received si
61. e treated in this manner Other symbols which have special meaning hence must be preceded by when they are to be put out lt gt 4 and itself The production of the rule LOGPROB 4NAME results in the following output in addition to the insertion of the new rule MOVEI 3 PR HRLM 3 PR JRST t257 PR BLOCK 256 The first two instructions notify the I O program that the histogram is to be printed out auto matically and the last two reserve a block of 256 registers for the histogram The new rule which has been inserted works in conjunction with the rule lt LEFT gt lt gt EXP CASI 4214 41 which is a rule for the construction of an assignment statement The character is inserted by the compiler at the end of each statement as a termination character before the syntax table is applied to the statement The statement causes the production of EXP expression to be MOVE 3 B and the production of LEFT T with the aid of the new rule is MOVEM 3 LDB 15 XWD 331000 3 AOS PR 145 Therefore the production of ASI is MOVE 3 MOVEM 3 LDB 15 XWD 331000 3 AOS PR 15 74 Before the new rule was added LEFT would have been formed using another rule so that the production of CASI would have been MOVE 3 MOVEM 3 A Thus the effect of the new rule is to append two machine instructions to the code for the assign ment statement The first in
62. eater than or equal E equal or N not equal LE less than or equal GI less than and n and n are statement labels ELSE may be omitted if desired 1f ELSE n is omitted a value for n is assumed which represents the succeeding statement in the program It is this last form of the IF statement which is so useful in describing the algorithm If the indicated inequality or equality is true upon evaluating the expressions then the next statement executed is that labeled ng if it is false the next statement executed is n5 The standard form of DEC Fortran IF statement is also allowed 3 Coder Statements Special statements 1 through 12 in Table A 1 have been added to control a convolutional coder subprogram The form of the coder modeled is shown in Fig 1 It is intended to be used to generate all the hypotheses for a single node The coder consists of a shift register into which information bits enter from the left each time the coder is used A number of binary check bits are generated by parity nets A check bit is formed by taking the sum modulo 2 of the contents of all the stages of the shift register to which its modulo 2 adder is connected The incoming information bits plus these check bits are then grouped as desired into bauds The output of the coder for each baud thus is binary number of say x bits thereby specifying one of 2 different channel waveforms Statement 1 CONSTRAINT IS i
63. ed above were made early in the system design but to go into the details here would distract from the main lines of thought Suffice it to say that the problems just mentioned particularly the large initial cost made it clear that the construction of special purpose equipment would be unprofitable There are constraints imposed on the experimental facility other than just its capability of performing experiments of interest How the system is implemented determines its usefulness quite as much as its capabilities do In the early stages of system design it is useful to study previous related work and benefit from experience already gained Fortunately some of the requirements for making our system useful were pointed out by previous experience with com puter simulation of sequential decoding A great deal of simulation was performed at Lincoln Laboratory prior to the design and construction of both SECO and LETE One report on this simulation work is that of Blustein and Jordant This simulation included both the channel and the decoder and was intended to study one particular algorithm From the experience gained at Lincoln two conclusions can be drawn about an entirely programmed system for studying sequential decoding First simula tion is a useful tool which is capable of providing quite accurate answers to specific problems such as optimization of parameters in an algorithm and measurement of the statistical behavior of the decoding proce
64. ed to be time discrete and during each use of the channel one of M signals is sent On receiving a signal r the receiver produces as its output simultaneously M different voltages related to P r 81 one for each of the M signals The recording equipment is designed to record these M voltages each represented as a 10 bit binary number Equipment used consists of ten S H units a 10 channel multiplexer an A D converter and a Precision Instrument PS 216D digital tape recorder The outputs of the receiver should be connected to the inputs of the S H units which are labeled from 0 to 9 thus M lt 10 can be recorded directly The input voltage V must be in the range 1 x V lt 1 volt input of 1 volt results in an output from the A D converter of all 1 s while an input of 1 volt gives all 015 An input of 0 volts gives an output of 1000000000 The input impedance of the S H units is 10 000ohms Note that a separate coaxial cable marked LVR is provided for the common ground return of the S H units because the coaxial shields are not grounded at the S H inputs This has been done to prevent ground loops A trigger pulse of duration t 2 lt t 10nsec and negative polarity swinging from 2 5 to 2 5 volts must be supplied each time the channel is used at the time when the M outputs of the receiver are to be sampled Again note that the coaxial shield on this input lead is not grounded so a ground wire must be provided between the
65. ed together in one baud before detection the S N ratio will improve and the degradation is reduced The practical considerations involved lead us to compromise and assume that no more than four information bits per node will be required The number of bauds required for each branch in the tree depends on the alphabet size and on the desired degree of redundancy required that is the ratio of check bits to information bits per branch limiting case might be where the alphabet size was two With one information bit per branch 6 or 8 check bits might be required for alphabets other than two the computa th tion required to select the n most likely branch increases with the number of bauds per branch 17 in any event 10 bauds per branch seem sufficient as a limit to what the subroutine should be expected to provide Wozencraft and Jacobs Ch 5 confirm this decision The only other parameter on which a limit must be set is the length of the shift register the constraint length of the code It is this length which enters into the expressions for bounds on the probability of error which decreases exponentially with the length Still practical problems such as buffer overflow probability which is mainly a function of how close the trans mission rate in information bits per channel symbol is to Ro indicate that there is no point in having probability of error much lower than the probability of buffer overflow unless a feed back
66. em consisting of a digital tape recorder and analog to digital conversion equipment is provided to make available to the computer the outputs of experimental demodulation equipment The experimenter can decode the acquired data sequentially in accordance with an algorithm specified and eas ily written by him in a version of Fortran modified for this purpose The modified Fortran contains statements for the use of special subroutines provided such as a con volutional coder The program is run within a monitor system which handles most input output automatically and provides for man machine interaction with the program The monitor also collects statistics on the decoding process to aid the user in evaluating his algorithm All sequential decoding algorithms may ultimately be described as tree search algo rithms in which it is desired to find the best path through a tree A display of the paths searched by the algorithm has therefore been made the principal tool for the man machine interaction The user watches this display and controls the running of the algo rithm via a light pen and commands typed to the monitor The system has been successfully implemented and tested and experimental results are described III IV TABLE OF CONTENTS SYSTEM DESIGN AND OBJECTIVES A Introduction B Description of Sequential Decoding C System Design Considerations DATA COLLECTION SYSTEM Form of Input Recording Equipment Restrictio
67. ent 28 and should be placed so that it is executed whenever a search has begun It does not matter if it is executed again during the course of the search A search is defined to be over when the value of N exceeds the value which N had when the search began The search depth is this initial value of N minus the minimum value of N attained in the search A computation is counted every time the statements N N 1 or N N 1 are executed during the search The search depth at any time may be known by the program from the value of the special integer variable SEARCH DEPTH statement 31 Statement 29 COMPUTE WAITING LINE lt int number computes a histogram of the waiting line sampled at uniform intervals of time The argument of statement 29 is an integer number which gives the ratio of time for one baud to be received 48 to time to advance N 1 or retreat N 1 one node in the tree of the simulated de coder A sample of the waiting line is taken every time a baud is received The histogram has 128 sample values from 0 to 127 The value of the waiting line at any time may be known from the value of the special integer variable WAITING LINE statement 32 Statement 29 is an initialization statement and must be placed at the beginning of the program Both statements 28 and 29 rely on the presence of statements N N 1 and N N 1 which are the only allowable ways to change N if these statements are
68. ents 26 and 27 PROB dint var gt int number LOG PROB real var are used to collect statistieal data about the values attained by some quantity If the quantity is areal variable use statement 27 with the name of the variable as its argument This state ment causes a histogram on the log of the specified variable to be computed The powers of 2 which are measurable range from 127 to 127 If the quantity is an integer variable use statement 26 with the first argument the name of the variable and the second argument an integer number which is the grain size for the histogram to be recorded The variable must be positive valued only Maximum value allowed is 256 times the grain size any higher value will show up in the highest entry in the histogram The result of these statements is found in a table of 256 entries which is put out automatically when the program exits Only one use of either state ment 26 or 27 but not both is allowed and it must be at the beginning of the program Statement 28 COMPUTE SEARCH DEPTH computes histograms of the number of nodes backed up in tree searches and of the number of computations performed during these searches Both histograms have 128 sample values The grain size of the search depth is 1 while the grain size of the number of computations is 4 Statement 28 is an initialization statement and appears at the beginning of the program State ment 30 BEGIN SEARCH must be used with statem
69. eport not only describes the system which was finally implemented but indicates the alternatives that were available and the reasons behind the choices that were made Before discussing the details of the system it is necessary to look closely at the process of sequential decoding We assume that the reader is familiar with the basic concepts of error correcting codes and modern communications theory which will be used freely For a background refer ence we recommend Wozencraft and Jacobs B Description of Sequential Decoding 1 Coding and Decoding Sequential decoding refers to a class of error correcting coding decoding methods which may be used to communicate data over a communications channel with extreme reliability 2 wopes Fig 1 Tree structure of information bits v BIT SHIFT REGISTER INFORMATION SOURCE m MODULO 2 ADDERS SELECTION MATRIX DUT 2 CHANNEL WAVEFORMS Fig 2 Convolutional encoder despite the presence of a random disturbance on the channel To be specific let us consider the problem of communicating a string of statistically independent equiprobable binary digits generated by some hypothetical data source The channel is assumed to be memoryless and communication is carried on by sending a sequence of waveforms over the channel In particular consider a string of N bits from the source These N bits can be any of 2N different combina tions called messages and the seq
70. er is the same as statement 45 except that only one baud per branch is assumed If K is being used to index the ordered lists it may be used as the second argument of statement 46 Statements 47 and 48 have already been discussed B Use of Language Use of the special language can best be explained by example The first step in writing the algorithm is to formulate it in terms of a word flow diagram We shall take as a starting point the word flow diagram of the Fano algorithm used by Wozencraft and Jacobs see Fig 3 A description of the flow chart is included in Sec I B 2 Actually formulating one s ideas in precise enough detail to be able to write this flow diagram is half the programming effort 1 Symbolic Flow Chart Note that there are two types of boxes in the word flow diagram one in which operations are carried out and one in which a question is asked The question boxes have two or possibly more exits depending on the answer The next step is to reformulate this flow diagram in terms of mathematical notation Fig A 2 We have carefully chosen names for the variables keeping in mind whether the quantities they represent are to be real or integer The name L has been used for total metric and IT is the threshold value The threshold increment is ITO Metric increments are stored in table named LMBD Note that we have implemented the problem of what likelihood branch 51 uu41108 b OUDY jo poyo Mojj SHOqUAS Ze
71. er by which the document will be identified and controlled by the originating activity This number must be unique to this report 9b OTHER REPORT NUMBER S If the report has been assigned any other repcrt numbers either by the originator or by the sponsor also enter this number s 10 AVAILABILITY LIMITATION NOTICES Enter any lim itations on further dissemination of the report other than those INSTRUCTIONS imposed by security classification using standard statements Such as 1 Qualified requesters may obtain copies of this report from DDC 2 Foreign announcement and dissemination of this report by DDC is not authorized 3 0 S Government agencies may obtain copies of this report directly from DDC Other qualified DDC users shall request through HI 4 U S military agencies may obtain copies of this report directly from DDC Other qualified users shall request through 5 distribution of this report is controlled Qual ified DDC users shall request through n H TE the report has been furnished to the Office of Technical Services Department of Commerce for sale to the public indi cate this fact and enter the price if known 11 SUPPLEMENTARY NOTES Use for additional explana tory notes 12 SPONSORING MILITARY ACTIVITY Enter the name of the departmental project office or laboratory sponsoring pay ing for the research and development
72. eristic of the noise Unfortunately attempts to realize systems meeting the performance predicted by the coding theorem have been largely unsuccessful since all the obvious implementations require either an extremely large amount of receiving equipment or an exceedingly long time to process the received signals To date sequential decoding is one of only two processes the other is that of Forney which have shown promise of attaining the results predicted by the coding theorem while still using only a reasonable amount of terminal equipment and processing time Because of mathematical difficulties encountered in trying to analyze the properties of sequential decoding in some cases it seems more profitable to study the process experimentally This can be done either by constructing equipment to perform sequential decoding by simulating such equipment on a digital computer or by a combination of both of these The objective of designing and implementing an experimental facility for the study of sequen tial decoding has been a challenging problem in system design which at many stages has required detailed comparison of several alternative ways to implement the system A design problem of this nature is never a pure one it always involves constraints imposed by many factors such as time money availability of equipment and above all the characteristics of the process to be studied and the problems to be investigated with the system This r
73. eshold the decoder will again work its way back to a point on the original path which is below the new threshold reduce the threshold by To and try again In this manner the decoder will successively reduce the thresh old until either the metric along the correct path stays above this threshold or the point on the current path where a wrong choice was made is brought above the threshold allowing the correct path to be searched Of course this decoding process need not stop after N branches The coding method allows a path through the tree to be of indefinite length hence the decoding is also a continuous pro cedure We must now decide when the information bits corresponding to the path taken through the tree will be given out by the decoder Since analysis indicates that the probability of searches requiring a backup of more than 2v or 3v branches is very small one possibility is to consider a decision at a node final after the decoder advances 2v or 3v branches beyond this point The information bits for this branch are then said to be decoded and are put out by the decoder 3 Wnhy Sequential Decoding Is of Interest The reason that sequential decoding is of practical interest is the fact that the average num ber of branches looked at in order to decode one branch called the average number of computa tions is a finite quantity which is independent of v so long as the rate of transmission in infor mation bits channel symbol is less
74. eversed the subject is on the right and each alternative is written as a separate rule For example lt letter gt A B C D becomes four rules zu lt letter gt lt letter gt C letter D Sletter Since in each of these rules we know that the last metavariable on the right is the subject of the rule we may omit the signs The production associated with each rule is then written on the right and enclosed in brackets Productions are formed from three distinct elements 1 symbols of the output alphabet 2 functions and 3 the productions associated with the metavariables if any which are components of the rule Functions are written as nNarg where n is a decimal number identifying the rule The character is used to separate arguments of the function there may be any number of arguments or none at all and terminates the function A function may cause symbols of the output alphabet to be inserted in its place or it may take actions which influence other functions The components of the rule are referred to as m where m isa decimal number and means that the production associated with the mih component counting from the right but not counting the subject of the rule is to be inserted in its place A very simple example of a rule added to the syntax table is SHIFTLEFT lt INUMB gt lt NS gt MOVEI 15 44 PUSHJ 1 SHFTL The statement SHIFT LEFT 2 causes the number 2 wh
75. for ALGOL 60 Commun ACM 4 51 1961 The Structure and Use of the Syntax Directed Compiler in Annual Review of Automatic Programming Vol 3 Pergamon Press Oxford 1962 p 245 A Bastian Jr A Phrase Structure Language Translator Report AFCRL 62 549 Air Force Cambridge Research Laboratories Bedford Mass August 1962 T E Cheatham Jr and K Sattley Syntax Directed Compiling Proceedings of the Spring Joint Computer Conference Spartan Baltimore 1964 p 31 R S Ledley and J B Wilson Automatic Programming Language Translation Through Syntactical Analysis Commun ACM 5 145 1962 S Warshall A Syntax Directed Generator Proceedings of the Eastern Joint Computer Conference Macmillan New York 1961 p 295 J W Bachus The Syntax and Semantics of the Proposed International Algebraic Language of the Zurich ACM GAMM Conference Proceedings of the International Conference on Information Processing UNESCO Paris June 1959 p 125 76 JOINT SERVICES ELECTRONICS PROGRAM REPORTS DISTRIBUTION LIST Department of Defense Dr Edward M Reilley Asst Director Research Ofc of Defense Res amp Eng Department of Defense Washington D C 20301 Office of Deputy Director Research and Information Room 3D1037 Department of Defense The Pentagon Washington D C 20301 Director Advanced Research Projects Agency Department of Defense Washington D C 20301 Director for Mate
76. for the number of S H units used to record the data Question 3 asks if the PARITY switch was ON or OFF when recording the answer is YES or NO re spectively Question 4 asks for the desired length of the ordered list it must be no longer than 16 Question 5 asks for the polarity of the recorded signals should the ordered list be made up of the 7 most positive or most negative signals Question 6 asks if a constant value should be added to the signal corresponding to channel symbol number 0 The number given Should be an octal number representing the 10 bits which would have been the noiseless output of the A D converter had the desired input voltage been applied This is provided for the case 1 Use of MACDMP Memorandum MAC M 248 Project M I T 1 July 1965 39 where the zero message has been sent and the simulated S N ratio can be adjusted simply by adding a constant to the output of the filter corresponding to channel symbol 0 Question 7 gives the operator time to check his answers to the questions and make sure that DEC Tape 7 is ready to go When this question is answered YES the program rewinds tape 7 be sure the tape comes to a complete stop after it rewinds and instructs the operator to start the digital tape recorder The recorder must be positioned at the blank leader before the start of the data since the program must find at least 1 sec of blank tape before it will accept the data After positioning
77. fore going into a statement by Statement discussion of this table some general remarks must be made 40 SPECIAL STATEMENTS IN Statement TABLE 1 FORTRAN Statement CONSTRAINT 15 lt int number P lt int gt Koctal number SEQUENCE lt int gt lt seq description gt GENERATE SHIFT LEFT lt int gt SHIFT RIGHT Cint gt ENTER SR lt int gt lt int exp ENTER SR END int 3 lt int exp SRI SR2 SR3 SR END SR lt 0 GEN or GEN lt int gt DISPLAY INCREMENTS sub vor gt SCALE lt number gt DISPLAY THRESHOLD lt name gt lt name gt BITS PER BRANCH Sint number LABEL PATH Cint sub var gt lt int gt ENTER BRANCH WAIT OTHERS OTHERT TOHERT CALL CHANGE BACKUP DEPTH IS int number NODES LIST LENGTH 15 number BAUDS PER BRANCH int number PROB lt int var int number LOG PROB var 41 COMPUTE SEARCH DEPTH COMPUTE WAITING LINE Kint number gt BEGIN SEARCH SEARCH DEPTH WAITING LINE SET lt var gt CLEAR lt var gt PUSH TO lt statement label gt POP GO TO MONITOR RESTART DATA EVERY int number NODES 1S lt var list RECVAL lt baud number lt node number lt list position RECVAL lt node number list position RECNUM baud number lt node number list position RECNUM lt node number list position MODE CALL FIND position Ki
78. functions and will also accept a variety of commands from the teletype A complete listing and description of these commands is given in Appendix A The functions included in the monitor are based partly on requirements of the display feature and partly on the desire to make the programming effort of the user as small as possible Com mands given to the monitor via the teletype allow the monitor system to satisfy the need for man machine interaction established in Sec I 1 Control of Display One aspect of the monitor system which is obviously necessary is control of the display of the tree search Clearly the algorithm cannot proceed to search the tree at computer speed since the display would change so fast there would be no time for the operator to comprehend it Onthe other hand if the algorithm is forced to step through the tree slowly enough for the operator to follow it not very many branches will get searched Thus the monitor must have commands which will control the speed at which the algorithm advances It must also be able to turn off the display completely so that data can be processed rapidly in large volumes If the display is turned off and then turned on again later the display program will have no in formation about the tree structure at the new location hence only branches newly searched will be entered on the display This suggests that a third mode of operation would be desirable one in which the display program con
79. g new branches are being added as a result of the search process and branches are disappearing or reappearing at the edges of the display because of drift of the tree it is necessary to make up a completely new display list every time the display is to be retraced This requires an efficient storage and retrieval system to reduce the computation necessary to make up the display list Data are stored in a list structure which can be described as a cross threaded tree A simple tree and its data storage are shown in Fig C 1 Two tables CPATH and CPATHY of 256 entries provide entry data to the cross threads of the tree The pointer in the left half of CPATH entry N indicates the beginning of a loop which contains data on all branches at depth N inthe tree This pointer denotes the particular branch at depth N which is on the path from the algorithm s present position in the tree back to the origin of the tree The y increment for this branch is shown separately in the right half of the CPATH entry The corresponding entry in the CPATHY table gives the y position of the start of this branch the x position is known from the index on the CPATHY table All values of position are absolute not relative to the display hence they do not have to be changed as the tree moves They are kept as integer numbers scaled to the size of the display as set by the SCALE statement in the special Fortran language The data for each branch require two words of storage
80. ginal Fortran program in order to preserve them both The procedure described here vrill vork but it is not the only one A more complete de scription of TECO MACDMP and MIDAS will be found in the appropriate MAC memoranda and knowledge of their command structure will suggest variations which may be used Likewise the use of TECO to write micro tape files from punched paper tape and edit corrections into programs will not be discussed in detail here but should be learned by the user from the TECO memorandum Briefly to write micro tape file from a paper tape enter MACDMP and type TECO Then type 2EIY100PEF lt name gt where lt name gt is the name to be assigned to the file to be written on tape 2 V RUNNING THE PROGRAMS A Loading the Programs Before loading the programs for a run make sure the tape marked SEQ DECODING SYSTEM is on drive 1 the user s tape is on drive 2 the data tape of ordered lists is on drive 7 and a scratch tape is on drive 6 and is not write locked MACDMP should now be started by depressing STOP and IO RESET and then lifting READ IN Once all the programs needed have been assembled they must be put together into one pro gram by using the Linking Loader which is on the system tape along with the system programs Using MACDMP load the Linking Loader by typing LOADER followed by carriage return The file directory for any tape may now be listed by typing tape number F Now load the systems pr
81. gnal Since the decoder has to reference the input data about a particular use of the channel more than once if there is any searching required in this part of the tree the input data must be stored away probably in digital form in core memory But if each of the M voltages is converted to 10 bit binary numbers this requires 10M bits of memory storage which is a large number when M islarge Therefore itis natural to seek some way of reducing the number of bits of Storage required for data about each use of the channel One rather drastic solution is to re member only which one of the M voltages was the largest i e which one of the M signals was most probable Saving only this much information about each use of the channel clearly will result in a reduction of channel capacity and R hence more and longer searches by the comp algorithm Channel capacity and R are always measured taking into account the modulation comp demodulation and decision process used There are many alternatives within the two extremes of saving everything soft decision and saving only the information as to which signal was most probable hard decision One could for instance form a list of which of the M signal voltages were the largest along with the values of these voltages each to k bits accuracy This would require k log M bits of storage for each use of the channel Saving such an ordered list would reduce Romp below that obtaine
82. h modulation technique is unique it would be difficult to design equipment to handle all cases of interest Furthermore we are unable to model mathematically hence to simulate most interesting channels and there is already a good deal of experimental work in modulation demodulation techniques being performed at M I T For these reasons we decided that the ex perimental facility should require as its main form of input the outputs of demodulators in real communications systems Since these outputs are precisely the inputs to the signal processor portion of the sequential decoder this decision means that the experimental facility need provide only that part of the communications system which is the actual sequential decoder Given this decision a way must be found to make the output of the demodulation equipment available as the system input Since it is unlikely that any way can be found either to bring the demodulator to the sequential decoding system or vice versa it seems that some kind of portable data gathering and recording equipment is a necessary part of the experimental system This data collection system must record all the significant outputs of the demodulator for any of many different channels probably on magnetic tape This tape must then be played back into the experimental facility The design of this data acquisition system and the system considera tions affecting it are detailed in Sec II The choice of ways to realize the
83. h only because it has been programmed to look in the table given as argument to the DISPLAY INCREMENTS statement for the value of the metric increment along the branch Display is actually restarted when the statement RESTART DATA is next executed after a MODE1 command This is necessary because only at that point in the program does the display know the correct value for the total of the branch increments This is why the first entry on the variable list of the RESTART DATA statement had to be the name of the variable whose value was the total of the branch increments The monitor command OTHERS has only two allowed arguments 1 and 0 This command turns on and off respectively the display of all the hypotheses at the present node in the tree provided the user has included the appropriate statements in the algorithm 2 Examination and Modification of Ordered Lists The system normally displays the ordered list for the current value of N along with the current contents of the GEN table All numbers displayed here are octal The ordered list for other nodes may be displayed by using the light pen After positioning the tree so that the de sired node is displayed the light pen should be touched to the word DATA A number of dots will appear at the top of the screen If there are n bauds per branch there will be column of n dots above each node depth one for each baud counting from the top Touching the light pen to one of the dots will ca
84. he lower left corner of the display in the tree The display screen may thus be thought of as a window which may be moved around through the tree The display list may be generated by entering CPATH at the index corresponding to the x position of the display screen corner and going down the loop of branches selecting those branches whose starting value of y is on the screen Since the display shows 20 branches of depth in the tree the 19 succeeding loops will also be searched for branches to go on the display The backward pointers are used to obtain data to intensify any path desired by retracing it entering it on the display list a second time Given the x and y values of some node in the tree a branch extending forward from this node may be found by searching down the appropriate loop Once found the preceding branches may be found simply by following the backward pointers A new branch in the tree is entered as follows The x position of its starting point is given so the loop on which it will go is known But perhaps this is not a new branch it could be a previously searched path in the tree which the algorithm is searching again If it is an old branch one of the branches on the loop will have the same y increment as this new branch In addi tion its backward pointer will indicate the top branch of the previous loop Remember that this top branch is on the current path through the tree and any advances through the tree at this node mu
85. her The ability to resolve ambiguities in the display of this nature by means of a difference in intensity is something that is worthwhile having for branches other than the current path This can be done by using the light pen to select a particular node on the display and then increasing the intensity of the unique path leading from this point back to the origin or to the edge of the screen 24 Another necessary feature of such a display is the ability to recall branches which have slipped off the edge of the screen The operator may find it useful to look back at branches no longer displayed since all the tree is not displayed at once it should be possible manually to cause the tree to slide around on the screen in any direction This can most easily be controlled by use of a light pen which when touched to one tip of a small eight pointed star displayed on the screen causes the display to drift in that direction There is information about the search not carried in this plot of the paths that have been searched which should also be made available In particular it would be desirable to label all the branches displayed with the signal numbers assigned them by the coder Unfortunately displaying all these numbers would lead to confusion when there are more than a few branches displayed since numbers might overlap branches be drawn through numbers etc Also the amount of computation time display time and data storage required would be ex
86. hesis on the list a table of 1 values would suffice Using the position on the list as an index on this table the value of the metric increase could be found immediately If the list length is 7 and there are B branches per node B hypotheses it is possible that only k lt B hypotheses appear on the ordered list In this case requests for the position of the ph most likely branch for k lt j lt B will all return the value 1 to indicate that the hypothesis is not on the list This means that all these B k branches are equiprobable so Some arbitrary choice must be made from among them The subroutine also does this by picking in a random yet repeatable way the information bits corresponding to one of these B k branches The choice must be random so that when the all zero message is used to test a channel the algorithm will not accidentally favor this message It must be repeatable so that the algorithm will be able to search all branches at a node and always do it in the same order if it should return to this node The choice is made in such a way that successive values of j k lt j lt B will return the information bits for different branches Thus the information bits returned by the subroutine are unique for all j 14 jS B but the position returned will be different for only k 1 values of j since B k values of j return ti The more general case in which the metric increase for a branch is not a monotone fu
87. hines Thus the recorder chosen need not write IBM compatible tapes If the tape produced is nonstandard then standard computer tape drives will not be able to read it Therefore the portable recorder must also be used to play the tape back into the computer 12 The list of portable digital tape recorders is quite limited After ruling out the very high priced recorders intended for airborne or other mobile use we selected a Precision Instrument Company model PS 216 D recorder This machine provides up to 16 tracks of binary informa tion on 1 tape 105 in reel The recorder will operate at tape speeds of 60 2 in sec 0 through 5 which provides for a wide range of speed compression between recording and playback At 60 in sec one bit of data may be recorded on each track every 50 It is an important system consideration that this recorder is not capable of being started or stopped quickly the time for these operations is 1 to 3 sec Analog to digital conversion equipment is required to change the voltages at the outputs of the receiver into a form acceptable for the recorder Since all M receiver output voltages are produced simultaneously we must have M sample and hold S H devices which will simul taneously sample these outputs An M channel multiplexer must then transfer each of these voltages to an analog to digital A D converter Each time a conversion is finished the binary output of the A D converter
88. his realization prompted study of what the user would require of the system and indeed a definition of the person for whom the system was designed Without these guideposts to start from various alternative methods of implementing the system could not have been studied effectively to see how they satisfied these criteria and the usual boundary conditions of time money and equipment availability The important characteristic of the decision process involved in these choices was the tremendous interaction between seemingly distant decisions The process which seemed to work best was to push forward a little at a time in all areas look for inconsistencies between de cisions and then push forward again A willingness to accept the possibility that an earlier decision was not the best and an ability to keep in mind all the previously discarded solutions for use as a substitute are necessary Otherwise there is danger that instead of revising a decision the design will be warped by forcing adaptation to the decision which proved inferior The author feels that the flow chart method often employed in system design is not entirely adequate particularly for our problem since it ignores the interactions which do exist and are important There is a rather obvious area in which further work is necessary to increase the effective ness of the system One problem is to include the ability to simulate channels on the computer during execution of the algo
89. ich is the production of the metavariable lt INUMB gt meaning integer number to be substituted for 1 when the production of NS is evaluated resulting in the two machine instructions MOVEI 15 2 PUSHJ 1 SHFTL being put out A more interesting yet still simple rule is that for collecting a histogram of log of the values of any real variable LOGPROBNAMEP4IP MOVEI 9 PR HRLM 9 PR JRST 4257 PPR BLOCK 256 4 4 LEFT gt MOVEM 91 t LDB 15 XWD 331000 9 AOS PR 15 1 1 13 The statement LOG PROB A will cause A to be substituted for 1 NAME means real variable name The function 9 substitutes a number for itself which is the number of the accumulator which the machine is to reference this number is set to 3 at the beginning of each statement and can be increased by one by use of 15 and decreased by one by use of 16 The function 4 causes the new rule which is given as its argument to be added to the syntax table The rule added is A lt XLEFT gt MOVEM 9 A LDB 15 XWD 331000 9 AOS PR 15 In the original rule inside the production of the rule to be added we used 1 to refer to what became A The character is used to signify that this 1 refers to a component of the rule LOGPROB NAME rather than to a component of the rule in whose production this 1 appears However when we want the character to be put out we must prefix it with to indicate that it is to b
90. ion about the signal instead of M voltages In any event restricting the system input to be a set of M voltages entails little loss of generality if M can be chosen sufficiently large B Recording Equipment We therefore seek to make available to the computer simulation these voltages for each use of the channel Clearly some kind of recording equipment must be used since the receiver can seldom be brought to the computer and the data rate of the receiver is seldom that required by the computer Of course any recording equipment must be portable Since real sequential decoders would most likely have some analog circuits which would be driven by the set of M voltages from the receiver and since analog circuits are capable of at least 1 percent accuracy any recording system should have an equal accuracy Otherwise experimental results might be as much a function of the tape recorder as of the communications channel Experiments which were made on multichannel FM recorders indicate that this accuracy is barely attainable and only after elaborate alignment procedures It was therefore decided that digital tape recording techniques offer the best means of preserving the data It was also decided very early that there was no point in trying to record data on t in tape in IBM format since it would be impossible to adjust the timing of the communications system So that data would be written on tape at the exact density required by IBM tape mac
91. l Research Branch Office Box 39 Navy No 100 F P O New York New York 09510 Commanding Officer Office of Naval Research Branch Office 1030 East Green Street Pasadena California Commanding Officer Office of Naval Research Branch Office 219 South Dearborn Street Chicago Illinois 60604 Commanding Officer Office of Naval Research Branch Office 207 West 42nd Street New York New York 10011 Commanding Officer Office of Naval Research Branch Office 495 Summer Street Boston Massachusetts 02210 Director Naval Research Laboratory Technical Information Officer Washington D C Attn Code 2000 Commander Naval Air Development and Material Center Johnsville Pennsylvania 18974 Librarian U S Electronics Laboratory San Diego California 95152 Commanding Officer and Director U S Naval Underwater Sound Laboratory Fort Trumbull New London Connecticut 06840 Librarian U S Naval Post Graduate School Monterey California JOINT SERVICES REPORTS DISTRIBUTION LIST continued Commander U S Naval Air Missile Test Center Point Magu California Director U S Naval Observatory Washington D C Chief of Naval Operations OP 07 Washington D C Director U S Naval Security Group Attn G43 3801 Nebraska Avenue Washington D C Commanding Officer Naval Ordnance Laboratory White Oak Maryland Commanding Officer Naval Ordnance Laboratory Corona California Commanding Officer Naval Ordnance Test St
92. lified requesters may obtain copies of this report from DDC MASSACHUSETTS INSTITUTE OF TECHNOLOGY RESEARCH LABORATORY OF ELECTRONICS Technical Report 450 LINCOLN LABORATORY Technical Report 396 September 13 1965 AN EXPERIMENTAL FACILITY FOR SEQUENTIAL DECODING C W Niessen This report is based on a thesis submitted to the Department of Elec trical Engineering M 1 T September 3 1965 in partial fulfillment of the requirements for the Degree of Doctor of Science Abstract Sequential decoding is one of the few practical methods known for communicating over a noisy channel which for interesting rates attains the error correction capability pre dicted by Shannon s coding theorem Since analytical investigations are limited by the difficulty of the mathematics involved experimental studies into the behavior of sequen tial decoding are necessary This report describes the system design and implementation of a facility for the experimental study of sequential decoding that may be used at M I T by graduate researchers in communications theory Flexibility and ease of use are the primary requirements of this system Thorough investigation of the characteristics of sequential decoding and likely prob lems to be studied led to a system based upon the Project MAC PDP 6 computer The design reflects constraints imposed by time cost equipment availability and the antic ipated class of users A portable data acquisition syst
93. mple integer variable except that they may not appear on the left side of an assignment statement They are actually open subroutines RECVAL has a value equal to the signal value of the specified list member and RECNUM has value equal to the signal number of the specified list member Statements 39 and 41 should be used when statement 25 has been used with an argument greater than 1 otherwise statements 40 and 42 should be used If statement 25 has been used with an argument of 1 the node depth N should be the first argument of statements 40 and 42 If statement 25 has not been used at all the first argument of statements 40 and 42 should be the index on the ordered lists K Statement 43 MODE is an integer variable whose value is 0 after the monitor command MODEO has been used to turn off the display MODE has value 1 if the monitor command MODE has been used to turn on the display It is initially turned on Statement 44 is a subroutine call which has six arguments A typical use might be CALL FIND POS INF B LI 4 N 2 50 which gives to POS a value equal to the position on the ordered list of the LIP most likely hypoth esis that is encoded signal number when there are four branches per node at node N and baud 2 Simultaneously INFB is given a value equal to the information bits to which this hypothesis corresponds When there is only one baud per branch in the tree the last argument must be 0 A hypothesis is counted
94. my Strategic Communications Command Washington D C 20315 Commanding Officer U S Army Materials Research Agency Watertown Arsenal Watertown Massachusetts 02172 Commanding Officer U S Army Ballistics Research Laboratory Atin V W Richards Aberdeen Proving Ground Aberdeen Maryland 21005 Commandant U S Army Air Defense School Attn Missile Sciences Division C amp S Dept P O Box 9390 Fort Bliss Texas 79916 Commanding General Frankford Arsenal Attn SMUFA L6000 Dr Sidney Ross Philadelphia Pennsylvania 19137 Commanding General U S Army Missile Command Attn Technical Library Redstone Arsenal Alabama 35809 U S Army Munitions Command Attn Technical Information Branch Picatinney Arsenal Dover New Jersey 07801 Commanding Officer Harry Diamond Laboratories Attn Mr Berthold Altman Connecticut Avenue and Van Ness St N W Washington D C 20438 Commanding Officer U S Army Security Agency Arlington Hall Arlington Virginia 22212 Commanding Officer U S Army Limited War Laboratory Attn Technical Director Aberdeen Proving Ground Aberdeen Maryland 21005 Commanding Officer Human Engineering Laboratories Aberdeen Proving Ground Maryland 21005 Director U S Army Engineer Geodesy Intelligence and Mapping Research and Development Agency Fort Belvoir Virginia 22060 JOINT SERVICES REPORTS DISTRIBUTION LIST continued Commandant U S Army Command and General Staff
95. n accordance with the user s specifications The information bits along a particular branch are used as the index on these tables and the cor responding table entry is the check bits for that branch Details on how the arrangement of the check bits may be specified and how the subroutine is initialized and called are found in Appendix A 2 Ordered List Sorts Since we formed the ordered lists from the input data we must now decide how to make use of them Choosing a branch to advance along from a node requires the computation of the metric increment for each branch at the node which in turn will usually require some kind of sort on the ordered lists of input data for that node Just what mathematical expressions will have to be evaluated to determine the metric in crement for a branch This may vary with the algorithm used but some insight can be provided by study of the metric in the Fano algorithm log R where r is the received information about this baud the ordered list or any part of it desired and 5 is a particular hypothesis signal number obtained from the coder is the probability of receiving r taken over the ensemble of convolutional codes 18 For some channels Pr r C a constant for all r and the metric reduces to computing log Pr r 8 C R An example of this type channel is M orthogonal signals in white Gaussian noise when is the ordered list of signal numbers only If
96. n must be put out concerning what the algorithm has done in searching the tree All these things re quire programming effort and much of it is I O programming which is particularly difficult for an inexperienced programmer 10 The aim of our experimental facility based entirely on a programmed system is to provide a system which will do many of these things automatically The user should have to do little more than describe his algorithm in some speciallanguage which will also contain special Statements for control of a monitor system consisting of control I O program and other useful subprograms which will simulate the functions of the coder and metric evaluator Particular attention must be paid to the simplicity of the programming language in order to minimize the learning effort At the same time the compiler for this language must produce efficient code this is necessitated by the need to process large volumes of data to obtain statistically sig nificant data about events of low probability Even so collection of statistically significant data on events of extremely low probability would still require an excessive amount of machine time For example to collect data on an event which occurs with probability of 40710 would require that more than 1012 branches be processed even at 100 per branch this would take more than three years of machine time Another obvious area of importance concerns the form of output available from
97. n of two numbers and branch on the result These functions are provided in a very simple format in almost any of the algebraic languages available today This is as anticipated the actual description of the algorithm is relatively simple the difficult part lies in the I O programming and in deciding on data formats etc This work al ready has been performed to a great extent in the programs of the monitor and display systems Therefore it is not necessary to be able to use the language to write a program to draw the display of the tree on the scope and it is not necessary to be able to describe the convolutional 25 coder in the language nor is it necessary to write a program in this language to control the input of the ordered lists All that is required of the language is that it has statements which can control those programs already written Since an algebraic language satisfies many of the requirements for a language to describe the sequential decoding algorithm it seems sensible to try to modify an existing language rather than to construct a completely new one which would only result in a great deal of work duplicat ing what is already available Of course modifying an existing compiler can be very difficult it depends upon the method by which the compiler has been implemented The PDP 6 is supplied with a version of Fortran gt which was written by P Samson of 16 17 DEC and is patterned after the work of Irons and Bastian
98. n open subroutine for referencing either the 27 signal value or the signal number of a particular member of a particular ordered list are avail able Thus the reference appears to the user as if he were referencing a simple table which he is not since the ordered lists are stored in memory in the packed form which has previously been described Another type of initialization statement is used to set up what appears to the user as a table of infinite dimension This is used when it is desired to have the node depth N as one subscript of a subscripted variable Since each value of the subscript requires one word of core storage this table would take up all of memory Actually the table assigned by this initialization statement is of finite length No The value of N is always taken modulo Ny before any reference is made to the table Thus the user appears to have a table of infinite dimension but he can actually reference only the Ny entries around the current value of N The ability to make use of such a table is determined by the nature of the tree search algorithms it will not be necessary to reference data about nodes too far away in order to make a decision on how to proceed with the search Likewise the probability of having to back up a large number of nodes in the tree is very small hence if the actual table length is something like 256 the effect is the same as if it were infinite For example to keep this kind of table named LAMBDA of
99. n this position Start the tape transport by pushing POWER DRIVE and RECORD in that order with the speed set correctly e Record about 1 minute of blank tape to provide a leader for repositioning the tape f Turn the DATA switch to DATA Recording will begin with receipt of the next trigger pulse g When recording is finished move the DATA switch back to TAPE then turn off all equipment For further details on the data collection system see the instruction manuals provided by Adage Inc and Precision Instrument Company III ORDERED LIST FORMATION The procedure for playback of data recorded on the digital tape recorder is described in this section together with instructions on the use of the programs for forming the ordered lists for each baud 38 A Tape Recorder Adjustment of the digital tape recorder to obtain a minimum number of errors on playback is quite critical and difficult A special program to aid in this adjustment is described in the system maintenance information Essentially there are two adjustments for each channel which must be made each time playback speed is changed It is recommended that this be done as in frequently as possible One adjustment is the gain of the read amplifier and the other is the voltage level for deciding between 1 anda 0 The tape recorder manual should be consulted for details When DEC Tape is used for storage of the ordered lists the maximum playback speed is 14
100. nction of its position on the list requires that the metric increase for all hypotheses be computed first then the j largest selected To aid in this process a subroutine a Fortran function called XPFINDF is provided which returns the position on the ordered list of the hypothesis signal number specified as the argument of the subroutine In the case of more than one baud per branch the metric increase for each baud of branch must be computed and totaled for the branch and this process must be repeated for each branch Only when the sums for all the branches are complete may the jh largest be chosen The second subroutine XPFINDF provided will prove useful here as well There are several other extensions of these sorts that suggest themselves For instance Similar routines could be written specifically for channels with multi amplitude signals and 19 for phase modulated channels Most of these are quite specific in their applications hence it is felt they should be implemented by the user 3 Collection of Statistics One decision made in specifying the system was that it should be able to collect statistics on the performance of the decoder and yet we must not require the user to do much programming to accomplish this A look at the character of sequential decoding suggests likely statistics to collect and ways in which this might be implemented The behavior of the waiting line received signals waiting to be processed
101. necessary searches Remembering that one matched filter will usually be necessary for each channel symbol it seems unlikely that alphabets of more than 256 or 512 would be of practical interest Thus no more than 8 or 9 checks bits per baud need be formed If the modulation technique used is amplitude modulation of one waveform as might be used for a narrow bandwidth high S N ratio channel these check bits would then specify the particular amplitude to be used Component accuracy makes it unlikely that more than 128 amplitudes would be used so no more than 7 check bits would be required for this case The number of branches per node in the tree is determined by the number of information bits assigned to each branch of the tree and must therefore be power of two On one hand a large number of branches at each node means a large amount of calculation will be required to compute the metric increments for each of them and to select the jh most likely On the other hand it may be desirable to have many information bits per branch to improve the re liability of the decision at each node A problem is often formulated in terms of being allowed a certain amount of energy for each information bit to be transmitted If the baud energy to noise ratio is very small when the baud includes energy for only one information bit errors are likely This is particularly true when using incoherent detection If the energy for several information bits is lump
102. nf bits likelihood lt branches node lt node number baud number gt XFINDF lt hypothesis gt lt node number gt lt baud number XPFINDF lt hypothesis gt lt node number SAVE COMMON SAVE 1 Variable Names and Array Specifications One minor but important change is that variable names are of type integer if they begin with any of the letters H I J K L M N O and P and are of type real floating point if the variable name begins with any other letter The integer name N is reserved for use as the node depth in the tree and should not be used for any other purpose The integer name K is reserved for use as the index on the input data that is on the ordered lists This means for example that when there are three bauds per branch in the tree K 3N Although under certain con ditions explained under statement 25 on p 47 it may be possible to omit use of K as index on the input data the name K may still not be used for any other purpose Use of the declarations DIMENSION COMMON and EQUIVALENCE are also different from DEC Fortran EQUIVALENCE statements are not permitted Special forms of DIMENSION and COMMON are provided to permit direct use of the node depth as one of the subscripts in a subscripted variable These special statements are SAVE and COMMON SAVE The statements DIMENSION A 256 and SAVE A 256 both reserve 256 memory locations for a table of values of the subscripted variable
103. ng out two bits which are the first information bit followed by a check bit from parity net P4 L P1 and finally by putting out two bits to specify the second baud namely the second in formation bit and a check bit from parity net P2 I P2 The symbol B is used to separate the bauds The parity net P1 is specified by writing P4 and then a 36 digit octal number which gives the connections to the shift register Then whenever the next branch is to be generated in the program the executable statement GENERATE 1 should be used The 1 refers to the particular SEQUENCE statement given above up to ten different SEQUENCE statements could be used and each of them is given an identifying number For example more than one SE QUENCE statement would be used when simulating a decoder for a time variant channel using feedback where the transmission rate R would be changed as the channel changed A different SEQUENCE statement would be used for each rate C Requirements to Control Display Control of the display program requires another class of statements Rather than re quiring a user to pass along to the display program the metric increment he computes for a new branch only a single initialization statement is required in which the user specifies the name of the variable he will use to represent the metric increments This variable is most likely a subscripted variable and the subscript is the node depth The presence of this initialization statement
104. ns on Channels Hardware for Playback Ordered Lists Programs for Ordered Lists OS Ic O Woe OPERATING SYSTEM A Available Subprograms B Output Display C Monitor System SPECIAL LANGUAGE Requirements to Describe Algorithm Requirements to Manipulate Coder Requirements to Control Display Requirements to Reference Input Data HDH Requirements to Collect Statistics EXAMPLES TESTS AND CONCLUSIONS A Example Chosen B Example of Display C Example of Statistics D Conclusions APPENDIX User s Manual I Introduction II Data Collection Ordered List Formation VI Writing the Algorithm V Running the Programs APPENDIX B Data Collection System APPENDIX C Display of Tree APPENDIX D Syntax Directed Compiler Acknowledgments References iii e e pe 12 12 13 14 14 15 16 16 20 23 25 25 26 27 27 28 28 28 30 33 34 37 37 37 38 40 60 67 69 72 75 76 AN EXPERIMENTAL FACILITY FOR SEQUENTIAL DECODING IL SYSTEM DESIGN AND OBJECTIVES Introduction In 1948 C E Shannon published the fundamental paper which first proved the existence of methods for making as small as desired the probability of error in the reception of signals dis torted by noise This result called the coding theorem holds true only so long as the rate of transmission is less than a particular value known as channel capacity which is determined by the statistical charact
105. nstandard I O devices to this machine Also available is an advanced display system containing a character generator and line segment generator which would be excellent for graph ical presentation of data in real time This brings up another desirable characteristic of the PDP 6 which was chosen as the computer to be used in the system It is used as a programmer operated machine separate from the MAC time sharing system Because of this and the excellent display facility a whole new area of operator interaction with the program as it runs is made possible a feature which was never available in the previous computer simulations on a batch processing IBM 7094 The uses of this capability will become more obvious when the details of the system are dis cussed in Sec III I DATA COLLECTION SYSTEM Given the decision that input to the system should come from the output of demodulation equipment a way must be found to make these outputs available to the system 11 A Form of Input Since data for the computer simulation are to be taken from experimental communications Systems we must decide upon a suitable format for such data Consider the communications system which has M different orthogonal signal waveforms it can send over the channel For many cases of interest it is shown in communications theory that the optimum receiver involves a bank of matched filters with one matched filter for each of the allowable channel waveforms A
106. nt 58 ICOUNT ICOUNT 4 with the statements for box 1 5 Restart Ability In order to restart the algorithm we will insert the statement RESTART DATA at state ment 1 quantities which must be saved are L IT and FLAG The tables LI LMBDA HYP and ISR must also be saved If all these entries are known then the state of the coder is known and the algorithm can be restarted at this point Note that the contents of the shift register are automatically saved A few more obvious initialization statements are needed Before entering box 1 in the algorithm the variables IT FLAG N and L must be set to 0 and the shift register cleared Values must also be assigned to ITO IWLM and ISDM LI 0 must be set to 1 C Use of Compiler and Assembler To compile and assemble a Fortran program the following procedure should be used Put the tape marked SEQ DECODING SYSTEM on drive 1 and the user s tape on drive 2 Neither tape should be write locked It is assumed that the program to be compiled has been entered as a DEC Tape file on the user s tape by using TECO see below Start MACDMPT by pushing STOP IO RESET and lifting READ IN Next type FORT RN followed by carriage return to load the compiler Type 1EI2ER name C 9 where name gt is the name of the file to be compiled and is the key marked ALT MODE A name is constructed of one or two combinations of up to six characters each The two halves if there are two
107. nt number 43 SHIFT REGISTER UP TO 108 BITS 3 62 3665 pe NX UP TO 36 MODULO 2 ADDERS SOURCE SELECTION MATRIX BAUD 1 SELECTION MATRIX BAUD 2 SELECTION MATRIX BAUD 3 SELECTION MATRIX BAUD 4 UP TO 10 BAUDS Fig A 1 Convolutional coder is used to set the length of the shift register up to a maximum of 108 bits Statement 2 P Kint Y Coctal number gt is used to specify the parity nets by giving an octal number which when expanded to binary form indicates whether or not each bit of the shift register is connected to the modulo 2 adder A 1 implies connection a 0 implies no connection Thus Pi 4 3 1 100011001 means check bit number P1 is the sum modulo 2 of bits 1 5 6 and 9 of the shift register The octal number must be filled out with zeros to some multiple of 12 octal digits Of course no more than 36 octal digits are allowed Any number of parity nets may be specified but only 36 may be used Statement 3 SEQUENCE Cint gt 4seq description is used to specify how the information and check bits are to be grouped to form the complete branch signal Since several different groupings may be needed several different SEQUENCE statements may be used Each is given as an identifying number the number before the The sequence description consists of a string of symbols separated by commas The allowed symbols are
108. nt touched back to the left edge of the display will then be intensified as long as the light pen is not removed 65 TRIGGER O CLOCK FRAME ADVANCE PARITY SIGN 1 NRZ 2 TO TAPE CONVERTER 3 RECORDER ANALOG apc 4 INPUTS 5 6 7 8 9 3k END OF CONVERSION Fig B 1 Data collection hardware 3 62 3664 PI PI DATA LINE DATAI DRIVERS Ar O o DEVICE SELECTION PULSE O AMPLIFIER O 71 0 REGISTER READ IN I ysec DELAY wearers I CONVERTERS f f f 3 S P 9 8 7 6 5 4 2 1 F FROM TAPE RECORDER Fig B 2 I O buffer from recorder to PDP 66 APPENDIX B DATA COLLECTION SYSTEM The data collection system is centered around a Precision Instruments Company model PS 216 D digital tape recorder which reads and writes up to 16 tracks of binary information on a 1 in wide tape Transport speeds are 60 30 15 75 and 3iin sec The maximum transfer rate at 60in sec is word every 50 for lower speeds this is scaled proportionally Equipment to sample and hold S H up to ten analog voltages convert them to a digital number and write them on tape was designed The detailed engineering and construction was performed by Adage Inc A block diagram of this equipment is shown in Fig B 1 An external trigger pulse supplied by the user causes the 10 S H devices to sample the voltages at their inputs The trigger pulse also turns on a clock which
109. oder generates for each branch a 3 digit binary num ber from the information bit and 2 parity check bits this 3 digit number then selects one of theM 28 23 orthogonal waveforms 28 The demodulator forms an ordered list of length 4 of the channel signal numbers the actual signal voltages are not saved With this channel and using the Fano algorithm the correct function for the metric increment is Pr r sj log R where r is the ordered list and R 1 is the rate in information bits per baud The set sj is the 8 orthogonal waveforms Note that Pr r sy is only a function of the position of on the list If 5 is off the list we shall say it is in position 2 1 On one hand if 8 is on the list the 1 other members on the list are selected from M 1 zero mean Gaussian random numbers hence all M 1 M combinations of 1 numbers are equally likely On the other hand if 8 is not on the list the members of the list are all chosen from a set of M 1 zero mean Gaussian random numbers hence all M 1 M 1 combinations of numbers are equally likely Thus the set of numbers Pr r s consists of only 2 1 values We shall define Pj as the value of Pr r 54 when is in position i on the list We also define dij Pr in position i when 5 sent which clearly equals d Pr sent signal in position i Thus we can write eM SHAM
110. of this report The detailed engineering and construction was done by Adage Inc A more complete description of the equipment will be found in Appendix B C Restrictions on Channels The decision to provide only ten S H units does place some restrictions on the system capabilities In particular it would seem at first glance that the channel alphabet would be restricted to 10 this is not necessarily so When the channel waveforms are not orthog onal fewer than M voltages can describe the receiver output in some cases ten may be enough Also when the channel is symmetrical i e all channel symbols are disturbed equally by the noise sending the all zero information bit sequence is equally as good as sending any other message when performance criteria are to be measured This fact sometimes leads to the ability to record larger alphabets directly For example in the case of M 16 orthogonal signals in white Gaussian noise if the outputs for channel symbols 0 through 7 are recorded 13 when channel waveform 0 is sent and then the same outputs are recorded again when no wave form is sent this second set of eight outputs will have the same statistics as the outputs for symbols 8 through 15 Thus an alphabet of 16 may be simulated Use of nonsymmetrical channels presents another problem as well as restricted alphabet size Since sending the all zero information bit sequence may be an insufficient test a real convolutional coder may b
111. ograms by typing 14MSYSTEM N Then when the tape stops type MFORSE N G T PDP 6 TECO July 1965 Memorandum MAC M 250 Project MAC MILT 23 July 1965 60 if there are any I O statements in the user s program or if the automatic collection of statistics is used If FORSE is not loaded the programs will still run but no l O will take place Next load the user s programs from the user s tape by typing 2M lt name gt LO where 2 is the user s tape number and lt name gt is the name of the relocatable binary file to be loaded Any number of programs may be loaded this way After these programs have been loaded type 1MLIBRARY N to load any library programs which may have been requested Next type 700 and the loader will print out the names of all the programs which have been loaded and where they are located in memory If any unsatisfied library requests remain they will be printed out under the name of the program requesting them If there are no missing programs type TO to load DDT All programs have now been loaded The entire contents of memory may now be saved as a single program by typing 2 followed by D lt name gt after making sure that the user s tape number 2 is not write locked In the future this entire set of programs may then be loaded by using MACDMP simply by typing Be followed by y Execution of the program may be started by typing G follo
112. oken into four parts The first part we shall call the signal processor it takes as its input the set of voltages produced by the receiver each time the channel is used and con verts these voltages to a digital representation which is stored away in a buffer memory until the decoder is ready for the data The second part of the decoder is the convolutional coder which is identical to the one in the transmitter and is used to generate the signal assignments made to each branch of the tree The third part of the decoder is the metric evaluator which computes the metric increments associated with each branch at the node in the tree where the algorithm is in its search The inputs to the metric evaluator are the signal assignments made to the branches at this node supplied by the convolutional coder and the data about the received signal for this branch supplied by the signal processor With the information provided by the metric evaluator the fourth part of the decoder executes the particular sequential decoding algorithm desired and decides on which branch to advance or whether to back up in the tree The capabilities required of each of these four elements of the decoder are determined by the types of experiments which are likely to be of interest Although it is impossible to specify in advance all the problems that will be studied using this system a crucial part of the system design is the thoughtful anticipation of many modes of investigation and
113. ol of Engineering Sciences Arizona State University Tempe Arizona Dr Leo Young Stanford Research Institute Menlo Park California Hunt Library Carnegie Institute of Technology Schenley Park Pittsburgh Pennsylvania 15213 Mr Henry L Bachmann Assistant Chief Engineer Wheeler Laboratories 122 Cuttermill Road Great Neck New York University of Liege Electronic Institute 15 Avenue Des Tilleuls Val Benoit Liege Belgium University of California at Los Angeles Department of Engineering Los Angeles California California Institute of Technology Pasadena California Attn Documents Library University of California Santa Barbara California Attn Library Carnegie Institute of Technology Electrical Engineering Department Pittsburgh Pennsylvania University of Michigan Electrical Engineering Department Ann Arbor Michigan New York University College of Engineering New York New York Syracuse University Dept of Electrical Engineering Syracuse New York Yale University Engineering Department New Haven Connecticut Bendix Pacific Division 11600 Sherman Way North Hollywood California General Electric Company Research Laboratories Schenectady New York JOINT SERVICES REPORTS DISTRIBUTION LIST continued Airborne Instruments Laboratory Deerpark New York Lockheed Aircraft Corporation P O Box 504 Sunnyvale California Raytheon Company Bedford Massachusetts Attn Librarian UNCLASSIFIED
114. ons made during searches appropriately defined One possible definition is that a search begins when the algorithm fails to advance provided a search is not already in progress and the search terminates when the algorithm first succeeds in advancing to a depth beyond the point at which the search started Two histograms one of search depth and one of the number of branches looked at during searches are collected auto matically if desired B Output Display Just what information about a sequential decoding tree search is most important to that user The answer to this question is not always clear One thing is certain however by the very nature of the process a complete description of what the decoder has been doing consists of the paths it has taken in searching the tree together with the values of the increments in measuring function along these paths This information can clearly be presented in the form of printed table of some kind but such an output form does not aid much in visualization of the decoding process One is likely to end up with reams of data mostly uninteresting through which one has to plod in order to find the few events which are really of interest Furthermore such printed output comes after the fact Should an interesting section of the tree search be found and more data about this section be desired one would have to run the problem again and wait for the printed listing to be ready 20 The man machine
115. r than a certain number return to examine some points in detail with the display turned on In order to provide the restart capability the user is required to specify what quantities in his algorithm represent the state of the decoder such as the total metric the contents of the shift register the state of any program flags and the contents of the tables which provide in formation required to back up in the tree If these quantities are reset to the proper values the algorithm will restart These data will usually include the contents of several tables an amount of data that cannot be stored in core memory for lack of room The procedure chosen is to write these data out on DEC Tape every so many nodes the frequency being specified by the user The user can also force restart data for the present node to be stored away regardless of the nominal depth at which this storage would occur When these data are stored away the user may restart the algorithm at any one of the points saved by means of a monitor command on the teletype One other feature available through a monitor command is access to DDT a debugging pro gram Use of DDT provides limited ability to make changes in the algorithm provided the user is willing to make the changes in machine code A more likely use for DDT would be to change values of parameters in the decoding algorithm since this is done very easily IV SPECIAL LANGUAGE Since the user is required to program
116. ranch on the average and there was one baud per branch with an ordered list of length from a channel alphabet of size M the transfer rate required would be 10 log M 10 bits sec For an alphabet of 32 and a list of 16 this would be 2 4 10 for a 36 bit word This is not an unreasonable transfer rate to expect with modern I O devices bits sec or somewhat more than 100 psec Of course the rate needed would be higher for longer lists and lower for shorter lists On one hand the computation required to form an ordered list the amount of storage re quired to preserve it and the transfer rate required to make use of it all increase with the length on the other hand Wozencraft and Kennedy indicate that long lists may not be needed for large alphabets limit of 16 was therefore placed on the list length which can be prepared 15 The capability of preparing ordered lists is provided by the set of programs known as the input system which consists of four programs MAIN PG1 PG2 and PG3 MAIN is an initial ization program that asks the operator questions via the teletype such as what is the alphabet size and what list length is desired The operator types in the answers to these questions as they are asked MAIN then gives the operator instructions to start the tape recorder for play back PGi accepts data from the recorder and puts it in a buffer PG2 turns it into ordered lists of the desired length lt 16 and puts
117. ranches at the node currently under consideration will be displayed thereby showing the metric increases associated with each of them The extra coding is necessary because it is sometimes possible to choose the branch on which to advance without actually computing the metric increase for all branches such as choosing the branch which is the qa hypothesis on the ordered list To display the other branches code to evaluate their metric increases must be included These branches vrill also be labeled with the signal number to which they correspond expressed in octal The ordered list from a previous node can be displayed instead by selecting the desired node with the light pen However the table of coder assignments for this node is not shown A few other useful items are also displayed The depth in the tree in number of nodes from the origin of the current position is displayed as a decimal number and the node depth every 10 nodes is marked across the bottom of the screen Also available is a display of a number of equally spaced horizontal lines which may be used as thresholds in the decoding algorithm Any one of them may be shown brighter than the rest to make it stand out for use as a display of a running threshold or if desired only a single horizontal line can be drawn The purpose of the display is to provide as much information about what the algorithm has been doing as possible in a form which is as easy for the user to digest
118. rd several branches 30 a PREPARE TO ADVANCE ON 7 b TRY TO ADVANCE FAIL c BACK UP AND CHECK 2nd d LOWER THRESHOLD MOVE FORWARD LIKELY FAIL e PREPARE TO ADVANCE ON 1 f TRY TO ADVANCE FAIL Fig 5 a l Example of a search 31 62 3191 o f 62 3191 g 1 9 BACK UP AND CHECK 2nd h BACK UP AND CHECK 2nd LIKELY FAIL LIKELY i TRY TO ADVANCE FAIL j BACK UP NO MORE BRANCHES TO TO TRY k BACK UP AND CHECK 2nd 1 BACK ON RIGHT PATH LIKELY Fig 5 Continued 32 C Example of Statistics The ability of the system to collect statistical data was also tested Histograms of the number of computations search depth and waiting line were collected The same data for 35 000 nodes were used to collect these statistics for various values of the threshold increment T in the Fano algorithm Figure 6 is a plot vs N of the number of times a search took place of depth greater than or equal to N this curve is shown for three different values of the thresh old increment 5000 3 62 3795 2000 1000 500 200 NUMBER OF SEARCHES 50 0 Fig 6 Plot of number of searches of depth gt H vs N The effect of this parameter on the behavior of the algorithm is quite clear and not at all unexpected A large value for the increment results in fewer shallow searches but it increases the number of deep searches since the algorithm may advance se
119. re 5 a shows the algorithm at depth 73 in the tree attempting to advance one node The two branches at the current node are displayed and labeled with their coded channel symbols 0 and 7 The algorithm is on the correct path but is about to advance on the incorrect path labeled 7 which corresponds to an information bit of 1 see the displayed GEN table The ordered list for this node shows that signal number 7 is in position 1 on the list while signal number 0 is in position 2 hence 7 is the most likely branch The fact that branch 7 is about to be chosen is indicated by the contents of the shift register shown at the top of the screen The entry for this branch is a 1 Directly under this 1 is the corresponding coded channel signal number 7 The two alternatives available after the algorithm has advanced on the wrong path are shown in Fig 5 b Even the most likely branch 4 falls below the running threshold The algorithm looks back to the previous node 73 and since this node is above the threshold it backs up to see if the second most likely branch at node 73 will stay above the threshold Figure 5 c shows that the second most likely branch 0 fails The algorithm looks back to node 72 and since it is below the threshold the threshold is lowered and the algorithm advances from node 73 along the most likely branch 7 Figure 5 4 shows the display after this advance The algorithm is now attempting to ad vance from node 74 and this tim
120. rials Sciences Advanced Research Projects Agency Department of Defense Washington D C 20301 Headquarters Defense Communications Agency 333 The Pentagon Washington D C 20305 Defense Documentation Center Atin TISIA Cameron Station Bldg 5 Alexandria Virginia 22314 Director National Security Agency Attn Librarian C 332 Fort George G Meade Maryland 20755 Weapons Systems Evaluation Group Attn Col Finis G Johnson Department of Defense Washington D C 20305 National Security Agency Attn R4 James Tippet Office of Research Fort George G Meade Maryland 20755 Central Intelligence Agency Attn OCR DD Publications Washington D C 20505 Department of the Air Force AUL3T 9663 Maxwell AFB Alabama 36112 AFRSTE Hqs USAF Room ID 429 The Pentagon Washington D C 20330 AFFTC FTBPP 2 Technical Library Edwards AFB Calif 93523 Space Systems Division Air Force Systems Command Los Angeles Air Force Station Los Angeles California 90045 Atin SSSD SSD SSTRT Lt Starbuck AFUPO Los Angeles California 90045 Det 6 OAR LOOAR Air Force Unit Post Office Los Angeles California 90045 Systems Engineering Group RTD Technical Information Reference Branch Attn SEPIR Directorate of Engineering Standards and Technical Information Wright Patterson AFB Ohio 45433 ARL ARTY Wright Patterson AFB Ohio 45433 AFAL AVT Wright Patterson AFB Ohio 45433 AFAL AVTE R D Larson Wright
121. rithm This would eliminate the dependence on data collected from experimental equipment and provide much larger volumes of data than could be obtained other wise Of course this probably cannot be done for many channels of interest but the ability could be made available for simple channels 34 A second problem is to incorporate some device other than DEC Tapes for storing the ordered lists The amount of data which can be collected on the tape recorder is at least an order of magnitude larger than the amount of data the DEC Tape can hold Thus the DEC Tape is a bottleneck in using all the collected data Other devices will probably become available as the PDP 6 system evolves 35 APPENDIX A USER S MANUAL I INTRODUCTION The primary purpose of the User s Manual is to provide a reference which gives the following information necessary to use the system a Use of the portable data collection system b Description of the features of the special version of Fortran used to program the algorithm c Description of the monitor commands to be used during execution of the algorithm d Mechanics of using the computer to prepare a problem for execution H DATA COLLECTION The data collection system provides the ability to record for later playback into the com puter the outputs of experimental communications systems The system was designed primarily for use with a particular form of receiver The re ceiver is assum
122. runs at one of six se lected speeds to match the speed of the recorder Each pulse from the clock causes the multi plexer MPX to advance to the next channel thereby connecting the output of the next S H unit to the input of a 10 bit analog to digital converter ADC The ADC begins its conversion 10 usec after the MPX advances and completes it 30 usec later At this end of the conversion each output bit of the ADC which is a 1 causes the corresponding flip flop in the nonreturn to zero NRZ converter to be complemented Each of these flip flops drives one channel of the tape recorder thus converting the level output of the ADC into the NRZ form required by the recorder At the end of the conversion an even parity digit on the ten converter output digits is produced and written on the tape recorder in an eleventh channel Every time a word is written on the tape a 1 is written in a twelfth channel the clock channel On playback the recorder uses the presence of a 1 on this channel to detect a data word and to provide automatic skew correction The number of S H units to be used is manually selected using a control on the MPX When the MPX senses that the last channel to be used has been reached it puts out an end of scan pulse The effect of this pulse depends on whether or not the user has elected to write a longi tudinal parity word The longitudinal parity word is an 11 bit word whose bits are the sum modulo 2 of the cor responding
123. s of the threshold increment The value which resulted in the lowest average number of computations was the same one which gave the curve in Fig 6 with the smallest tail IT 50 D Conclusions From the limited examples presented in this section and from other experiences gained with the system we conclude that the system is indeed capable of being used to study problems in sequential decoding That is to say the mechanics of the system work as intended The ultimate conclusion as to usefulness must wait until several persons have used the system to study their particular original problems We also conclude that the man machine interaction made possible by the display of the tree and the use of the light pen and monitor commands is very useful It gives the user a far better description of and a far better feeling for the behavior of the algorithm than can be obtained from printed output It will be particularly useful to researchers relatively new to the area of sequential decoding since intuition about the process can be built up relatively quickly with the aid of this system Some insight into system design although hardly new has been gained from our experience with this problem First of all the essential starting point of the design was a thorough study of the types of experiments likely to be performed The next step was realization that system implementation has as much effect on system usefulness as does technical capabilities T
124. s stemming from the present node in the tree After execution of the GENERATE statement the channel signal numbers for the first baud along one of the branches may be obtained by referencing a table GEN1 I where I is a variable having value equal to the decimal number to which the in formation bits on the desired branch correspond Likewise the channel signal numbers for the second baud will be found in the table GEN2 etc The table GEN has the complete sequence of binary digits for the entire branch If there is only one baud per branch then only GEN will contain the encoded channel symbols since GEN1 would be identical to GEN in this case Note that GEN1 I is an integer valued quantity ranging from 0 to 2 1 where x is the number of check and information bits in the first baud despite the fact that G generally means a real variable Each time GENERATE is used the shift register will be shifted right pushing information bits off the end of the shift register The integer variable SREND is given a value equal to these binary digits and if they are to be preserved they must be saved before the next execution of GENERATE Execution of GENERATE causes the left end of the shift register to be filled in with 0 s as shifting occurs Other information bits may be entered into the left end of the shift register after execution of GENERATE by use of statement 7 ENTER SR Kint y exp gt where the integer is the number of bits
125. ss Second simulation programs require a great deal of expert pro gramming effort Each new problem to be investigated usually means revisions in a tightly written machine coded program While not too great a problem at Lincoln such revisions would be an entirely different matter at M I T where the system is to be used by communications students not computer specialists The graduate student who is most likely to be responsible for the programming probably is not an expert programmer nor does he have the time to be come one This problem suggests the need for some special programming language which would be easy to learn and use The large investment of time required to get a simulation effort going is often enough to discourage its use Furthermore it is difficult to make one person s program useful to another person doing work in the same area but on a somewhat different problem While there may be many sections of their programming which do the same thing format differ ences and lack of communication between the programmers make the likelihood of their using the same programs small Clearly the difficulty in the programming is not so much in describing the algorithm for searching the tree as in the details of the programming Either the channel must be simulated or real data from some channel must be made available to the computer The decoder will need to simulate a convolutional coder not easily done in Fortran for instance Informatio
126. st be made from the tip of this branch Note also that for the new branch to be matched with some branch already on the loop it is insufficient that the two branches have the 70 same y increment and the same y starting point This is one reason why the branches of the current path are at the top of the loops Another reason is that should it be desired to move forward along the current path without specifying the y increments of each branch there is no way to tell which branch to take unless the correct one is known by placing it on the top of the loop If it has been determined that the branch to be entered is indeed new a new two word block of data is entered and the pointers are adjusted to make it the top branch of the loop The CPATHY and CPATH entries must also be changed If the branch to be entered is not a new branch only the pointer and values in CPATH and CPATHY must be adjusted to put the old branch at the top of the loop Storage for 512 branches has been provided about 10 screen widths when storage is depleted the oldest branches are removed a whole loop at a time to obtain storage space for new branches Since CPATH and CPATHY have only 256 entries each all node depths are taken modulo 256 before referencing these tables To avoid overlap between the data for node N and N 256 every time an advance is made to a depth not reached before the loop for N 250 is removed if it has not already been removed to provi
127. stem based upon the MAC PDP 6 computer A portable data acquisition system consisting of a digital tape recorder and analog to digital conversion equipment is provided to make available to the computer the outputs of experimental demodulation equipment The experimenter can decode the acquired data sequentially in accordance with an algorithm specified and easily written by him in a version of Fortran modified for this purpose A display system is used for man machine interaction The system has been successfully implemented and tested and experimental results are described DD ops 1473 UNCLASSIFIED Security Classification Security Classification KEY WORDS Sequences decoding communication information theory PDP 6 Fortran algorithms man machine signal to noise ratio light pen 1 ORIGINATING ACTIVITY Enter the name and address of the contractor subcontractor grantee Department of De fense activity or other organization corporate author issuing the report 2 REPORT SECURITY CLASSIFICATION Enter the over all security classification of the report Indicate whether Restricted Data is included Marking is to be in accord ance with appropriate security regulations 2b GROUP Automatic downgrading is specified in DoD Di rective 5200 10 and Armed Forces Industrial Manual Enter the group number Also when applicable show that optional markings have been used for Group 3 and Group 4 as author
128. struction loads into accumulator 15 the 8 bits from the exponent part of the value of A and the second instruction adds one bit to the entry in the table PR whose index is the contents of accumulator 15 ACKNOWLEDGMENTS would like to express my sincere appreciation to Professor J M Wozencraft for the guidance and encouragement he has given me during this work 1 wish to thank my readers Professors R M Fano and J B Dennis for their help particularly in the preparation of this dissertation 1 also thank Professor Fano for making the PDP 6 computer at Project MAC available to me Thanks are due to the Research Laboratory of Electronics for the facilities provided me and to the National Science Foundation for its financial support throughout my graduate studies My thanks are also due to Lincoln Laboratory for its continued interest in this project 75 10 11 12 20 21 22 5 C E Shannon A Mathematical Theory of Communication Bell System Tech J 27 379 1948 J M Wozencraft and B Reiffen Sequential Decoding M I T Press and Wiley New York 1961 R M Fano A Heuristic Discussion of Probabilistic Decoding Trans IEEE PGIT IT 9 64 April 1963 D Forney Concatenated Codes Sc D Thesis Department of Electrical Engineering 1 June 1965 J M Wozencraft and 1 M Jacobs Principles of Communication Engineering Wiley New York 1965 H Yudkin Channel
129. system now comes down to either building special purpose equipment or simulating it on a general purpose digital computer or some combination of the two The only decision obvious at the start is that if the experimental facility is to study dif ferent algorithms it is unlikely that special equipment could be built for executing the algorithm that would permit sufficient flexibility This means that a general purpose digital computer must be the heart of the system and that the algorithm will be programmed into the computer Arguments as to whether the coder distance evaluator and signal processor should be Software or hardware now revolve around whether hardware implementation can increase the operating speed of the system sufficiently to justify the obviously higher initial cost This is likely to be the case only if one or more of the sections of the system required an amount of computation many times greater than that required to execute the programmed algorithm It Should be noted that the computer will obviously also be used to collect statistics on the decoder and output these results resulting in a further amount of computation time required of the computer thus biasing the decision even more in favor of the software system It should also be remembered that interfacing special purpose equipment with a large computer system pre sents a host of problems both technical and administrative Preliminary speed calculations as outlin
130. t service from the central processor the I O device grounds one of the seven priority interrupt lines If the central processor is not servicing an I O device of higher priority it will honor the request by executing the instruction found at location 40 2n octal where n is the priority interrupt number When an instruction to read in data from an I O device is executed the corresponding number is put on the device selection lines and 1 psec later a 2 5 pulse appears on the line This pulse is the command for the data to be put on the 36 data lines Just before the end of the DATAI pulse the central processor reads in the state of the data lines and then releases the device selection lines The output of the tape recorder is a 0 to 11 volt pulse of 4 5 nsec duration to indicate the presence of a 4 This input to the I O buffer is first converted to a 3 volt to ground pulse and then fed to the enable inputs of a flip flop register The clock channel on the tape recorder drives a 3 psec delay the output of which is used to read the other 12 channels into the flip flop register Ifa 1 is present on the frame channel one priority interrupt line is grounded if not another priority interrupt line is grounded The parity of the remaining 11 bits is computed in an exclusive OR parity tree If this parity is odd an error was made by the recorder The presence of the proper device selection number and the DATAI pulse places the 10
131. t the end of each use of the channel matched filter number i has at its output a voltage which is monotonically related to Pr r 81 the probability of the received signal r given that waveform number i was sent This set of M voltages then represents the total information attainable at the receiver about each use of the channel If the waveforms are not orthogonal less than M matched filters will be needed but the receiver would combine their outputs to produce M voltages related to Pr r sl For more complex situations such as adaptive receivers which estimate the characteristics of a time variant channel the objective of the optimum receiver is still to produce a set of M voltages related to Pr r 5 Of course not all modulation demodulation methods of interest of this type Sending one of M orthogonal waveforms is useful on a wide bandwidth channel but on a narrow band width channel where the S N ratio is high something like amplitude or phase modulation of one basic waveform might be used The output of the demodulator for this case might be a single voltage which is an estimate of the amplitude or phase which was used at the transmitter The signal processor should be capable of processing this voltage by storing it away as a digital number Ultimately however the receiver should again relate the voltage produced by the demodulator to Pr r sl It is just that in this case one output voltage suffices to carry the informat
132. taken by the compiler which result in machine code being put out A syntax directed compiler scans the string of symbols in the input language and combines them according to the rules in the syntax table and outputs the results of the productions asso ciated with the particular rules which were used to combine the input characters This scanning of the rules is performed by a parse algorithm which parses the Fortran statement much as an English sentence may be parsed into subject verb etc We will not go into the details about operation of algorithms which may be used but the reader should refer to Refs 16 through 21 Below is an example showing how the statement B C is parsed using the following rules gt oust exp lt name gt lt exp gt lt lt name gt lt name gt A B C as exp xi Ea RE A B C name exp E A B t C lt exp gt SI name b c name B 72 The really difficult aspect of the syntax directed compiler is the creation of suitable forms for the productions of the rules which will result in efficient machine code and which will not require that the rules themselves reflect the structure of the machine for which the compiler is intended It is in this area that compiler research is currently being performed Rules for the PDP 6 syntax directed compiler are not written in the Bachus Normal Form just described Instead the rules are r
133. that the observer will not be disoriented This drifting process must be able to move in any direction in order to keep the current position on the screen at alltimes This implies that there must be some way of regenerating branches which have first slipped off one edge as the display drifts in one direc tion and then must be returned again as the display drifts the other way The implementation of this display is a challenging problem the method used here results in an interesting list Structure for storing and displaying the tree This structure is described in detail in Appendix C The display program provided shows a section of the tree 16 nodes deep Information about branches investigated but not currently displayed is stored for a distance about 200 nodes behind the current position The actual number depends on the total number of branches investigated rather than the number of nodes away from the current location storage is provided for 512 branches CURRENT POSITION Fig 4 Possible display of tree IN TREE When many branches are displayed it is desirable to make the path presently being searched by the decoder stand out from all the others This is accomplished by making it brighter than any other path Such difference in brightness is also helpful in distinguishing between any ambiguities in the display Por instance in Fig 4 it is impossible to tell which is the current path without having this path brighter than the ot
134. the algorithm and we desire to make this programming effort as small as possible a special programming language has been developed to express the algorithm to be investigated This language must also be capable of controlling the display facility and the various subroutines discussed in Sec III The design of the language is discussed below A Requirements to Describe Algorithm The characteristics required of this language are quite stringent but because of the relative narrowness of the type of computation required it has been possible to arrive at a suitable solu tion The first and foremost requirement of the language must be the ease with which it may be learned To aid the learning process the language must use notation as familiar as possible to the mathematically oriented person All the fine generalities of a language such as ALGOL are not necessary the algorithms to be investigated will not be that complex The fine points of ALGOL would most likely be lost on the inexperienced programmer anyway The objective is not to allow an expert programmer to describe all possible types of tree search algorithms as elegantly as possible but to allow an inexperienced programmer to describe simple algo rithms as easily as possible A look at the algorithms which have been developed so far shows that the type of computation required is almost exclusively the evaluation of algebraic expressions using subscripted variables and the compariso
135. the algorithm to advance through exactly M of these steps if STEPS M is typed where M is any positive integer After M steps the monitor returns to the STOP state A single step will be executed by typing G The speed at which steps are made is specified by using the SPEED command The argument should be an integer from 0 to 6 Speed 0 is the slowest taking about 2 sec per step Other speeds are gm sec per step where N is the argument of the command SPEED 7 is a special command which causes the algorithm to advance very rapidly In this mode the display is turned off in order to allow the rapid speed The display may be turned on again by the SPEED command with an argument of other than 7 If the algorithm is advancing rapidly it may be difficult to stop at just the desired point in the tree The command GO TO N has the same effect as RUN except that when the node depth N reaches the value given as the argument of this command the monitor types READY and stops the algorithm This command is extremely useful after a SPEED 7 or MODEO In the algorithm after every assignment statement which could increase N code is automatically inserted to match N against the stopping value of N and if it has been reached control is transferred to the monitor stopping the algorithm It should be noted that this kind of stop does not occur at the WAIT or ENTER BRANCH statements as does the stop from STEPS or G Even SPEED 7 is not fast enough
136. the coder must just be capable of forming several check bits each one being the sum modulo 2 of selected bits of a shift register Initially we need be concerned with only two parameters the length of the shift register v and how many different check bits can be formed at one time Of course each is specified by the connections made to the bits of the Shift register and this must be completely arbitrary Once the check bits have been formed they may then be grouped together to form binary numbers which specify channel signals Note that although the shift register coder is often formulated so that the output is formed by grouping check bits with information bits the same output can be achieved by grouping check bits only since the special case of a parity net with only one connection gives an output the same as the information bit to which it is connected The number of check bits grouped together to form one baud determines the size of the channel alphabet Large alphabet sizes are useful on dispersive channels channels with memory for several reasons among them the desirability of making as small as possible the probability that a signal sent during one baud will also be assigned to one of the branches on the next baud Since the channel is dispersive energy from the last baud could produce a voltage at the output of the matched filter in the next baud which might lead to an erroneous decision as to which branch to take initially causing un
137. the com puter Printed output is sufficient for describing the statistics of the decoding process but seems inadequate for describing the details of the search process Clearly this could be done in tabular form but such a form does not aid much in visualization of the decoding process The facility should therefore incorporate some form of graphical output which can be more easily digested than reams of paper Choice of computers for use in the system involves several factors among which availability is of prime importance An IBM 7094 operated in a time sharing system was available at Project MAC at M I T but a major problem the use of this machine was the fact that it is being phased out and a new GE 635 is being introduced Thus any part of the experimental facility which would involve machine language programming would be obsolete when the new machine goes into general use in early 1966 This would have given time to implement the System but little time to run problems on it Also available at Project MAC was a somewhat smaller machine a Digital Equipment Corporation PDP 6 Ref 11 installed in October 1964 The lifetime of this machine should be long enough to perform all the experiments desired The PDP 6 is by no means a small machine it has a 36 bit word with 16 000 words of 2 usec memory plus 16 registers of 0 4 flip flop memory which serve as accumulators and or index registers It is also quite easy to connect no
138. the ordered lists into a second buffer Each list mem ber requires 18 bits of storage one half word of which 10 bits is the signal value and 8 bits is the number of the matched filter to which the voltage corresponds Thus alphabets of up to M 28 256 can be handled PG3 takes the ordered lists in the second buffer and writes them out on DEC Tape a small magnetic tape unit where they will be available later to the decoding algorithm The choice of DEC Tape for a secondary storage device was motivated strictly by avail ability it is currently the only mass storage device available on the PDP 6 Initially it was expected that there would be a high speed data channel between the PDP 6 and the IBM 7094 at Project MAC through which an IBM tape drive could be controlled resulting in a higher data rate and a much larger amount of data storage than is available using the DEC Tape however this data channel has not yet been procured by Project MAC The DEC Tape units can store 73 800 words 36 bits each of data meaning that if the list length is a DEC Tape can hold 147 600 4 ordered lists Thus with a list of four 36 900 nodes can be stored not very much data to provide information about events of probability 1074 or 1072 400 usec 2002 psec per ordered list Thus with list of 4 the absolute maximum decoding The transfer rate from DEC Tape is a maximum of one word 36 bits per speed is 1250 nodes sec a not unrealisti
139. the shift register and the bit which has fallen out the end of the shift register must be saved in the table which we will call ISR The encoded signal number for the path chosen will be saved in a table HYP which must appear in a SAVE statement Should the branch tried be unsuccessful the shift register must be shifted back to its original position and the bit on the end restored at statement 11 Should it be necessary to back up statement 15 the shift register must again be shifted left and the end bit restored getting the bit from the table ISR 3 Statements for Display Next statements to cause the correct display must be added Clearly the threshold will be displayed by use of the initialization statement DISPLAY THRESHOLD IT ITO and the branches will be displayed by use of DISPLAY INCREMENTS LMBD Since we saved the channel signal number the encoded symbol for the branch we have taken in the table HYP the use of LABEL PATH HYP 4 will cause the current path to be labeled The SCALE of the display depends on the numbers assigned to ITO and IDIST If we want to display both hypotheses at the current node by use of the OTHERS 1 monitor command we must evaluate the metric increase for each hypothesis and put these values in the table OTHERT This must be done along with the statements for box 1 We will make use of the function XPFINDF to calculate the metric increases Of course we will bypass these state ments if OTHER
140. the tape playback is started by pushing DRIVE The operator must then return immediately to the computer console and push the levers marked IO RESET and INSTRUCTION CONTINUE in that order If the program fails to find at least 1 sec of blank tape it assumes the tape was not positioned properly and notifies the operator to reposition the tape and begin again When data begin to come from the tape recorder the DEC Tape will begin to move When the DEC Tape is full the computer will notify the operator and then halt after printing out some error statistics about the performance of the tape recorder such as the num ber of parity errors it detected due to playback errors Of course most of these will have been corrected by the program if the longitudinal parity word was recorded Should the program or the DEC Tape be unable to keep up with the rate at which the data arriving from the tape recorder an error message will be printed out If this should happen try the whole playback procedure again with a smaller list length Should this also fail the only solution is to slow down the playback speed of the recorder which means completely re adjusting the tape recorder Instead the data can be re recorded at a lower bit density on the tape This type of overflow should not happen during playback at 15 in sec IV WRITING THE ALGORITHM A Language The special language provided for the description of the sequential decoding algorithm is a
141. tinues to remember the tree structure at all times but does not generate a display from this information When the display is turned back on the past history of the searches made can be displayed This mode of operation is midway in speed between the other two and all three are available through commands on the teletype Control of the display speed is maintained by means of an internal clock in the PDP 6 which indicates the passage of every 1 60 of a second In addition the user must insert control statements in his program describing the algorithm which serve as check points The algorithm is allowed to run until it reaches a check point in the program where it is required to wait until 23 a specified amount of time has passed and is then allowed to go on During the time the algorithm is waiting at the check point the display will not change The waiting time at the check points may be set to seven different multiples of 1 60 of a second ranging from 2 to 1 30 sec by means of a command on the teletype when the display program is turned off completely there is no waiting time at the check points When the display program is operating in the third mode de scribed above the waiting time at the check points is only long enough to add information to the tree structure which is being stored away but this information is not used to generate the dis play It is expected that the user will insert these check points in the algorithm every plac
142. to process large numbers of nodes it is useful for ad vances of 5000 to 10 000 nodes which should take less than 1 minute For longer searches the command MODEO should be used This command like SPEED 7 turns off the display and allows rapid execution of the algorithm but the speed is such that 40 000 nodes may be advanced 1to 2 minutes The display may be turned on again by typing MODE followed by RUN G or STEPS The difference between MODEO and SPEED 7 is that in MODEO the display does not keep a past history of the paths taken through the tree while in SPEED 7 it does The SPEED 7 command stops only the generation of the display list the actual display and any waiting for the clock Traps still occur from the main program so that the new branches may be entered on the list structure describing the tree In MODEO the display program is never entered When the display is restarted with a SPEED 2 command after being turned off by SPEED 7 command the display will consist of all branches searched it will be just the same as if this point in the tree had been reached with the display turned on all the time When the display is restarted after being turned off by a MODEO command the display will consist of only the current branch since no other data about the tree have been stored away by the display pro gram Ifthe algorithm now requires a retreat in the tree the display program is able to display 62 this branc
143. trigger pulse source and the demodulation equipment Upon receipt of the trigger pulse the S H units sample and hold the voltage at their inputs and the multiplexer begins to scan through them feeding these voltages one at a time to the A D converter where they are converted to 10 bit binary numbers and written as successive words by the tape recorder Along with each word a parity bit is written which is the sum modulo 2 of the 10 bits from the A D converter A 1 is also written on the clock track The number of words to be written is determined by the number of S H units used which is specified by setting the knob labeled CHANNEL SELECT to the number of the last S H unit used The time between trigger pulses must be long enough to allow all the data to be written on the tape The maximum allowable repetition rate depends on the setting of the TAPE SPEED knob If the repetition rate is too high the ALARM light will go on Of course the tape recorder must 37 be run at speed at least equal to that to which the TAPE SPEED knob is set If the tape re corder is actually moving at a higher speed the density of data on the tape will be reduced from the maximum allowable Somewhat better performance of the recorder can be expected in this case After the voltage on the last S H unit has been digitized and written on tape a longitudinal parity word will be written if the PARITY knob is turned on Each bit of this word is the sum modulo 2 of the
144. uences can be represented in the form of a tree Fig 1 where the tree is of depth N and has y terminal branches one for each message To send a message the transmitter might use the channel N times each time sending one of the binary digits along the path through the tree corresponding to the desired message by sending one of two waveforms over the channel However because of noise in the channel the receiver will occasionally make a mistake on one or more digits When such a mistake is made the output of the receiver is a string of binary digits which is exactly like some message other than that which was sent the receiver will be unable to detect the fact that an error has been made To combat the noise on the channel a coding process is employed For example the trans mitter may first be changed so that it is able to send M 2 m gt 1 different waveforms in stead of just 2 The coding may consist of assigning a signal chosen from this set of M call it s to each of the branches in the tree In order to send a particular message the trans mitter then sends the sequence of waveforms assigned to the path through the tr e corresponding to the desired message A particularly simple implementation of this assignment procedure is that of a convolutional or shift register encoder In this device Fig 2 the shift register holds the last v binary digits from the source Each time the assignment for the next branch in the tree is needed
145. umber NODES The integer number supplied as an argument of this statement must be the same number that appears as the last subscript of all subscripted variables in SAVE and COMMON SAVE declara tions and must be a power of 2 Each subscripted variable used in the program must appear in one and only one of the follow ing statements DIMENSION COMMON SAVE COMMON SAVE The arguments of all these statements are of the standard form required by a Fortran DIMEN SION statement 42 Names which appear in COMMON or COMMON SAVE may be in any order The main pro gram must contain all variables which are to appear in common in COMMON or COMMON SAVE statement Subroutines need only have in these statements the variables which the sub routine actually uses but they must be the same name as in the main program COMMON is implemented by allocating storage for the variable or array within the main program and making the name of the variable a global symbol The linking loader provides the subroutines with the value of this symbol No specific area of core memory is assigned to the storage of common variables 2 IF Statements An important variation on the standard form of the Fortran IF statement is provided The new form is IF e op e ny ELSE n where e and e operator chosen from the following set are expressions not necessarily of the same kind integer or real op is an Operator Meaning greater than GE gr
146. ure of sequential decoding The examples given are by no means all the special statements available in the language a specific description of all the special statements and their use is found in Appendix A An example of how these statements compile into machine code is found in Appendix D B Requirements to Manipulate Coder One set of special statements deals with manipulation of the convolutional coder Ae will be found true for the other types of statements these may be divided into two types initializa tion statements and executable statements The former are placed at the beginning of the pro gram and are only used once the latter are used in the description of the algorithm and are executed many times Initialization statements for the convolutional coder must include descrip tion of the parity nets and how the check bits will be grouped to form one branch of the tree The executable statements must include a suitable call to the subroutine which simulates the coder Statements must also allow the shift register to be manipulated directly shifted right or left and digits removed or inserted at the ends An example of the initialization statement Showing how to group the check bits is SEQUENCE 1 S SL P1 B I P2 26 which says that the output of the coder for the next branch in the tree is generated by first shift ing right two bits S 5 thereby entering two information bits then to specify the first baud by putti
147. use the corresponding ordered list to be displayed This dispiay will remain until the word ERASE is touched with the light pen The ordered list for a value of N may be modified by use of the monitor command DATA AT N The argument of this command is taken to be the node depth if BAUDS PER BRANCH has appeared in the program otherwise the argument is taken as the index on the input data K Following this command numbers should be typed in the same form as the list would be displayed as octal numbers that is signal value space signal number Each line of data should be terminated with carriage return except for the last line to be entered which should be terminated with a rub out The numbers typed in replace those orig inally on the ordered list This replacement is made only on the copy of the ordered list which is in memory the original list on DEC Tape is not changed The only ordered lists kept in memory are those for bauds near the current value of N hence only these ordered lists may be changed The number of lists kept in memory varies with the list length but it is always at least 100 bauds on either side of the current value of N When changing an ordered list the character instead of a number may be typed in which case the value for this quantity will remain unchanged When the statement BAUDS PER BRANCH indicates more than one baud per branch the data for the first baud are opened for change by the command
148. used to enter the debugging routine called DDT This allows modifica tion of the algorithm to be made in particular values of constants in the algorithm may be changed quite easily It is beyond the scope of this report to describe DDT completely there are manuals available from Digital Equipment Corporation but a simple use is to change the value of a variable which requires that the operator type the name of the variable followed by slash The current value of the variable will be typed out by DDT If the new value is then typed followed by a carriage return the change is accomplished To leave DDT type alt mode P lt ALT MODE is a key on the teletype DDT interprets a number as decimal integer only if it is followed by a decimal point If there is any number after the decimal point the whole number is taken to be type real 5 Miscellaneous Commands If it is desired to end execution of the algorithm the command EXIT should be used This has the same effect as executing the statement END in the algorithm It causes any output file which has been opened to be closed out after any automatic output gen erated by COMPUTE WAITING LINE COMPUTE SEARCH DEPTH PROB or LOG PROB Control is then transferred to the monitor The command NO isa general the variable NO which may be referenced by the user s program takes on the value given as argument to this monitor command 64 The command IO may have two arguments
149. veral branches along an incorrect path before violating a threshold A small value for the threshold increment causes many shallow Searches because even a small downturn in the metric brings on a search However it prevents the need for some deeper searches by catching the downturn early Having too small a threshold increment is just as bad as having too large a threshold out on the tail of the curve The tail represents situations where the correct path is considerably lower than some incorrect path With a very small increment the threshold may have to be lowered many times to get below the low point on the correct path and effectively each time the threshold is lowered a search is counted Of course it is the tail of these curves that is of most interest since it is this portion of the curves which affects the behavior of the waiting line The curves show that there is an optimum value for the threshold increment which is neither too large nor too small More than 35 000 nodes 33 Should be processed to examine the behavior of the curves for higher values of N but it seems clear even from these data that the slope of the curves on the tails is a constant and is the same for all the curves This means that the distribution function behaves as ENT and that o does not seem to be a strong function of the threshold increment This supports the work of Savage Data were also collected on the average number of computations for the three value
150. w S N ratios Although not exhaustive the scope of the experimentation anticipated above is sufficiently great that a facility flexible enough to handle these problems may be expected to be flexible enough to cope with a large variety of other problems as well 2 Preliminary Design Decisions Before it is possible to go any further in the system design it is necessary to make some preliminary decisions about the form of the system While for clarity of presentation the de cision process may seem to be linear with one decision leading to another this is not so There is a tremendous amount of interaction between decisions The ultimate value of a decision made in this section depends on all its consequences which may not be apparent until much later Although one might be tempted to describe the decision process as having a tree struc ture itself with a few early decisions each leading to many later more detailed decisions this would neglect the interactions of these smaller decisions with others seemingly far removed The best design procedure seems to be partly trial and error making decisions and carrying out their consequences until inconsistencies or difficulties appear and then in the light of new knowledge revising the original decisions A very basic decision that must be made early in the system design is how much of the total communications system the experimental facility should attempt to provide Since each channel and eac
151. wed by START G B Use of Monitor System Table A 2 lists the monitor commands which may be executed by using the teletype All commands must be terminated by a carriage return to cause execution Typing rub out will erase all typing back to the last carriage return Commands which end with the character take a numerical argument which must be typed in before the carriage return Spaces are ignored TABLE A 2 MONITOR COMMANDS RUN DATA AT N STOP RESTART AT N STEPS REPEAT G STORE SPEED DDT GO TO N EXIT MODEO NO MODEI 10 OTHERS 2 3 4 5 6 7 8 9 61 1 Running Commands and Control of Display When the program is started the display is turned on but the main program is not running This is indicated by the word STOP in the lower left corner of the display To begin execution of the main program type RUN While it is running the word RUN appears in the lower left of the display The main program may be stopped by typing STOP If the program so instructs as the algorithm advances in the tree the branches which have been searched are displayed An internal clock in the computer waits a certain amount of time before letting the algorithm advance one more node When released by this clock the algorithm advances to the next occurrence of WAIT or ENTER BRANCH in the program and then waits for the clock before going on Instead of constantly advancing the monitor will force
152. with a ratio of time to advance one node to time to receive one baud of 1 10 to 1 20 If we did so by slowing down the data input rate the computer would be waiting for input data most of the time only during long searches would it be working to capacity There is still another reason for not preparing the ordered lists while decoding If we desire to stop decoding to decode very slowly so that the details of the search can be observed in a way yet to be determined or to back up and repeat a section of the search for the benefit of the operator there is again no way that the tape recorder can be stopped or slowed down or rewound under control of the computer An effective solution to this problem is to prepare the ordered lists beforehand and store them away in some other medium which can be manipulated more easily by the computer such as a drum or disk memory or standard computer magnetic tape which can be started stopped and backed up Since the lists prepared in this way could be used over and over again by differ ent decoding programs the computation time required to prepare them would be shared by each of these programs thereby increasing the effective speed of the system The decoding program can run at full speed only if the data transfer rate from the secondary Storage device used to store the lists is high enough so that the program will not have to wait for data For example if the decoding program took about 1 msec to decode a b
153. y of Sequential Decoding The communications analyst interested in sequential decoding is faced with computing quantities such as the distribution of the random variable of number of computations the prob ability of buffer overflow and the probability that the decoder will advance N nodes beyond a point in the tree where it made a wrong turn and still not detect the error These are difficult quantities to analyze but a good deal of progress has been made particularly for discrete memoryless channels Some extensions to time varying channels have also been made Never theless many cases of interest have not been analyzed and for each particular case there are numerical constants in the algorithm which must be optimized Further most of the results obtained by analysis are in the form of bounds on the quantity of interest bounds which are cor rect in their exponential behavior but not tight to within constants Much greater accuracy than is provided by analysis is required for the actual design of equipment for sequential decoding For solution of such problems computer simulation of the decoder is very useful Another important area for investigation is the design of new sequential decoding algorithms Here again experimental investigation would be very useful C System Design Considerations 1 Preliminary System Specifications From the previous description of sequential decoding it should be clear that any such de coder can be br
Download Pdf Manuals
Related Search
RLE TR 450 047433 tr 437 - tr 431
Related Contents
8033 8000 シリーズ Toshiba 3 Projector User Manual Promate proShield.S4-CM Samsung 2494LW User Manual Worldwide Homefurnishings 203-409BK-2PK Instructions / Assembly Manuel d`utilisation du spectrophotomètre Genova Plus Copyright © All rights reserved.
Failed to retrieve file