Method For Processing A Stream Of Data In A Receiver Device

20220045886 · 2022-02-10

    Inventors

    Cpc classification

    International classification

    Abstract

    A method for processing, in a receiver device, a signal representative of a stream of data coded from a series of information units through coding using a predefined group of symbols to code each information unit of the series, comprises: —a step of receiving (E0) said signal, said signal having been sent by a sender device via a transmission channel, said received signal containing a sequence of symbols of predefined length, and —a step of combined equalization and decoding (E3) applied to said received signal (Ireceived), using a mesh (100) representing the transmission channel (3) and the coding that is used, the mesh (100) containing a number of nodes (101) representing states of the transmission channel (104), said states of the transmission channel (104) taking into account said coding that is used.

    Claims

    1. A method for processing, in a receiver device, a signal (I.sub.received) representative of an encoded data stream based on a stream of information units (info) through coding using a predefined group of symbols for coding each information unit of the stream (info), the method containing: a step of receiving said signal (I.sub.received), said signal (I.sub.received) having been transmitted by a transmitter device via a transmission channel, said received signal containing a sequence of symbols of predefined length (L), and a combined equalization and decoding step applied to said received signal (I.sub.received), using a trellis representing the transmission channel and the coding used, the trellis containing a number of nodes representing states of the transmission channel, said states of the transmission channel taking into account said coding used.

    2. The method according to claim 1, characterized in that the number of nodes is equal to the number of possible states of the transmission channel as a function of the coding used.

    3. The method according to claim 1, characterized in that the number of nodes of the trellis is equal to N.sub.st=M└L/2┘, with the operator └.┘ representing the lower rounding, M the number of symbols used, and L the predefined length of the sequence of symbols.

    4. The method according to claim 1, characterized in that the stream of information units (info) is coded in a BiPhase coding in order to form the encoded data stream (I.sub.transmitted).

    5. The method according to claim 1, characterized in that the equalization step implements the Viterbi algorithm.

    6. The method according to claim 1, characterized in that the equalization step contains a step of associating an initial metric corresponding to each node of the trellis with an instant in time, the metrics representing the likelihood of the received predefined groups of symbols with respect to the possible predefined groups of symbols according to the coding used.

    7. The method according to claim 1, characterized in that it also contains an estimation step of the transmission channel implemented beforehand in said equalization step.

    8. A receiver device containing: receiving means of a signal (I.sub.received) having been transmitted by a transmitter device via a transmission channel, the signal (I.sub.received) being representative of an encoded data stream based on a stream of information units (info) through coding using a predefined group of symbols for coding each information unit of the stream (info), said received signal (I.sub.received) containing a sequence of symbols of predefined length (L), and equalization means for equalizing and decoding, in a combined manner, the signal received (I.sub.received) by said receiving means, by using a trellis representing the transmission channel and the coding used, the trellis containing a number of nodes representing states of the transmission channel, said states of the transmission channel taking into account said coding used.

    9. An electronic detonator containing the receiver device according to claim 8.

    10. A system for firing at least one electronic detonator containing the electronic detonator according to claim 9 and a control unit linked to said at least one electronic detonator.

    Description

    [0056] In the attached drawings, given by way of non-limitative example:

    [0057] FIG. 1 is a diagram representing a transmitter and a receiver implementing the processing method according to the invention;

    [0058] FIG. 2 illustrates a diagram representing steps of the processing method according to an embodiment;

    [0059] FIG. 3 represents an example of a signal representing an encoded data stream in BiPhase coding; and

    [0060] FIG. 4 represents an example trellis used during the implementation of the processing method according to an embodiment.

    [0061] FIG. 1 illustrates an electronic detonator 1 and a control unit or control console 2. The electronic detonator 1 is a transmitter device transmitting messages or commands to the control console 2 which constitutes a receiver device.

    [0062] The processing method according to the invention is implemented in the receiver device 2. Steps of the method are illustrated in FIG. 2.

    [0063] The processing method according to the invention will be described with reference to a firing system containing at least one electronic detonator 1 and a control console 2. However, the processing method can be implemented by any other receiver device implementing a decoding using a group of symbols, such as BiPhase coding or Manchester type coding.

    [0064] It will be noted that in the following description, the coding used to form the encoded data stream is a BiPhase or Manchester coding. Thus, the group of symbols encoding an information bit contains two symbols.

    [0065] However, other codings using predefined groups of symbols for encoding each information unit can be used.

    [0066] The electronic detonator 1 and the control console 2 (or transmitter device and receiver device respectively) communicate with one another via a transmission channel or communication channel 3.

    [0067] The communication channel 3 can be of wired type, the communications being governed for example by Ethernet standards such as 10Base-T, 10Base-5 or 10Base-2. The communication channel 3 can also be of wireless type, the transmitter device and the receiver device being for example linked by a short-distance radio link.

    [0068] In an embodiment, the electronic detonator 1 or transmitter device contains a cyclic redundancy check (CRC) module 10. This CRC module 10 adds (for example by concatenation) to the stream of information units or bitstream to be sent to the receiver device 2, control codes or CRC codes making it possible to verify, on reception, the integrity of the bitstream received in the receiver device 2.

    [0069] In the embodiment illustrated, the electronic detonator 1 also contains a synchronization module 11, a coding module 12 and a modulation module 13.

    [0070] The bitstream to be transmitted is processed sequentially by the aforementioned modules to form a signal I.sub.transmitted representing an encoded data stream in a coding such as the Manchester type coding.

    [0071] The synchronization module 11 adds a synchronization preamble to the bitstream to be transmitted in order to be able to correctly reconstruct the bitstream in the receiver device 2.

    [0072] Then, the coding module 12 codes the bitstream leaving the synchronization module 11 in a given coding. In the case of the electronic detonators, a widely used coding is Manchester coding. This coding, well known to a person skilled in the art, will be described with reference to FIG. 3.

    [0073] Finally, once the data stream has been coded by the coding module 12, it is modulated by the modulation module 13. In this embodiment, this module implements a load modulation. This type of modulation varies for example a resistive load in an electronic circuit so as to generate, or not, a current on the line linking the electronic detonator and the control console so as to generate the signal I.sub.transmitted to be transmitted.

    [0074] On the receiver side, the control console 2 contains means for receiving signals (not shown), a sampling module 20 and a synchronization module 21 that are known to a person skilled in the art. FIG. 2 illustrates a diagram representing steps of the processing method implemented by the control console 2.

    [0075] Once reception E0 of the signal is implemented by the receiving means, the received signal I.sub.received is sampled in a sampling step E1 and synchronized in a synchronization step E2. Once sampled and synchronized, the received signal I.sub.received is sent to an equalization module 22. The equalization module 22 implements, in a combined manner, in an equalization step E3, the equalization and decoding of the received signal I.sub.received in order to obtain the bitstream in the decoded data stream without interference between symbols.

    [0076] In the embodiment shown, once the encoded data stream is obtained, a cyclical redundancy control module 23 verifies the code-word in order to ensure the integrity of the received data.

    [0077] In an embodiment, the receiver device 2 also contains estimation means 24 of the communication channel 3 configured to obtain the impulse response of the communication channel 3 through which the signal is transmitted. This impulse response is used during the equalization of the received signal. It will be noted that the estimation E10 of the channel is implemented prior to equalizing E3.

    [0078] As indicated above, a type of coding used by the coding module 12 in the transmitter device 1 is Manchester coding.

    [0079] This type of coding is widely used as it is simple to implement and signals coded in this way are resistant to losses of synchronization and to interference.

    [0080] FIG. 3 illustrates a signal 40 representing an encoded data stream in Manchester coding. FIG. 3 also shows a clock signal 42 allowing synchronization between the transmitter device 1 and the receiver device 2.

    [0081] The Manchester type coding or BiPhase coding is a coding of the synchronous type, i.e. apart from the data to be transmitted via a communication channel 3, the signals generated contain a synchronization clock signal that is necessary for decoding the data on reception.

    [0082] As shown in FIG. 3, le coding module 12 of the transmitter device 1 generates a signal representative of an encoded data stream 40 based on a stream of information units or bitstream 41. The coding of the information units or bits is implemented by a transition of the signal. The coding of a “1” is implemented by a transition of the signal from a high level to a low level, and the coding of a “0” by a transition from a low level to a high level.

    [0083] The coding module 12 in the transmitter device 1 is configured so that when the information bit to be coded is a “1”, the generated signal 40 comprises a high level followed by a low level, i.e. a descending transition is generated. When the information bit to be coded is a “0”, the generated signal 40 comprises a low level followed by a high level, i.e. an ascending transition is generated.

    [0084] On the side of the receiver device 2, the start of the frame to be processed is obtained at the synchronization module 21, based on the encoded data stream received and sent to the equalization module 22 in order to be used for decoding the received encoded data stream. The synchronization module 21 is also configured to estimate the clock rate or frequency used on the transmitter side and to implement a sampling of the signal at the estimated clock rate or frequency.

    [0085] Once the equalization module 22 receives the impulse response from the communication channel 3 originating from the estimation means 24 of the communication channel, and the encoded data stream, sampled and synchronized, it implements the equalization and decoding E3 of the encoded data stream.

    [0086] In an embodiment, the equalization is implemented in the maximum likelihood sense. This type of equalization is known to a person skilled in the art and will not be described here. This type of equalization obtains optimal results in terms of performance.

    [0087] According to an embodiment, the equalization can be implemented according to the Viterbi algorithm, also well known to a person skilled in the art.

    [0088] This algorithm has very good equalization performance but requires the communication channel to be estimated.

    [0089] In an embodiment, the communication channel is modelled by a finite impulse response filter. The impulse response can be rewritten as follows:


    h=[h(0),h(1), . . . , h(L−1)].sup.T.

    [0090] The signal received from the receiver device 2 can be written thus:

    [00001] y ( k ) = .Math. p = 0 L - 1 s ( k - p ) h ( p ) + b ( k )

    [0091] Where y(k) represents the k.sup.th sample of the received signal, s(k) being the k.sup.th symbol transmitted and b(k) the zero-mean additive white Gaussian noise with variance σ.sup.2.

    [0092] As the impulse response of the channel is of length L, the signal has a memory of depth L. Thus, y(k) depends on the symbols s(k−L+1), s(k−L+2), . . . , s(k) and the following sample, y(k+1), depends on the symbols s(k−L+2), s(k−L+3), . . . , s(k+1). These two sequences of symbols contain L−1 common symbols, and there are therefore only two possibilities for passing from the first sequence to the second (the modulated symbols only being capable of adopting two values, namely +1 or −1).

    [0093] According to other embodiments, other equalization algorithms can be used without requiring the communication channel to be estimated. However, the equalization obtained by this type of algorithm presents results that are broadly inferior with respect to those obtained when the Viterbi algorithm is used.

    [0094] As is known to a person skilled in the art, the Viterbi algorithm uses a trellis to implement the equalization of the data stream.

    [0095] FIG. 4 represents an example trellis 100 capable of being used by the equalization module 22 for implementing the equalization step of the processing method according to an embodiment of the present invention.

    [0096] The equalization module 22 thus constructs a trellis 100 representing the communication channel 3. The trellis represents the state of the channel representative of the encoded data stream at different moments k.

    [0097] Thus, the trellis 100 contains a set of nodes 101, each node 101 representing a state of the channel at a given moment. For example, a first node 1011 represents a first state, a second node 1012 represents a second state, a third node 1013 represents a third state and a fourth node 1014 represents a fourth state.

    [0098] In the embodiment described, the communication channel 3 is considered to have a length L of 4. Thus each sample of the signal received is in reality a combination of 4 consecutive samples of the transmitted signal. The purpose of the equalization is then to recombine this signal so as to distinguish each sample of the transmitted signal.

    [0099] In a case in which, unlike the invention, the decoding is implemented once the signal has been equalized, the number of states of the channel represented by a trellis would be M.sup.L. In the case of Manchester coding, M is equal to 2, as 2 levels are used for the coding; consequently the number of states is equal to 16.

    [0100] In the invention, the trellis incorporates Manchester coding in order to be able to implement the equalization and the decoding jointly.

    [0101] Thus, only possible groups or pairs of symbols 104 in Manchester coding are represented in the trellis 100.

    [0102] In Manchester coding, the symbols are always transmitted in pairs and are in opposite phase. Thus, when a logic “0” is transmitted, the symbols [+1 −1] are transmitted, and for a “1” the symbols [−1 +1] are transmitted. Thus for a state of the channel {01} the symbols [+1 −1 −1 +1] are transmitted.

    [0103] As an information unit is encoded by two symbols, the number of states of the channel in the trellis is M.sup.└L/2┘, i.e. 4 with L=4.

    [0104] The possible states 104 of the channel correspond to the following sequences [s(k−3) s(k−2) s(k−1) s(k)]: [−1 +1 −1 +1], [−1 +1 +1 −1], [+1 −1 −1 +1] and [+1 −1 +1 −1], for L=4.

    [0105] It will be noted that for one and the same length of the communication channel 3, the number of states of the channel and therefore the number of nodes of the trellis is reduced. Accordingly, the complexity of implementation of the algorithm used for equalization, such as the Viterbi algorithm, is reduced.

    [0106] Each node 101 of the trellis has two entry paths 102a and two associated exit paths 103a. For the sake of clarity, in FIG. 4 the entry paths 102a and the exit paths 103a have been referenced for a single node 101.

    [0107] According to the Viterbi algorithm, the accumulated metric at each node 101 of the trellis is determined.

    [0108] In the invention, the accumulated metric for an information bit k can be determined according to the following formula:

    [00002] D ( k ) = .Math. k = 1 K { ( y ( 2 k - 1 ) - z ( 2 k - 1 ) ) 2 + ( y ( 2 k - 2 ) - z ( 2 k - 2 ) ) 2 }

    [0109] It will be noted that z(k) is the signal filtered by the channel at instant k:


    z(k)=Σ.sub.p=0.sup.L−1s(k−p)h(p).

    [0110] The metric of a state (node) corresponding to the information bit k depends on the accumulated metric of the state of the channel at the preceding node, as well as the corresponding observation metric. This can be expressed in the following formula:


    D(k)=D(k−1)+{(y(2k−1)−z(2k−1)).sup.2+(y(2k−2)−z(2k−2)).sup.2}

    [0111] On the assumption that an additive white Gaussian noise is present, the joint probability density of the observation sequence y.sub.N[y(0),y(1), . . . , y(N−1)].sup.T if the sequence z.sub.N=[z(0),z(1), . . . , z(N−1)].sup.T was transmitted over a window of N samples in size is

    [00003] p ( y N .Math. z N ) = .Math. n = 1 N 1 2 π σ 2 exp { - ( y ( n ) - z ( n ) ) 2 2 σ 2 }

    [0112] The likelihood can be rewritten in the following manner:

    [00004] p ( y N .Math. z N ) = ( 1 2 π σ 2 ) N exp { - 1 2 σ 2 .Math. n = 1 N ( y ( n ) - z ( n ) ) 2 }

    [0113] According to the Viterbi algorithm, the sequence z is determined, which maximizes the likelihood between two sequences of symbols, i.e. that which minimizes the accumulated metric D(N/2).

    [0114] Thus, according to the Viterbi algorithm, among the entry paths 102a on a node 101, the path for which the accumulated metric D(k) is the smallest is the path selected. These operations are repeated over time for each state of the channel or node 101.

    [0115] In an embodiment, an initial metric is associated with each node of the trellis at an instant in time. In an embodiment, the instant in time can be L−2, L being the length of the communication channel 3. If the length of the channel L is 4, the instant of time is K=2.

    [0116] In fact, a particular initialization of the Viterbi algorithm is preferably considered. At instant “0”, the channel is in the initial state [−1−1 −1−1] (if L=4), as the channel has not yet been supplied with the Manchester modulated signal. Now, this state is no longer active subsequently, and it is therefore necessary to have a particular processing on initialization so as to pass from the initial state to the N.sub.st=M.sup.└L/2┘ states actually operated subsequently.

    [0117] The association of the initial metric at the nodes of the trellis with an instant in time makes it possible to implement the equalization step, starting from possible states of the channel according to the coding used.

    [0118] In fact, when for example the coding used is BiPhase coding and the length of the communication channel is four, the initial state of the communication channel, i.e. before the encoded signal has been transmitted, is defined by the sequence of symbols [−1 −1 −1 −1]. This state does not contain possible predefined groups of symbols according to BiPhase coding.

    [0119] Thus, initial metrics are associated with each possible state of the channel according to the coding used ([−1 +1 −1 +1], [−1 +1 +1 −1], [+1 −1 −1 +1] and [+1 −1 +1 −1]), for example L=4 and M=2, the symbol values being +1 or −1.

    [0120] In the case of a channel length L=4, the initialization of the communication channel 3 can be implemented according to the following formulas:

    [00005] D ( 2 , 0 ) = { y ( 0 ) - [ - h ( 4 ) - h ( 3 ) - h ( 2 ) - h ( 1 ) - h ( 0 ) ] } 2 + { y ( 1 ) - [ - h ( 4 ) - h ( 3 ) - h ( 2 ) - h ( 1 ) + h ( 0 ) ] } 2 + { y ( 2 ) - [ - h ( 4 ) - h ( 3 ) - h ( 2 ) + h ( 1 ) - h ( 0 ) ] } 2 + { y ( 3 ) - [ - h ( 4 ) - h ( 3 ) + h ( 2 ) - h ( 1 ) + h ( 0 ) ] } 2 D ( 2 , 1 ) = { y ( 0 ) - [ - h ( 4 ) - h ( 3 ) - h ( 2 ) - h ( 1 ) - h ( 0 ) ] } 2 + { y ( 1 ) - [ - h ( 4 ) - h ( 3 ) - h ( 2 ) - h ( 1 ) + h ( 0 ) ] } 2 + { y ( 2 ) - [ - h ( 4 ) - h ( 3 ) - h ( 2 ) + h ( 1 ) + h ( 0 ) ] } 2 + { y ( 3 ) - [ - h ( 4 ) - h ( 3 ) + h ( 2 ) + h ( 1 ) - h ( 0 ) ] } 2 D ( 2 , 2 ) = { y ( 0 ) - [ - h ( 4 ) - h ( 3 ) - h ( 2 ) - h ( 1 ) + h ( 0 ) ] } 2 + { y ( 1 ) - [ - h ( 4 ) - h ( 3 ) - h ( 2 ) + h ( 1 ) - h ( 0 ) ] } 2 + { y ( 2 ) - [ - h ( 4 ) - h ( 3 ) + h ( 2 ) - h ( 1 ) - h ( 0 ) ] } 2 + { y ( 3 ) - [ - h ( 4 ) + h ( 3 ) - h ( 2 ) - h ( 1 ) + h ( 0 ) ] } 2 D ( 2 , 3 ) = { y ( 0 ) - [ - h ( 4 ) - h ( 3 ) - h ( 2 ) - h ( 1 ) + h ( 0 ) ] } 2 + { y ( 1 ) - [ - h ( 4 ) - h ( 3 ) - h ( 2 ) + h ( 1 ) - h ( 0 ) ] } 2 + { y ( 2 ) - [ - h ( 4 ) - h ( 3 ) + h ( 2 ) - h ( 1 ) + h ( 0 ) ] } 2 + { y ( 3 ) - [ - h ( 4 ) + h ( 3 ) - h ( 2 ) + h ( 1 ) - h ( 0 ) ] } 2

    [0121] Where D(2,0) corresponds to the initial metric at the instant in time k=2 for the node 1010 representing the state ([−1 +1 −1 +1], D(2,1) corresponds to the initial metric at the instant in time k=2 for the node 1011 representing the state [−1 +1 +1 −1], D(2,2) corresponds to the initial metric at the instant in time k=2 for the node 1013 representing the state [+1 −1 −1 +1] and D(2,3) corresponds to the initial metric at the instant in time k=2 for the node 1013 representing the state [+1 −1 +1 −1]).