The present invention relates to binary and non-binary methods and apparatus for sequence generation, scrambling, and detection such as descrambling and sequence detection. More specifically it relates to methods and apparatus not using LFSRs with a shift register.
LFSR based methods for generating and scrambling binary sequences are widely used in applications such as telecommunications. LFSR based methods can also be used for generating and scrambling non-binary sequences. Sometimes the use of LFSR circuitry is not desirable or possible. Power consumption of high clock rate LFSRs, due to the shift-and-hold aspects of the shift register, is a known concern. In that and other cases equivalent or improved methods and apparatus that provide the same results as LFSRs are required.
Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and to the arrangements of the components set forth in the following description or illustrated in the drawings. The invention is capable of other embodiments and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein are for the purpose of the description and should not be regarded as limiting.
It is one aspect of the present invention is to provide addressable memory based methods and apparatus to implement LFSRs.
It is another aspect of the present invention to provide addressable memory based methods and apparatus to detect binary and non-binary pseudo-noise sequences.
It is a further aspect of the present invention to provide addressable memory based methods and apparatus for implementing LFSR based scramblers.
It is another aspect of the present invention to provide addressable memory based methods and apparatus for implementing self synchronizing LFSR based descramblers.
It is a further aspect of the present invention to provide addressable memory based methods and apparatus for detecting binary and non-binary Gold sequences.
It is another aspect of the present invention to provide addressable memory based methods and apparatus for self synchronizing detection of binary and non-binary Gold sequences.
It is a further aspect of the present invention to provide addressable memory based methods and apparatus to implement Galois LFSRs.
Various other objects, features and attendant advantages of the present invention will become fully appreciated as the same becomes better understood when considered in conjunction with the accompanying drawings, and wherein:
The inventor has described the rules for creating n-valued LFSR based sequence generators, LFSR based n-valued scramblers and corresponding descramblers in U.S. Non-Provisional patent application Ser. No. 10/935,960, filed on Sep. 8, 2004, entitled TERNARY AND MULTI-VALUE DIGITAL SCRAMBLERS, DESCRAMBLERS AND SEQUENCE GENERATORS, which is incorporated herein by reference in its entirety. LFSR stands for Linear Feedback Shift Register. For the purpose of the present invention a LFSR will be defined. In some cases an LFSR circuit, be it a scrambler or sequence generator will be indicated as an LFSR or an LFSR circuit. In the present invention an LFSR circuit is a circuit (or its corresponding method) having an LFSR. An n-valued LFSR is a shift register of k elements, each element being able to hold an n-valued symbol. Each element has an input and an output. At the occurrence of a clock signal an element of a shift register will assume the value of a symbol provided on its input. The present invention is focused on LFSRs in Fibonacci and Galois configurations. In the Fibonacci configuration the input of the shift register is the input of its first element. An LFSR in the current definition also has feedback taps; the output of the last element of a shift register always has a tap. There is also always one feedback tap on one of the outputs of the other elements of the shift register. Further more an LFSR has at least one and at most (k−1) reversible n-valued logic functions or devices implementing such functions, each function or device having two inputs and one output. One input of a function or a device implementing a function is always connected to an output of an element or to an output of a function. If an LFSR has only one n-valued logic function or device implementing an n-valued logic function, then the output of that function or device is the output of the LFSR. Each input of a function is uniquely connected to an output, no other input of a logic function or device implementing a logic function is connected to that output. It is of course true that an output of an element of a shift register may be connected to an input of a next element and may also be connected to an input of a logic function. However that output is never shared by two or more different inputs of logic functions. When the LFSR has more than one n-valued logic function, then the output of the last n-valued logic function is the output of the LFSR; or in other words the output of the function with one of its inputs connected to the output of an element closest to the input of the shift register is the output of the LFSR.
The literature may provide a variety of definitions of an LFSR. For instance an LFSR may be described as what would be called in the present invention a sequence generator. For instance a document published by Texas Instruments in December 1996, number SCTA036A entitled: “What's an LFSR” describes a sequence generator as an LFSR. However for the purpose of describing the present invention, the definition here provided will be used. The definition is illustrated in
The LFSR 100 can be illustrated as in the simplified diagram of
Accordingly is has been shown how three different methods or circuits can be realized by applying the same LFSR as per the definition here applied.
Binary pseudo-noise sequences can be generated by way of LFSR based circuitry or methods. Herein an LFSR generator is under control of a clock signal. In circuits using LFSRs and other circuits shown in figures as an aspect of the present invention a clock signal will not always be drawn or identified. However throughout the description of the present invention the presence or availability of a clock signal is assumed. At the occurrence of the clock signal the content of an element of the shift register is moved to a next element, except the content of the last element, which will be lost.
An LFSR based sequence generator works completely independent of external inputs, after the shift register was initialized as long as a relevant clock signal is available. The only condition is that the initial content of the shift register should not be a forbidden word such as all 0s in a binary case, as under that condition no transition will occur and the signal on the output will remain the same symbol all the time. The process of starting with initial states is called: initiating the LFSR.
The theoretical basis for designing LFSR based binary sequence generators is known. It applies irreducible polynomials of degree p, wherein p is the number of shift register elements, by selecting the feedback taps corresponding with non-zero coefficients of the terms in the polynomial. It is known that an LFSR based binary sequence generator can create a sequence that is unique in its order of bits and composition of a maximum length of 2p−1. After that number of bits the sequence will start repeating itself.
Another property of the sequence generated by the circuit of
For easier analysis it is sometimes more convenient to make the sequence appear to move to the right to the left. This is achieved by the LFSR circuit as shown in
One may picture that the sequence is already present, but only visible as far as 3 elements are concerned, being the element in the shift register. One can then visualize the generation process as the sequence being pushed through the shift register from right to left. Another way to show the output signals is shown in the following table.
Herein the sequence is generated by dropping the first symbol at the beginning and adding a new symbol at the end of the sequence.
This binary example of using a ‘word’ method is provided as an example to show how each state of generating a code (be it binary or non-binary) may be considered to be dependent on its preceding state and the initial state. A coding state is a ‘word’ of symbols. The processes and methods to generate and to detect binary and non-binary sequences is explained in detail in U.S. Provisional Patent Application Ser. No. 60/695,317 filed on Jun. 30, 2005 entitled: The Creation and Detection of Binary and Non-Binary Pseudo-Noise Sequences Not Using LFSR Circuits and in U.S. Non-Provisional patent application Ser. No. 11/427,498 filed on Jun. 29, 2006 entitled The Creation and Detection of Binary and Non-Binary Pseudo-Noise Sequences Not Using LFSR Circuits which are both incorporated herein by reference in their entirety.
The table can be interpreted as follows: the last two elements in the previous state of the shift register are the first two elements of the new state of the shift register. A new method for the generation of pseudo-random sequences and for coding and decoding sequences using a state-machine approach but using memory elements is derived from this observation and is provided as one aspect of the present invention.
The formal method to create pseudo-random binary sequences of length 2p−1 comprises the following steps:
1. assume a word length of p bits;
2. create all possible binary words of p bits;
3. arrange the words in tables such that the first (p−1) bits indicate the row they are in;
3. assume the word with all 0s to be not usable and is a ‘forbidden’ word;
4. start a PN table wherein the first word is comprised of p 1s;
5. complete all PN tables following the path wherein the first (p−1) bits of a word have the last (p−1) bits of the previous word in common;
6. each word can only be used once;
7. follow a path such that always the first utmost left, not yet in a path included word in a row is used in a path;
8. a sequence is completed successfully when all allowed words have been used once;
9. a sequence is formed for instance by the first bits of the words, in the order of the achieved path;
10. rearrange all words in a word table in such a way that one word in any row assumes a possible column position it has not previously assumed and start at step 3 again;
11. repeat above steps until all unique word tables have been used;
12. repeat steps 1 to 10 wherein the word with all is ‘forbidden’ and the all 0 word is the starting word;
One can of course start the process with any word of length p as long as the ‘forbidden word’ is excluded from the process.
The process as described above allows to create all possible binary PN sequences; The above method can be used for non-binary sequences of n-valued symbols by substituting the binary elements by n-valued symbols. The steps to be applied are the following:
1. use an n-valued logic with n an integer greater than 2;
2. create all np digital words of p n-valued elements, with p an integer greater than 1;
3. select one of the words comprised of identical elements as a ‘not-used’ or forbidden word;
4. create a ‘word table’ wherein each row contains the words with identical first (p−1) elements;
5. start a PN table wherein the first word is not the forbidden word;
6. complete the PN tables following the path wherein the first (p−1) bits of a next word have the last (p−1) bits of the previous word in common;
7. each word can only be used once; 8. a path is completed when (p−1) different words have been used.
9. a sequence is formed by the first bits of the words, in the order of the achieved path; Additional sequences can be created by creating a new ‘word table’ through changing the position of one of the words in a word table.
One can use different ‘forbidden words’. Some of the sequences will end with a word that connects according to the above rules with the first word of the PN table. The sequences thus formed are cyclical and may be formed by LFSR type solutions also. One can of course start the process with any word of length p as long as the ‘forbidden word’ is excluded from the process. The length of a sequence will be (n1−1) digits.
It should be clear that there are many different paths that can be followed in the above method to complete an n-valued sequence. As the word length increases the number of possible paths increases exponentially.
One can also create n-valued sequences of length np digits by using all p-digit words.
One can build the state machines using addressable memory rather than shift registers to actually generate the sequences. In case of the non-binary sequences, the non-binary sequence elements or digits may be stored in binary form as binary words, of which the bits of the word are used as input signals to a D/A converter, which will generate the non-binary value of the signals.
N-valued sequence generators, scramblers and descramblers may be realized by means of computer programs in generic or dedicated processor chips supplied with means to translate generated numerical results into actual n-valued signals and means to receive n-valued signals and transform these into processor usable numerical data.
It is another aspect of the present invention to create configurable binary and non-binary sequence generators and related circuitry by using memory elements with ‘stored’ words, rather than shift registers.
This novel way of realizing LFSR based circuitry applies the fact that each state of the binary or n-valued shift register of p elements is in fact a ‘word’ of length p out of a pre-scribed number of possibilities. For instance in case of an n-valued sequence generator based on an LFSR of p elements it is known that there are np−1 occurring words and one forbidden word of length p.
The defining characteristic of a shift register of length p is that in each consecutive state of the shift register at least (p−1) elements of a state are identical with (p−1) elements of the preceding and the succeeding state.
The following illustrative examples will be used to demonstrate how memory elements combined with logic functions and address decoders can be used to create binary and n-valued LFSR-based and non-LFSR based sequence generators, scramblers and descramblers.
The circuit of
In real life the top line does not need to be the initial state as long as the circuit will start at a line that represents the initial state. However the system needs to start at a certain address. Accordingly a set/reset signal is provided on input 1220. One should configure an address decoder in such a way that when a signal is provided on 1220 the address decoder will jump to an initial address. For practical purposes this address should not represent a forbidden word in sequence generators as this will create a degenerated state of the system. It is also preferable not to use the forbidden word in scramblers, descramblers and detectors that will be described as an aspect of the present invention. In the scrambler/descrambler/detector configuration a forbidden word as the initial address is not catastrophic. However it may make the system more sensitive to certain sequence patterns. In the following realizations of LFSRs and related memory based coders and decoders the set/reset input 1220 may not be specifically identified at every instance. However its presence as well as the circuitry or methods to initiate a starting address is assumed for all of these and is herewith specifically disclosed.
In the system of
A system has to start from an initial state. In the case of a method or apparatus implemented by an addressable memory, the initial state is a starting address on an address decoder, such as 1504 shown in
Suppose that the LFSR circuit in
It should be clear that in the present configuration of
One can change the generated sequence in
One can further change the length of the generated sequence of
Generation of Binary Sequences that Cannot be Realized with LFSR Circuits.
By the nature of binary circuits LFSR they cannot generate (without additional input) generate unique sequences that are longer than 2p−1 bit, when the shift register contains p elements. It was shown that the ‘word’ method can generate additional, different as well as longer sequences. The method using the approach as shown in
With the memory content as shown in the table and with a configuration to use memory words on consecutive memory addresses as shown in
It is possible to switch the order of the words and add previously used words in a different order. For instance one can create as an illustrative example the following table with 11 3-bit words:
The above table with the circuits of
It is another aspect of the present invention to use the ‘word’ method with memory realizations to generate known and novel 3-valued or ternary digital sequences. The inventor has described in U.S. Non-Provisional patent application Ser. No. 11/139,835, filed May 27, 2005, entitled MULTI-VALUED DIGITAL INFORMATION RETAINING ELEMENTS AND MEMORY DEVICES methods and apparatus to create true n-valued latches. One should assume that n-valued memory elements of the present invention are enabled by that invention or are enabled as binary memory storing and addressing words of ‘symbols’. A symbol may be stored as binary elements, or made available as n-valued signals.
The method will be described by using an illustrative example using the diagrams of
A maximum length ternary signal generated by the circuit of
The initial content of the shift register is [1 2 0] and the generated maximum-length ternary sequence of 26 symbols is [0 0 0 1 1 2 1 2 0 2 2 0 1 2 2 2 1 1 0 1 0 2 0 0 2 1].
The shift register with elements 1303, 1304 and 1305 will have the following states as shown in the following table.
The LFSR has the forbidden state [0 0 2]. The memory circuit or method of
One can change the generated sequence in the method of
It should be clear that in the method here provided the width of the memory line is determined by the necessary signals to generate the output signal for the sequence. In the case of the illustrative example two symbols (not 3) are required to generate a symbol for the sequence. If there is a need for more signals, because the equivalent LFSR for instance has a greater number of taps, then the width of memory is greater. In that case it may be more advantageous to just store the symbol to be generated and limit the width of the memory to one symbol.
One can generate sequences that can definitely not be generated by LFSR circuits like in
It should be clear that the methods described for binary and ternary sequences can be applied to generate n-valued sequences using memory ‘word’ methods. It is also possible to form the next address for the memory in different ways. First of all one could include in the content of an address line the address or a pointer to an address that would identify the next address line. Another way is to use the feedback result and the status of the current address. Using again the LFSR based generator of
A novel way to implement LFSRs with addressable memory is one aspect of the present invention and is shown in
The circuit of
This coordination between output of the memory and input to the address decoder may be controlled with clock signals. Accordingly one may also prevent unwanted changes in the output of the enabled memory line by appropriate use of a clock signal 1603. For instance after the occurrence of a clock signal 1603 a memory line is enabled. A change to another enabled memory line will only happen after clock signal 1603 occurs again. If desired one can use both or either a buffer 1611 and a clock signal 1603 to prevent race conditions. While this aspect may not be shown in all individual examples of LFSR realizations by memory it should be assumed to be present and is herewith disclosed as such.
Avoiding the use of shift registers in LFSR based scramblers may sometimes be desirable, for instance for reasons of power dissipation at certain clock speeds. It is possible to avoid shift registers in LFSR scramblers by using addressable memory. A diagram of an LFSR based binary scrambler is shown in
Based on other aspects of the present invention it should be clear that the state of the LFSR can at any time be one of 8 states, as opposed to 7 states in a sequence generator where one excludes the forbidden state. For practical reasons one should prevent input signals of long series 0s occurring when the state of the shift register is [0 0 0]. However that is a practical reason for avoiding long series of 0s, not an operational limitation of the scrambler. The last 2 bits of the new state of the shift register will be the first 2 bits of the previous state of the shift register and the first bit of the new state of the shift register will be the bit generated by combining the last two bits of the shift register of the previous state by a XOR function and combining that result by a XOR function with the binary value of the incoming (and to be scrambled) signal. One may consider the new state thus generated by the old state a memory address to a memory with the content equivalent to the memory address. The content of the memory address represents the correct state of a binary LFSR based scrambler. It should be clear that the method explained in the illustrative example works for all binary LFSR based scramblers. The realization of the scrambler of
It is another aspect of the present invention to use memory based methods to descramble the signal created by an LFSR equivalent scrambler method. The known configuration of a binary LFSR based descrambler is shown in
The ‘memory’ method of the LFSR based descrambler is shown in
The ‘addressable memory’ method can also be applied to 3-valued and n-valued scramblers and descramblers with n greater than 3, which is another aspect of the present invention. As an illustrative example both a 3-valued LFSR based scrambler and descrambler will be described. A difference with the binary case is that the applied n-valued logic devices in the scrambler and descrambler solutions are of course non-binary. Also the addressable memory and the address coder operate on n-valued symbols. It is of course possible to have n-valued symbols represented as binary words and adapt all circuitry and methods accordingly. This method of n-valued symbol representation is fully contemplated, and in fact provides including the usage of A/D and D/A converters a complete enablement of n-valued methods in binary technology.
The rules for corresponding LFSR based n-valued scramblers and descramblers was explained by the inventor in U.S. Non-Provisional patent application Ser. No. 10/935,960, filed on Sep. 8, 2004, entitled TERNARY AND MULTI-VALUE DIGITAL SCRAMBLERS, DESCRAMBLERS AND SEQUENCE GENERATORS, which is incorporated herein in its entirety by reference.
As an illustrative example assume that the ternary logic function sc 1 has the following truth table.
While the scrambling function is commutative it may be of influence how the device 2308 in
When the device is connected in such a way that the signal provided by 2301 on 2308 ‘sees’ the rows of ds1″ then ds1″ should have reversing columns related to sc1 as is shown in the following truth table.
The diagram of
The previous section has shown how to descramble an unknown scrambled sequence of which the method of scrambling was known, by using addressable memory based methods. It is another aspect of the present invention to provide methods to detect known sequences by applying addressable based methods. One aspect of the present invention is to detect maximum-length binary and non-binary Pseudo-Noise or maximum-length sequences, which can be generated by LFSR based methods.
The addressable memory detection method can also be applied to ternary and other n-valued maximum length LFSR generated sequences. As an illustrative example a ternary 26 symbols m-sequence detector will be described. Assume that the ternary sequence is generated by a ternary sequence generator described by the diagram of
The function ds10 will generate all 0s when the signals on 2601 and 2609 are identical and a 1 or a 2 when they are not. Function ds11 will generate all 1s when the signals on 2601 and 2609 are identical and 2s and 0s when they are not. Function ds12 will generate all 2s when 2601 and 2609 are identical and 0s when they are not.
The circuit of
It should be clear that this method can also be applied to other n-valued sequences which can be generated by single LFSR circuits.
It was shown that the ‘p symbol word’ method can generate n-valued sequences of a maximum length of np wherein each word will only be used once. This offers the opportunity by detecting a sequence by analyzing the sequence as a series of overlapping and unique words. By determining the order of words one can then detect the appropriate sequence. This was described in U.S. Provisional Patent Application No. 60/695,317 filed on Jun. 30, 2005 entitled CREATION AND DETECTION OF BINARY AND NON_BINARY PSEUDO-NOISE SEQUENCES NOT USING LFSR CIRCUITS which is hereby incorporated by reference herein in its entirety. A special class of attractive binary and n-valued sequences is formed by Gold-sequences. In a set of Gold-sequences each sequence has an attractive and highly peaked auto-correlation graph and a cross-correlation with other sequences in the set that has no peak and has a very limited value range. Gold sequences are formed by combining two different m-sequences, usually from different LFSR configurations of identical length of say p elements. While each individual m-sequence can be analyzed in unique words of p symbols, the same is not true of the Gold sequences.
As an illustrative example of the method of detecting known sequences (including Gold sequences) which is another aspect of the present invention, a set of ternary Gold sequences will be used. The following ternary m-sequence of length 80 can be generated by a ternary 4-element LFSR generator: [0 0 2 0 2 0 1 0 1 1 0 1 2 0 1 1 1 1 2 2 2 1 2 2 0 1 2 1 1 1 0 2 2 0 0 2 1 2 0 0 1 1 2 1 2 1 0 1 0 0 1 0 2 1 0 0 0 0 2 2 2 0 2 2 1 0 2 0 0 0 1 2 2 1 1 2 0 2 1 1]. A set of Gold sequences is formed by cyclically shifting and combining with the following 80 symbol ternary m-sequence: [1 2 1 0 1 1 0 0 1 0 0 0 1 2 1 2 2 0 1 1 1 2 2 2 2 0 2 0 2 1 1 2 0 1 0 2 1 0 0 2 2 1 2 0 2 2 0 0 2 0 0 0 2 1 2 1 1 0 2 2 2 1 1 1 1 0 1 0 1 2 2 1 0 2 0 1 2 0 0 1]. One off the 80 generated ternary Gold sequences is: Gold1=[1 2 2 0 2 1 2 0 0 2 0 2 2 2 0 1 1 2 2 2 2 1 0 0 2 2 0 2 1 0 1 0 1 1 0 0 0 1 0 2 1 0 0 2 0 1 0 2 2 0 2 0 0 0 2 1 1 0 0 0 0 1 2 2 0 0 2 0 1 2 1 2 1 1 2 2 2 1 2 0]. The auto-correlation graph of this sequence is shown in
Synchronization in the context of the present invention means “knowing” which word one is dealing with. For instance the word that represents 75 may be the word preceded by 25 and succeeded by 62, or it may be the word representing 75 preceded by 25 and succeeded by 61. So it is possible to distinguish between the two occurrences. However it will require an effort to distinguish between the two situations. It should be clear that in case of a unique word, the address will point immediately to the correct location in the memory, because there is no choice. In such a case no synchronization is required.
One way to achieve a series of unique words in the Gold sequence is by creating words of more than 4 symbols. It can be seen that re-occurring patterns have a maximum length of 7 symbols so that words of length 8 should be unique and enables the creation of a set of Gold sequences of which each can be detected by using an addressable memory method. The above decimal sequence can be expressed in a decimal sequence of 73 numbers formed by 8 symbol words: Gold1—8=[4201 6040 4998 1870 5610 3708 4563 565 1694 5081 2121 6363 5967 4779 1214 3640 4357 6510 6408 6100 5178 2411 670 2009 6025 4952 1733 5197 2467 838 2513 976 2928 2222 103 307 921 2761 1721 5161 2361 522 1564 4692 952 2854 1999 5997 4868 1481 4441 199 595 1783 5348 2922 2205 52 154 462 1384 4151 5892 4553 537 1610 4829 1365 4095 5724 4049 5586 3634]. This sequence consists of 73 unique 8 symbol ternary words.
One can take another sequence from this set of ternary Gold sequences Gold2=[0 1 1 0 1 1 1 1 1 1 0 0 2 1 1 1 1 1 1 0 1 1 2 2 2 2 2 2 1 0 0 1 0 2 1 0 2 0 2 0 2 1 1 2 1 1 1 1 1 1 2 2 0 1 1 1 1 1 1 2 1 1 0 0 0 0 0 0 1 2 2 1 2 0 1 2 0 2 0 2]. The translation of this sequence into 8 symbol decimal words provides: Gold2—8=[1013 3038 2552 1093 3277 3270 3248 3182 2984 2390 608 1823 5467 3278 3272 3255 3204 3051 2592 1215 3645 4373 6556 6544 6509 6403 6087 5138 2290 309 925 2775 1762 5286 2735 1643 4929 1664 4991 1850 5549 3524 4010 5469 3285 3292 3314 3380 3578 4172 5954 4739 1095 3284 3290 3307 3358 3511 3970 5347 2917 2189 6 18 53 159 475 1424 4272 6253 5637 3787 4800]. The sequence Gold1—8 is significantly different from Gold2—8. All Gold sequences of the set will generate significantly different 8 symbol word sequences.
All Gold sequences of the set generated by two different 4-element ternary LFSRs will generate different 8 symbol word sequences. Not only do words not repeat within a sequence, they will also not repeat within the set of sequences. Consequently decimal numbers based on these words are unique to a sequence of a set. This rule has also been tested on for instance binary Gold sequences, wherein a set of binary Gold-sequences was generated by two 6-elements LFSRs. One can then describe each sequence of that set by 12 bits overlapping words. Each word (and its decimal equivalent) is unique to a sequence and will only appear once in a set of sequences.
Because a multi-symbol word of a certain length is unique to a sequence, this method of analysis provides a basis for detection of individual Gold sequences, which is another aspect of the present invention.
The method of describing Gold sequences generated by combining two sequences generated by two different n-valued sequence generators applying k n-valued symbol words, either in LFSR or the earlier described “word” configuration, as a sequence of unique 2k n-valued symbol words in a set of Gold or Gold-like sequences is one aspect of the present invention. The here provided ternary Gold sequences is an illustrative example, which can be expanded to other n-valued sets of Gold sequences with n≧2. Another aspect of the present invention is the detection of n-valued sequences by way of memory based methods. It is fully contemplated to also generate Gold sequences by way of the here disclosed memory based methods.
One application of n-valued Gold sequences is in pulse position modulation, wherein a train of pulses represents a symbol. A train of pulses may represent a time division channel. So a combined train of pulses may represent different channels. The challenge is that no individual train, under condition of synchronization, should interfere with another train, or are orthogonal. Further more there should be a unique possibility to identify a train of pulses. Pulse trains, transposed according to the decimal number method of Gold sequences as described above will have those properties.
Different variations of the memory based word detection method for binary and n-valued Gold sequences can be developed. Different variations will be described for illustrative purposes, using the previously described set of ternary Gold sequences and 8 symbol ternary words for detection.
A first illustrative example uses the circuit as shown in
It should be clear that the method can be used to detect any of the set of Gold sequences, though for the illustrative example only one Gold sequence is being detected. Accordingly one may expand the width of memory 2902 to a number or word representing any of the set of Gold sequences.
The memory line enabled by 2905 then shows [2 1 0 2 1 2 2 1] being the 7 most significant digits of the memory address of the next word and the ‘correctness indicator” symbol 1 for a specific Gold sequence. The enabled memory line may be temporarily stored in a clock controlled buffer 2925 to prevent race conditions as disclosed earlier as an aspect of the present invention. One should take care in the correct programming of the memory lines by closely following the consecutive words in the appropriate sequence, thereby realizing that the digits in the sequence are shown in the order of appearance. For capturing the most significant digits one should ‘read’ the digits in a word in reverse order from their appearance in the sequence. The enabled memory element in column 2902 will provide for instance a 1 when the enabled memory line is at an address that represents a word in sequence to be detected. If an address does not represent a valid Gold word, as shown in the next line, the column 2902 at this address will comprise for instance a 0.
The following will happen starting at address line [2 1 0 2 1 2 2 1] with current sequence symbol being a 0:
1. The line 2905 in
2. The content of 2902 at the enabled memory line at 2905 will be provided on 2920. The input 2920 provides its signal to a circuit 2921. Circuit 2291 may be an adder plus a decision circuit. For instance the decision circuit may be reset to 0 after a certain sum is reached by the adder and detection of a sequence was achieved. The decision circuit may also make decisions on resetting the adder to 0. The decision circuit is controlled by a clock signal 2922 which is synchronized with clock signal 2918.
3. On a clock-pulse provided by 2918 the new address will be enabled. And the total process will repeat itself from step 1.
A process of creating an addressable memory to detect a Gold sequence of n-valued symbols is shown in diagram in
The process of detection is shown in the flow diagram of
When a low Symbol Error Ratio is expected the detection process being an aspect of the present invention is self synchronizing. The method may initially lose track during the first 8 symbols of a next sequence if an error occurs. However the next and assumed to be correct symbols will shift into the memory and at the 9th symbol the method will be back on track. One can modify the detection circuit 2921 in such a way that it will accept a certain number of symbols not being 1 (for instance 8 0s) when 1s are expected. Especially when the counter has a sum well above 0, it is almost certain that a symbol error has occurred. One can create and implement different detection rules into detector 2921. Another situation arises when the incoming sequence is not the one to be detected. In that case no word will be detected and circuit 2921 will for instance only receive 0s or other symbols not being 1. One may limit the number of address lines by using a content addressable translation table that translates for expected words and provides a 0 for all not expected words or addresses.
One can assign several different sequences to the detector of
The method previously described to detect binary or n-valued Gold sequences is self-synchronizing. An address will be completely flushed after a number of symbols. Because of its fundamental approach of self-synchronization by memory elements all addresses have to occur if one does not apply some translation table based on for instance content addressable memories.
One can limit the use of memory by limiting the requirement of all addresses to have a memory line attached. One way to do that is by synchronizing the detector to a certain starting moment. Another way is to keep at least a full address in a writable memory like a RAM and use the content of the memory to find a value in a Look-up Table type of circuit like a Content Addressable Memory.
It is another aspect of the present invention to detect a sequence like a binary or an n-valued Gold sequence by means of applying a deserializer with memory capabilities to be used as an address for a look-up table or addressable secondary memory to find a specific value that will contribute to detection.
As an illustrative example the detection of the ternary 80 symbol Gold sequence with 73 overlapping 8 symbol words is used. This is shown in the diagram of
This method may be adapted to allow for smaller memories and for lower clock rates as the deserializer may just sample the received sequence. For instance some form of start of sequence, perhaps in the form of a separate pilot signal may be applied. In that case one may just sample the received sequence. Confidence in the quality of the received sequence in Symbol Error Ratio will determine the sample rate and detection rules. This method can be used to detect many different sequences from the set of Gold sequences. If enough memory is available, one may implement a detector that detects all sequences and program the detector on which sequence a ‘sequence detect’ signal should be generated on 3214 and how a detected sequence should be represented. One way may be to have different ‘sequence detect’ outputs instead of one, wherein a specific detected sequence will enable a specific output. Theoretically a detector for a Gold sequence provided by one aspect of the current invention only requires the error free detection of one word.
One aspect of the present invention is to provide a method to use volatile memory to use the create memory solutions. It is not required to pre-fill a memory with the data representing states of an LFSR or composite LFSRs for Gold sequences.
In summary, one aspect of the present invention is the realization of an n-valued LFSR by way of an addressable memory. An illustrative diagram is shown in
Accordingly 3407 in
The content of the memory reflects all possible states of the LFSR. In case one uses the LFSR in a sequence generator circuit one may omit the forbidden state.
It should be clear that the n-valued circuits in the block diagrams of the different aspects of the present invention may be arranged in different ways and apply different components. One may use binary logic circuits, wherein a non-binary symbol is represented by a plurality of bits. One may apply A/D and D/A converters to process and create n-valued signals. One may use programmable processors such as microprocessors or signal processors. One may also use Look-up Tables or other logic circuits, including n-valued switching circuits as disclosed in U.S. Pat. No. 6,133,754, by Edgar Danny Olson entitled: Multiple-valued logic circuit architecture; supplementary symmetrical logic circuit structure (SUS-LOC). One may apply different functional blocks or omit usage of some the applied blocks as shown in the drawings of the present invention. It should also be clear that such changes will not materially change the underlying methods of the present invention. It should also be clear that the methods can be applied to sequences and symbols in different n-valued logics or representations.
The LFSRs used in different aspects of the present invention are not using multipliers or n-valued reversible inverters. As shown in cited U.S. patent application Ser. No. 10/935,960 one can replace an n-valued reversible logic function with two inputs and an output, with reversible n-valued inverters at one or at both inputs by a single n-valued reversible logic function. Accordingly the different aspects of the present invention also apply to LFSRs that use n-valued reversible inverters.
The present invention deals in many aspects with LFSRs in Fibonacci configuration. Application of the different aspects of the present invention to LFSRs in Galois configuration is fully contemplated and includes: sequence generators, scramblers, descramblers and coders such as Reed Solomon coders. In order to illustrate the use of LFSRs in Galois configuration with addressable memories the diagram of
The generator of
The LFSR of
A special case is the last element outputted on the inverter. The output of the inverter is the output of the LFSR in the present illustration. The LFSR also has an input, which is the input to the first element of the LFSR or in
N-valued LFSR based scramblers and corresponding descramblers have identical LFSRs as defined in this specification. They differ in how signals are routed through a reversible n-valued logic function and connected to an LFSR. As shown extensively in U.S. Non-Provisional patent application Ser. No. 10/935,960 which is incorporated herein by reference in its entirety, the connecting n-valued logic function of the descrambler is the reverse of the connecting n-valued logic function of a scrambler. A function being “the reverse” of another function is the same as stating that one function reverses the other function. In formula: assume n-valued logic functions ‘sc1’ and ‘scr’. Each function has two inputs and one output. For the function ‘sc1’ with inputs ‘a’ and ‘b’ and output ‘c’ one can state: a sc1 b=c. If for the function ‘scr’ the following statement is valid: c scr b=a, then function ‘scr’ is a reverse of function ‘sc1’ or also function: ‘scr’ reverses the function ‘sc1’.
While there have been shown, described and pointed out fundamental novel features of the invention as applied to preferred embodiments thereof, it will be understood that various omissions and substitutions and changes in the form and details of the device illustrated and in its operation may be made by those skilled in the art without departing from the spirit of the invention. It is the intention, therefore, to be limited only as indicated by the scope of the claims appended hereto.
The following patent applications, including the specifications, claims and drawings, are hereby incorporated by reference herein, as if they were fully set forth herein: (1) U.S. Non-Provisional patent application Ser. No. 10/935,960, filed on Sep. 8, 2004, entitled TERNARY AND MULTI-VALUE DIGITAL SCRAMBLERS, DESCRAMBLERS AND SEQUENCE GENERATORS; (2) U.S. Non-Provisional patent application Ser. No. 10/936,181, filed Sep. 8, 2004, entitled TERNARY AND HIGHER MULTI-VALUE SCRAMBLERS/DESCRAMBLERS; (3) U.S. Non-Provisional patent application Ser. No. 10/912,954, filed Aug. 6, 2004, entitled TERNARY AND HIGHER MULTI-VALUE SCRAMBLERS/DESCRAMBLERS; (4) U.S. Non-Provisional patent application Ser. No. 11/042,645, filed Jan. 25, 2005, entitled MULTI-VALUED SCRAMBLING AND DESCRAMBLING OF DIGITAL DATA ON OPTICAL DISKS AND OTHER STORAGE MEDIA; (5) U.S. Non-Provisional patent application Ser. No. 11/000,218, filed Nov. 30, 2004, entitled SINGLE AND COMPOSITE BINARY AND MULTI-VALUED LOGIC FUNCTIONS FROM GATES AND INVERTERS; (6) U.S. Non-Provisional patent application Ser. No. 11/065,836 filed Feb. 25, 2005, entitled GENERATION AND DETECTION OF NON-BINARY DIGITAL SEQUENCES; (7) U.S. Non-Provisional patent application Ser. No. 11/139,835 filed May 27, 2005, entitled MULTI-VALUED DIGITAL INFORMATION RETAINING ELEMENTS AND MEMORY DEVICES; (8) U.S. Provisional Patent Application No. 60/695,317 filed on Jun. 30, 2005 entitled CREATION AND DETECTION OF BINARY AND NON_BINARY PSEUDO-NOISE SEQUENCES NOT USING LFSR CIRCUITS; (9) U.S. Provisional Patent Application Ser. No. 60/789,613, filed Apr. 5, 2006 entitled: SEQUENCE SCRAMBLERS, DESCRAMBLERS, GENERATORS AND DETECTORS IN GALOIS CONFIGURATION.
This application is a continuation and claims the benefit of U.S. Non-Provisional patent application Ser. No. 11/534,837 filed on Sep. 25, 2006 which claims the benefit of U.S. Provisional Patent Application Ser. No. 60/720,655, filed Sep. 26, 2005, which are both incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
60720655 | Sep 2005 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11534837 | Sep 2006 | US |
Child | 12730690 | US |