|
Claims  |
|
|
I claim:
1. In a system of orthogonal code generators having counting means
comprised of a running counter for generating a running count, and code
generators for generating respective code sequences in response to the
count, the improvement comprising: a plurality of m orthogonal code
generators j (j=1, . . . , m) each comprised of Q counter-reading directed
subcode generators i (i=1, . . . , Q) each generating a respective subcode
which together represent the code sequence, wherein a subcode generator
subsequently generates subcode-representing numbers g.sub.i, where g.sub.i
.ltoreq.N.sub.i -1 and N.sub.i represents a fixed value and a subcode
generator is comprised of a pseudo-random generator and an adder unit, the
pseudo-random generator generating from the running counter reading and a
key S, a pseudo-random sequence of numbers which are supplied to the adder
unit, and the adder unit adding a number A.sub.i modulo-N.sub.i to the
second-last-mentioned numbers to obtain the numbers g.sub.i.
2. System of orthogonal code generators as claimed in claim 1,
characterised in that the system comprises N.sub.1 .times.N.sub.2 .times.
. . . .times.N.sub.n code generators, where N.sub.1 .times.N.sub.2 .times.
. . . .times.N.sub.n subcode generators i are embodied in N.sub.i
different types by applying respectively N.sub.i different addition
numbers A.sub.i .ltoreq.N.sub.i -1 for a set of N.sub.1 .times.N.sub.2
.times. . . . .times.N.sub.i-1 .times.N.sub.i+1 .times. . . .
.times.N.sub.n subcode generators i and where each combination of a type
of subcode generators i with a type of subcode generators i-1 in one code
generator, occurs for N.sub.1 .times.N.sub.2 .times. . . .
.times.N.sub.i-2 .times.N.sub.i+1 .times. . . . .times.N.sub.n code
generators.
3. System of orthogonal code generators as claimed in claim 2,
characterised in that each set of N.sub.i .times.N.sub.i+1 .times. . . .
.times.N.sub.n subcode generators k of the same type (k=1, 2, . . . , i-1)
have the same code-sequence-determining key for subcode generator i.
4. System of orthogonal code generators as claimed in claim 1, 2 or 3,
characterised in that a subcode generator i, generating numbers g.sub.i
.ltoreq.N.sub.i, is provided with a.sub.i radix q.sub.i digit positions
for generating the number g.sub.i, where N.sub.i
.ltoreq.q.sub.i.sup.a.sbsp.i.
5. System of orthogonal code generators as claimed in claim 4,
characterised in that q.sub.i =q for all subcode generators i.
6. System of orthogonal code generators as claimed in claim 5,
characterised in that, in a number of sets of
code generators, which are provided with subcode generators i-1 having the
same key, subcode generators i-1 are combined with subcode generators i,
where the combined subcode generators are provided with the same key and
with q.sup.(a.sbsp.i-1.sup.+a.sbsp.i.sup.) mutually different addition
numbers of (a.sub.i-1 +a.sub.i) digit positions.
7. System of orthogonal code generators as claimed in claim 5,
characterised in that, in a number of sets of
##EQU10##
code generators having the same key for subcode generators i, a number of
corresponding digit positions is fixed.
8. System of orthogonal code generators as claimed in claim 5,
characterised in that, in a number of sets of
##EQU11##
code generators having the same key for subcode generators i, subcode
generators i of the set are replaced by r subsubcode generators i' (i'=1,
. . . , r), where subsubcode generators i' have mutually the same key and
different addition numbers.
9. System of orthogonal code generators as claimed in claim 5,
characterised in that, in a number of sets of
##EQU12##
code generators provided with code generators i having mutually the same
key and code generators i+1 having mutually the same key, subcode
generators i of the set are replaced by subcode generators i' having
a.sub.i digit positions and mutually different addition numbers, and
subcode generators i+1 of the set have been replaced by subcode generators
i+1' having a.sub.i+1 ' digit positions and mutually different addition
numbers, where a.sub.i +a.sub.i+1 =a.sub.i '+a.sub.i+1 '.
10. System of orthogonal code generators as claimed in claim 5,
characterised in that, in a number of sets of
##EQU13##
code generators having mutually the same keys at level i, subcode
generators i of the set are replaced by subcode generators i' having
mutually the same key, a.sub.i ' digit positions, and mutually different
addition numbers.
11. Radio, provided with a code generator as claimed in claim 1, 2 or 3,
where the output signals of the code generator are supplied to a memory
with the purpose of addressing memory positions, a memory position
comprising a frequency-representing value, which value is supplied to a
transmitting and receiving unit to tune this unit to the last-mentioned
frequency value, where the radio operates in a frequency band having
f.sub.l as the lowest frequency and f.sub.h as the highest frequency and
where the memory consists of N.sub.1 .times.N.sub.2 .times. . . .
.times.N.sub.n =Q memory positions, comprising the frequency values
f.sub.1, f.sub.2, . . . , f.sub.Q respectively, while f.sub.i-1 f.sub.i
=(f.sub.h -f.sub.l)/Q for i=1, 2, . . . , Q-1.
12. Radio provided with a code generator as claimed in claim 1, 2 or 3,
where the output signals of the code generator are supplied to a memory
with the purpose of addressing memory positions, a memory position
comprising a frequency-representing value, which value is supplied to a
transmitting and receiving unit to tune this unit to the last-mentioned
frequency value, where the radio operates in a frequency band having
f.sub.1 as the lowest frequency and f.sub.h as the highest frequency, and
where the memory consists of N.sub.1 .times.N.sub.2 .times. . . .
.times.N.sub.n =Q memory positions, comprising the frequency values
##EQU14##
and i=1, 2, . . . , Q/N.sub.1, j=1, 2, . . . , N.sub.1.
13. Radio provided with a code generator as claimed in claim 1, 2 or 3,
where the output signals of the code generator are supplied to a memory
with the purpose of addressing memory positions, a memory position
comprising a frequency-representing value, which value is supplied to a
transmitting and receiving unit to tune this unit to the last-mentioned
frequency value, where the memory consists of N.sub.1 .times.N.sub.2
.times. . . . .times.N.sub.n =Q memory positions, comprising the frequency
values
##EQU15##
respectively, while .vertline.f.sub.i.sup.j -f.sub.i'.sup.j
.vertline..gtoreq..DELTA..f.sub.i.sup.j (j=1, 2, . . . , Q/k.sub.1 k.sub.2
; i,i'=1, 2, . . . , k.sub.1 k.sub.2 .LAMBDA.i.noteq.i'; .DELTA.>0;
k.sub.1 k.sub.2 .epsilon.N.sup.+) and f.sub.i.sup.j .noteq.f.sub.i.sup.j'
if i.noteq.i of j.noteq.j.
14. Radio as claimed in claim 13, characterised in that the radio operates
in a frequency band B with f.sub.l <B<f.sub.h, where
##EQU16## |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
The invention relates to a system of orthogonal code generators, where a
first code generator generates a code sequence from a running counter
reading which sequence is different from the code sequence generated by a
second code generator, directed by the same counter reading;
The invention also relates to a code generator suitable for use in a system
as described above and to a radio provided with a code generator, where
the output signals of the code generator are supplied to a memory for
addressing memory positions where a memory position comprises a
frequency-representing value, which is supplied to a transmitting and
receiving unit to tune this unit to the last-mentioned frequency value.
Such a system is known from EP-A 0,189,695. It relates particularly to a
system for radio communication. In this system a radio generates a
sequence of frequencies on which the radio transmits or receives. For this
purpose, a radio is provided with a pseudo-random generator of which the
running counter reading is supplied to a code generator also belonging to
the radio. It is hereby presumed that the radios are provided with
mutually synchronised counter position generators. For the synchronisation
of the counter reading generators (also called time-of-day counters),
reference is made to EP-A 0,235,869. From a running counter reading a code
generator generates a code sequence. For this purpose it is conceivable
that such a code addresses a conversion table (memory), causing the code
to be converted to a frequency. Such a conversion table will therefore
usually be a one-to-one projection. If the code sequences of a number of
radios are identical and synchronous, communication among these radios is
possible. A set of such radios is called a "net". It is often desirable
that several nets (code generators) of radios exist, generating different
code sequences to render communication among the nets impossible. Such a
system is known from EP-A 0,189,695. If it should moreover be required
that such nets do not cause mutual interference, the code sequences should
not generate the same codes at any moment. The nets thus generate mutually
orthogonal code sequences. It is important for communication that, if the
code sequence of the first net is known, the code sequence of other nets
are as little known as possible to reduce the effects of jamming to a
minimum. This implies that the mutual correlation of the orthogonal code
sequences must be as little as possible, while the whole net system must
contain sufficient correlation to guarantee that all nets generate
mutually orthogonal sequences.
A code generator as mentioned in this description, in the case of radio
communication, equivalent to a net of radios (code generators) which
synchronously generate the same code sequence. All radios of the same net
are provided with code generators generating the same code. Two orthogonal
code generators are therefore equivalent to two orthogonal nets of code
generators.
The above-mentioned application EP-A 0,189,695 has the disadvantage that
not all nets generate orthogonal code sequences.
SUMMARY OF THE INVENTION
The present invention does not have this disadvantage and is characterised
in that a code generator consists of a number of individually arranged and
counter-reading directed subcode generators, each generating a subcode
together representing the code, where at least one subcode generator of
the first code generator generates a subcode which is different from the
subcode of the similarly arranged subcode generator of the second code
generator.
A system in accordance with the invention also has the advantage that an
extremely complex system of orthogonal code generators (orthogonal nets of
radios) can be realised in a simple way. Compromise of a first code
generator has minimal consequences for co-compromise of other code
generators (other nets of radios). Moreover, an existing system can easily
be extended or rearranged, without deteriorating the orthogonal operation
of the code generators.
A special embodiment of a system of orthogonal code generators is
characterised in that a code generator consists of n subcode generators i
(i=1, 2, . . . , n), where a subcode generator i subsequently generates
subcode-representing numbers g.sub.i, where g.sub.i .ltoreq.N.sub.i -1 and
N.sub.i represents a fixed value, where a subcode generator consists of a
pseudo-random generator and an adder unit, the pseudo-random generator
generating from the running counter reading and directed by a key, a
pseudo-random sequence of numbers which are supplied to the adder unit,
and the adder unit adding a number A.sub.i modulo N.sub.i to the
second-last mentioned numbers to obtain the numbers g.sub.i.
If a code generator according to the invention is applied in a
frequency-hopping radio, where the code generator addresses the
above-mentioned memory table (conversion table) to obtain the frequency to
be used, a radio in the embodiment according to the invention is very
advantageous as regards jamming occurring in cosite situations. If
orthogonally operating radios are geographically situated in each other's
vicinity, they may jam each other if they use frequencies which, although
not the same, lie very close together. In combination with the code
generator, the memory can be arranged in such a way that only very few
radios can jam each other. According to the invention, the memory is built
up of N.sub.1 .times.N.sub.2 .times. . . . x N.sub.n =Q memory positions,
comprising respectively the frequency values f.sub.1.sup.1, f.sub.2.sup.1,
. . . , f.sub.Q/N.sbsb.1.sup.1, f.sub.1.sup.2, f.sub.2.sup.2, . . . ,
f.sub.Q/N.sbsb.1.sup.2, . . . f.sub.1.sup.N.sbsp.1, f.sub.2.sup.N.sbsp.1,
. . . , f.sub.Q/N.sbsb.1.sup.N.sbsp.1, where
##EQU1##
and i=1, 2, . . . , Q/N.sub.1, j=1, 2, . . . , N.sub.1.
A specially advantageous embodiment according to the invention consists in
that the memory contains N.sub.1 .times.N.sub.2 .times. . . .
.times.N.sub.n =Q memory positions, comprising respectively the frequency
values
##EQU2##
where t.vertline.f.sub.i.sup.j -f.sub.i'.sup.j
.vertline..gtoreq..DELTA..f.sub.i.sup.j (j=1, 2, . . . , Q/k.sub.1 k.sub.2
; i, i'=1, 2, . . . , k.sub.1 k.sub.2 .LAMBDA.i.noteq.i'; .DELTA.>0;
k.sub.1 k.sub.2 .epsilon.N.sup.+) and f.sub.i .sup.j .noteq.f.sub.i.sup.j'
if i.noteq.i of j.noteq.j.
A radio now proves on theoretical grounds to be arranged in such a way that
a maximum number of radios can operate together without jamming in a
cosite situation.
BRIEF DESCRIPTION OF THE DRAWING
The invention will be further explained with reference to the accompanying
figures, of which
FIG. 1 shows a simple embodiment of a code generator according to the
invention;
FIG. 2 shows a tree diagram of the division of keys and addition numbers
for a system of code generators of FIG. 1;
FIG. 3 shows a tree diagram for a possible key and addition number division
of a system of 48 orthogonal code generators;
FIG. 4 shows a code generator belonging to the system of FIG. 3;
FIG. 5 shows the deletion of a level in the tree diagram of FIG. 3;
FIG. 6 shows the addition of a level in the tree diagram of FIG. 3;
FIG. 7 shows the reconfiguration of a level in the tree diagram of FIG. 3;
FIG. 8 shows the fixation of a level in the tree diagram of FIG. 3;
FIG. 9 shows the extension of subcode generators of some code generators in
the system according to FIG. 3;
FIG. 10 shows a radio provided with a subcode generator;
FIG. 11 shows possible divisions of clusters of radios over a frequency
interval;
FIG. 12 shows a tree diagram according to the invention to achieve an
optimal cosite situation.
DETAILED DESCRIPTION OF THE INVENTION
Reference number 1 in FIG. 1 indicates a very simple embodiment of a code
generator forming part of a system of orthogonal code generators,
according to the invention. The code generator is provided with a 32-bit
counter reading generator 2, generating a 32-bit running counter reading.
Furthermore, the code generator is provided with three subcode generators
3.i (i=1, 2 or 3). From the running counter reading, an i.sup.th subcode
generator 3.i generates a radix q number of a.sub.i digit positions. In
this example it is assumed, without restricting the scope of claims, that
q=a.sub.i =2. Each subcode generator therefore generates a 2-bit subcode
(number) g.sub.i (i=1, 2 or 3). The range of a subcode generator is
therefore [0, N.sub.i -1] where N.sub.i =4. The three subcodes g.sub.i
together form a 6-bit code, as indicated in FIG. 1. A subcode generator
3.i consists of encryption unit 4.i (i=1, 2, 3) and a modulo-4 adder unit
5.i. The encryption unit 4.i generates a pseudo-random 2-bit number
L.sub.i under direction of an exchangeable key 6.i (i=1, 2, 3). This 2-bit
number L.sub.i is supplied to adder unit 5.i. Adder unit 5.i also receives
a 2-bit number A.sub.i (i=1, 2, 3). Adder unit 5.i adds 2-bit number
A.sub.i modulo 4 to number L.sub.i to obtain subcode g.sub.i.
A system of orthogonal codegenerators as described above can only contain a
maximum of
##EQU3##
orthogonal code generators, because only 64 different codes can be
generated. For this purpose, the 64 code generators should have a
distribution of keys and addition numbers A.sub.i according to the
invention. Distribution of keys and addition numbers can be as follows:
All subcode generators 3.i of the 64 code generators (64 nets) have the
same key S.sub.1. (One could also say that these subcode generators are of
the same type.) A first cluster of 16 code generators exists having an
addition number A.sub.1.1. A second cluster of 16 code generators has a
different addition number A.sub.1.2. Similarly, a third and a fourth
cluster of 16 code generators have addition numbers A.sub.1.3 and
A.sub.1.4 respectively. Because A.sub.1.k .noteq.A.sub.1.m (k, m=1, 2, 3,
4.LAMBDA.k.noteq.m), the four clusters generate mutually different codes
(the numbers g.sub.i are different).
FIG. 2 indicates by means of a tree diagram how 64 (nets of) code
generators R can be distributed over four clusters. Level 1 of the tree
diagram indicates the four clusters with the accompanying addition numbers
of the first subcode generator. It clearly shows that the first subcode
generators effect the quartering (orthogonalisation) at the first level of
the tree diagram. The common key S.sub.1 of the first subcode generator is
indicated above the first level. The first index of a key or addition
number corresponds with index i of subcode generator 3.i and the level i
to which the key or the addition number in question relates (here i=1, 2
or 3). A subcode generator 3.i will hereinafter be called subcode
generator i.
For the orthogonalisation of the code generators within a cluster, a
cluster of 16 code generators is subdivided into four subclusters of four
code generators. To realise this, measures have to be taken at subcode
generators 2 (i=2) of a cluster: the 16 nets of the first cluster have the
same key S.sub.2.1 while four nets of a first subcluster of the first
cluster have addition number A.sub.2.11, four nets of a second subcluster
of the first cluster have addition number A.sub.2.12, etc. Similarly, each
of the second, third and fourth clusters are subdivided into four
orthogonal subclusters of four code generators.
Because A.sub.2.kp .noteq.A.sub.2.kr (k, p, r=1, 2, 3, 4.LAMBDA.p.noteq.r),
nets of a first subcluster of a cluster are orthogonal with nets of a
second subcluster of the last-mentioned cluster. Keys S.sub.2.i (i=1, 2,
3, 4) do not especially need to be different. In view of safety after
compromise however, it is advantageous to make last-mentioned keys
mutually independent. The keys, so to say, determine the basic pattern of
a code sequence while the addition parts orthogonalise basic patterns.
Because nets of a first cluster are also orthogonal with nets of a second
cluster, nets of a first subcluster are orthogonal with nets of each
second subcluster which is different from the first subcluster.
FIG. 2 shows the second level of the division of clusters into subclusters.
It also indicates the different addition numbers of the second subcode
generators. The common key of a subcluster is indicated above the second
level.
Four code generators within a subcluster are orthogonal as a result of the
application of a common key for these four code generators and the
application of four different addition numbers in these code generators
for subcode generator 3. In this way, the four code generators of the
second cluster of the third subcluster receive a common key S.sub.3.23 and
four different addition numbers A.sub.3.231, A.sub.3.232, A.sub.3.233 and
A.sub.3.234 respectively.
FIG. 2 indicates the addition numbers of subcode generators 3 at the third
level, while above the third level the common key of the four code
generators belonging to one subcluster is indicated.
Because four code generators within a subcluster operate orthogonally as a
result of the addition numbers at subcode generators 3, code generators of
different subclusters within one cluster operate orthogonally as a result
of the addition numbers of subcode generators 2, and code generators of
different clusters operate orthogonally as a result of the addition
numbers at subcode generators 1, all 64 code generators (or nets of code
generators) operate mutually orthogonal.
A code generator according to the above embodiment can be generalised as
follows: Per code generator, n subcode generators may be applied, where a
subcode generator is provided with a bits. In FIG. 2 this would mean that
n levels exist where each junction 2.sup.a is branched off and a total of
A=2.sup.na code generators exist. There are 1+2.sup.a +2.sup.a +2.sup.2a
+2.sup.(n-1)a =(2.sup.na -1)/(2.sup.a -1) independent keys with 2.sup.a
different addition numbers per key.
Instead of binary numbers, numbers from a radix q system may be used for
the subcode generators. In that case, the addition numbers are added
modulo-q.sup.a. If the code generator is provided with n subcode
generators, where a subcode generator is provided with "a" radix q digit
positions, a maximum of Q=q.sup.na code generators can operate
orthogonally.
There are
##EQU4##
independent keys with q.sup.a different addition numbers per key. It is
possible, by means of 2 bits (a=2) to simulate a ternary system (q=3) by
only using the numbers 00, 01 and 10 and treating them as numbers. In that
case, the addition numbers are added modulo-3.
As an example of a further generalisation, it is also possible that the
range of subcode generators i (i=1, . . . , n) is different within a code
generator. The range of subcode generator i is then N.sub.i, i.e. subcode
generator i generates numbers in the range of [0, N.sub.i -1]. The
variation within this range can be realised in different ways: the number
of digit positions a.sub.i is a function of i; digit positions of subcode
generator i are radix q.sub.i, where q.sub.i is a function of i or the
full range of a subcode generator i is not used as described above with
numbers g.sub.i =00, 01 or 10, where a.sub.i =2. A combination of the
three methods mentioned above is also possible.
If, for example, the first and second method are combined, N.sub.i of a
subcode generator i can be described: N.sub.i =q.sub.i.sup.a.sbsp.i.
If the third method also applies here, N.sub.i <q.sub.i.sup.a.sbsp.i.
The maximum number of orthogonal code generators Q is N.sub.1
.times.N.sub.2 .times. . . . .times.N.sub.n. There are N.sub.1
.times.N.sub.2 .times. . . . .times.N.sub.n-1 independent keys for subcode
generators i with N.sub.i different addition numbers per key.
The total number of independent keys is 1+N.sub.1 +N.sub.1 .times.N.sub.2 +
. . . ++N.sub.1 .times.N.sub.2 .times. . . . .times.N.sub.n-1.
So far it has been assumed for the generalisation of the system of
orthogonal code generators, that all (sub)clusters of a level are of the
same size, in other words, contain the same amount of code generators.
This corresponds with the condition that all subcode generators i have the
same range N.sub.i. On the basis of the orthogonal codegenerators
described above, five independent methods, either in combination or not,
can be applied for a further generalisation. Each method should at least
be applied to subcode generators i, belonging to the same (sub)cluster and
therefore having the same key (of the same type). The five methods will be
discussed on the basis of an example. We assume a system of three clusters
(N.sub.1 =3), each having two subclusters (N.sub.2 =2), each with four
subclusters (N.sub.3 =4) of two code generators each (N.sub.4 =2), see
FIG. 3.
FIG. 4 shows a possible construction of a code generator of the
last-mentioned system of these code generators, where a.sub.1 =q.sub.1 =2.
For simplicity's sake, the code generators are numbered with a different
notation from R.sub.1 -R.sub.48. For a subcode generator 1, N.sub.1 =3, so
that N.sub.1 <q.sub.1.sup.a.sbsp.1. This implies that only the numbers
g.sub.1 =00, 01 and 10 are used, while addition numbers are added
modulo-3. For a subcode generator 2, N.sub.2 =2, so that N.sub.2
=a.sub.2.sup.a.sbsp.2 and the numbers g.sub.2 =0 and g.sub.2 =1 are used;
addition numbers are added modulo-2. For a subcode generator 3, N.sub.3
=4, so that N.sub.3 =q.sup.3.spsp.a.sbsp.3 and the numbers g.sub.3 =00,
01, 10 and 11 are used; addition numbers are added modulo-4. For a subcode
generator 4 the same applies as discussed for subcode generator 2.
A first generalising method is the omission of a level of several
(sub)clusters. FIG. 5 shows an example. Here level 4 for a subcluster has
been omitted. This is realised by combining two or more subcode generators
to form one larger subcode generator at the code generators.
Last-mentioned subcode generators are provided with one key and different
addition numbers. In this example, subcode generators 3 and 4 of code
generators 1-8 are combined to form one subcode generator 3'. Subcode
generators 3' are provided with a.sub.3 '=3 digit positions, one common
key S.sub.311 and eight mutually different addition numbers (A.sub.3.11k,
k=1, 2, . . . , 8), which are added modulo-8.
A second method implies the insertion of a level for several (sub)clusters.
FIG. 6 shows an example. One level has been inserted for the subcluster of
code generators R.sub.1 -R.sub.8. This is realised by replacing a number
of subcode generators by two or more subcode generators per subcode
generator, for the code generators belonging to a (sub)cluster. In this
example, subcode generators 3 of the code generators R.sub.1 -R.sub.8 are
replaced by subcode generators 3' and 4'. The subcode generators 3' are
provided with the same key S.sub.3'.11, while subcode generators 4' are
provided with a key S.sub.4'.111 or S.sub.4'.112, see FIG. 6. Four subcode
generators having key S.sub.3'.11 are provided with the addition number
A.sub.3'.111 and the remaining four subcode generators with key
S.sub.3'.11 are provided with the addition number A.sub.3'.112. We assume
that A.sub.3'.111 .noteq.A.sub.3'.112. Subcode generators 4' of code
generators R.sub.1 and R.sub.2 are provided with addition number
A.sub.4'.111 ; subcode generators 4' of code generators R.sub.3 and
R.sub.4 are provided with addition number A.sub.4'.1112, subcode
generators 4' of code generators R.sub.5 and R.sub.6 are provided with
addition number A.sub.4'.1121 and the subcode generators 4' of the code
generators R.sub.7 and R.sub.8 are provided with addition number
A.sub.4'.1122.
We assume that: A.sub.4'.1111 .noteq.A.sub.4'.1112 and A.sub.4'.1121
.noteq.A.sub.4'.1122. Subcode generators 5 of code generators R.sub.1 and
R.sub.2 are provided with a common key S.sub.5.1111 and two different
addition numbers A.sub.5.11111 and A.sub.5.11112 respectively.
A third method is the reconfiguration of several (sub)clusters. In this
method the distribution of the number of digit positions a.sub.i within a
(sub)cluster for subsequent levels i (e.g. i=k, k+l, . . . , k+r) is
rearranged to a number of digit positions a.sub.i (i=k, k+l, . . . , k+r)
where the total number of digit positions remains unchanged, in other
words:
##EQU5##
FIG. 7 gives an example. In FIG. 7, a.sub.3 '=1 and a.sub.4 '=2, so that
a.sub.2 +a.sub.3 =a.sub.2 '+a.sub.3 '. The number of keys at the fourth
level is now two instead of four. To each key of the fourth level of code
generators (R.sub.1 -R.sub.8) now belong four different addition numbers.
The same effect can be achieved by exchanging numbers g.sub.i in the code,
e.g. g.sub.i g.sub.j g.sub.k is replaced by g.sub.j --g.sub.k --g.sub.i.
A fourth method is the fixation of one or more subcode generators of
several code generators. This implies that, for several code generators,
the output of one or more subcode generators is fixed or masked by a
number. This results in the relevant code generators generating a limited,
possibly disjunct, code sequence. FIG. 8 shows an example where subcode
generators 4 of code generators 1 and 2 are fixed. In a tree diagram as in
FIG. 8, fixation implies in fact that one branch is cut off because the
number of orthogonal code generators generating 48 different codes
decreases.
A fifth method concerns the extension of subcode generators for several
code generators. This can be realised by giving several subcode generators
i a wider range N.sub.i ', implying that the number of orthogonal code
generators in the system can increase. This can also be realised by
providing several code generators with an extra subcode generator. These
two possibilities will be subsequently described by means of FIG. 9.
In FIG. 9 two code generators are added. This can be realised by providing
subcode generators 3 with an extra digit position, i.e. a.sub.3 '=3. If
q=2, subcode generators 3 have a range N.sub.3 .ltoreq.2.sup.3. In this
case N.sub.3 =5, implying that the number of codes to be generated
Q=N.sub.1 .times.N.sub.2 .times.N.sub.3 .times.N.sub.4
=3.times.2.times.5.times.2=60. This implies that the system can consist of
a maximum of 60 orthogonal code generators. However, for 10 code
generators the fourth subcode generators are fixed, implying that the
system effectively includes 50 orthogonal code generators, generating 60
different codes. So, two generators having a key S.sub.312, S.sub.321,
S.sub.322, S.sub.331 and S.sub.332 respectively, qualify for fixation, so
that at each of the accompanying subclusters a branch of the accompanying
tree diagram is omitted. Only the subcluster with key S.sub.311 is
therefore provided with a fifth branch.
Corresponding with the second possibility for the fifth method, the
codegenerators with key S.sub.311 are provided with an extra subcode
generator having a range of N=2. This implies that the system can generate
50 different codes, so that 50 orthogonal code generators can be realised.
Only the subcluster with key S.sub.311 is therefore provided with a fifth
branch. The difference with the first possibility is particularly clear
from the number of different codes generated: according to the first
possibility 60 different codes are generated, while 50 orthogonal code
generators are present, according to the second possibility 50 different
codes are generated, while 50 orthogonal code generators are present.
It will be clear that it is possible to combine all of the above-mentioned
methods to obtain an extremely complex system of orthogonal code
generators.
A special application of orthogonal code generators in a system of
frequency hopping radios will be discussed below.
Hopping nets of radios are often confronted with cosite problems. This
implies that (hopping) nets of radios jam each other, if they operate
geographically close together. This jamming can also occur in orthogonally
hopping nets of radios, because the frequencies used by the radios,
although different, are close together causing garbling. To prevent cosite
problems in frequency hopping radio nets, care should be taken that the
frequencies are not only different but also that they are separated by a
certain relative or absolute frequency distance. Radios which are provided
with a code generator according to the invention can be made quite
insensitive to cosite problems due to the structure of the system of code
generator with accompanying key and addition number distribution.
FIG. 10 shows a radio 8 which is provided with a code generator 9 according
to the invention. The codes generated by code generator 9 are supplied to
a memory 11 via line 10. In this case, the code functions as an addressing
system and selects a memory position in memory 11. The contents of a
memory position consist of a binary number indicating a frequency value.
If there are Q orthogonally hopping (nets of) radios, the radios must be
capable of generating at least Q different frequencies. This implies that
a code generator usually generates Q different codes and that a memory 11,
supplied with Q different codes, generates Q different frequency values.
Two different codes are therefore accompanied by two different frequency
values. In the radio, the frequency values generated by memory 11 are
supplied to a unit 13 via line 12 for further processing.
Unit 13 comprises known means for the generation, modulation, reception and
demodulation of a transmitting signal.
To prevent cosite problems, memory 11 is filled with Q different frequency
values in a special way. For this purpose, use is made of the structure of
the system of code generators described above. All radios belonging to one
net are provided with a code generator having the same key and addition
numbers. All radios are provided with a memory 11 having identical
contents.
A first possibility according to the invention to fill memory 11 is
described below.
We assume that the frequencies to be used have to be within an interval
with f.sub.l as the lowest frequency and f.sub.h as the highest frequency.
The bandwidth B=f.sub.h -f.sub.l. The memory positions are filled with Q
frequency values which linearly increase in steps of .DELTA.f=B/Q. This
implies that clusters with addition numbers A.sub.1.1, A.sub.1.3,
A.sub.1.5, . . . always have a minimum frequency distance of
.DELTA.B=B/N.sub.1. This is also true for clusters with addition numbers
A.sub.1.2, A.sub.1.4, A.sub.1.6, . . . . A proper selection of B and
N.sub.1 can therefore prevent cosite problems among radios of such
clusters. However, radios within a cluster and radios of neighbouring
clusters can still be confronted with cosite problems. FIGS. 1, 2 and 11
illustrate an example.
We assume a net of Q=64 radios provided with a code generator as shown in
FIG. 1. The key and addition number distribution is as shown in FIG. 2. It
appears from FIG. 2 that N.sub.1 =4. the 16 radios with addition number
A.sub.1.1 form a cluster G.sub.1. Radios with addition number A.sub.1.g
form a cluster G.sub.g (g=1,2,3 or 4). We assum that f.sub.h =80 MHz and
f.sub.l =40 MHz. The bandwidth .DELTA.B of a cluster of radios is
therefore always 10 MHz. FIG. 11 clearly illustrates the situation. At
t.sub.=t.sub.0, all radios having addition number A.sub.1.1 (cluster
G.sub.1) have a frequency which is higher than 40 MHz and lower than 50
MHz (condition .delta.=1 of FIG. 11). As a result of the linear
arrangement of memory 11, all radios having addition number A.sub.1.2
(cluster G.sub.2) have a frequency which is higher than 50 MHz and lower
than 60 MHz. Radios from clusters G.sub.3 and G.sub.4 have frequencies
between 60 and 70 MHz and 70 and 80 MHz respectively. There is therefore
always a minimum frequency distance of 10 MHz between radios of clusters
G.sub.1 and G.sub.3. This is also true for the radios belonging to
clusters G.sub.2 and G.sub.4. Assume that the radios generate a new
frequency each .DELTA.t sec (hop frequency=.DELTA.t.sup.-1), usually at
t=t.sub.0 +.DELTA.t condition .delta. will have changed: subcode
generators 4.1 generate a different subcode, causing clusters G.sub.1
-G.sub.4 to be distributed differently over frequency band B (e.g.
condition .delta.=2 of FIG. 11). FIG. 11 indicates that four distributions
(conditions .delta.) are possible, corresponding with the range of subcode
generators 4.1. FIG. 11 clearly shows that the 12 nets of radios of
cluster G.sub.1 always have a minimum frequency distance of 10 MHz away
from the 12 nets of radios of cluster G.sub.3. This is also true for the
12 nets of radios belonging to cluster G.sub.2 and cluster G.sub.4
respectively. The maximum number of clusters of radios C that can operate
without cosite problems is therefore 2 (G.sub.1, G.sub.3 and G.sub.2,
G.sub.4), where we assume that a frequency distance of 10 MHz is
sufficient for a cosite situation without jamming. Within a cluster of 12
nets of radios, the frequency distance is lower than 10 MHz, so jamming
cannot be prevented.
It is also possible that the bandwidth .DELTA.B=B/N.sub.1 is not sufficient
to prevent jamming between radios of cluster G.sub.1 and radios of cluster
G.sub.3. In that case, for example only radios of cluster G.sub.1 and
G.sub.4 can operate in a cosite situation in condition .delta.=1. In
condition .delta.=2 this will be G.sub.2 and G.sub.1. The maximum number
of clusters of radios capable of operating without jamming in a cosite
situation is therefore two (C=2). The number of radios capable of
operating without jamming in a cosite situation has however decreased by a
factor two. If the minimum required bandwidth .DELTA.b=B/7, it can be
proved that C=4 if N.sub.1 =8. Under the same conditions, i.e. the minimum
bandwidth .DELTA.b for a jamming-free cosite situation is B/7, C=8 if
N.sub.1 =56 (.DELTA.B=B/56). This implies that when the number of clusters
of radios increases, the number of clusters of radios capable of operating
without jamming in a cosite situation increases. However, the C/N.sub.1
ratio decreases when N.sub.1 increases: a relatively lower amount of
clusters of radios can operate without jamming in a cosite situation when
the number of clusters of radios increases. For this reason a sufficiently
high value should be selected for B. If B is sufficiently high, it will be
possible to select .DELTA.b=.DELTA.B=B/N.sub.1 as described above. This
enables clusters G.sub.i (i=1, 3, 5, . . . ) to operate without jamming in
a cosite situation and clusters of radios G.sub.i (i=2,4,6, . . . ) to
operate without jamming in a cosite situation as well. In this case it
will not be necessary that, within a cluster of radios, the frequencies
are linearly arranged in memory 11. Only a frequency relation between the
clusters of radios is required. A memory with contents in which a cluster
does not need linear arrangement, while among clusters a linear
arrangement exists, can be described as follows: the N.sub.1
.times.N.sub.2 .times. . . . .times.N.sub.n =Q memory positions comprise
respectively the frequency values
##EQU6##
According to a second method to minimise cosite problems, a minimum
relative frequency distance (in terms of percentages) is realised between
the frequencies to be used. Within the frequency interval B
where f.sub.l <B<f.sub.h, a number of frequency sets j is selected. A
frequency set j consists of k frequencies f.sub.i.sup.j (i=1, 2, . . . ,
k). The two neighbouring frequencies f.sub.i.sup.j and f.sub.i+1.sup.j
must be at least .DELTA..times.100% apart in frequency distance:
f.sub.i+1.sup.j -f.sub.i.sup.j .gtoreq..DELTA..multidot.f.sub.i+1.sup.j
(i=1,2, . . . ,k) (1)
From formula (1) it follows that
f.sub.k.sup.j .gtoreq.f.sub.i.sup.j (1-.DELTA.).sup.k (2)
From formula (2) it follows, with f.sub.h =f.sub.k and f.sub.l =f.sub.1 :
##EQU7##
The value of k is therefore always selected in such a way that it can be
resolved into at least two factors k.sub.1 and k.sub.2. A requirement for
k.sub.1 and k.sub.2 is therefore:
##EQU8##
where k.sub.1 and k.sub.2 must be integers and k.sub.1 .ltoreq.k.sub.2.
The value N.sub.1 of the code generators is selected to be equal to k.sub.1
(the smallest factor), while the factor N.sub.n is selected to be equal to
k.sub.2. In a tree diagram as shown in FIG. 2, this would mean that, at
the first level, k.sub.1 clusters are present while at the highest level
k.sub.2 subclusters per subcluster are present. Before we proceed to
general statements, an example is given of how the frequencies
f.sub.i.sup.j are stored in memory 11.
Assume that f.sub.h =87,5 MHz, f.sub.l =30 MHz and .DELTA.=0,1. It follows
from formula (4) that k.sub.1 k.sub.2 =10 can be selected, so that k.sub.1
=2 and k.sub.2 =5 will be a solution. As a result N.sub.1 =2 and N.sub.n
=5. The other parameters, i.e. N.sub.2, . . . , N.sub.n-1 can still be
selected freely. So are all the addition numbers and keys. Assume that n=3
and N.sub.2 =4. This will create a system as shown in FIG. 12.
For the number of frequencies Q to be generated applies: Q=N.sub.1
.times.N.sub.2 .times.N.sub.3 =40. Within the frequency interval in
question, a set j of frequencies f.sub.i.sup.j exists, of which two
subsequent frequencies f.sub.i.sup.j and f.sub.i+1.sup.j have a relative
distance of 10% from a maximum of k=10 frequencies f.sub.i.sup.j, i.e.
1.ltoreq.i.ltoreq.10. Q/k=4 of these sets are selected, i.e.
1.ltoreq.j.ltoreq.4:
a first set: f.sub.1.sup.1, f.sub.2.sup.1, . . . , f.sub.10.sup.1 ;
a second set: f.sub.1.sup.2, f.sub.2.sup.2, . . . , f.sub.10.sup.2 ;
a third set: f.sub.1.sup.3, f.sub.2.sup.3, . . . , f.sub.10.sup.3 ;
a fourth set: f.sub.1.sup.4, f.sub.2.sup.4, . . . , f.sub.10.sup.4.
In the above .vertline.f.sub.i.sup.j -f.sub.i+1.sup.j .vertline..gtoreq.0,1
f.sub.i+1.sup.j for 1.ltoreq.i.ltoreq.9 and 1.ltoreq.j.ltoreq.4. It also
applies that f.sub.i.sup.j .noteq.f.sub.i'.sup.j' if i.noteq.i or
j.noteq.j.
The frequencies of a first set can however be very close to the frequencies
of a second set, i.e. it is possible that f.sub.2.sup.1
.apprxeq.f.sub.2.sup.2. The memory positions of the memory have the
following contents:
f.sub.1.sup.1, f.sub.2.sup.1 . . . f.sub.5.sup.1, f.sub.1.sub.2 . . .
f.sub.5.sup.2, f.sub.1.sup.3 . . . f.sub.5.sup.3, f.sub.1.sup.4 . . .
f.sub.5.sup.4, f.sub.6.sup.1 . . . f.sub.10.sup.1, R.sub.1, R.sub.2 . . .
R.sub.5, R.sub.6 | | |