Interleaver apparatus and method
Abstract
One embodimennt of the invention relates to a method of data processing. In the method, an initial data stream is received. A series of bytes having a total byte length is selected from the initial data stream, the series of bytes having a span in the initial data stream that is greater than the total byte length. At least one redundancy byte is calculated based on the series of bytes. An output data stream is transmitted over a transmission medium (406), where the output data stream includes the initial data stream with the at least one redundancy byte therein, and where consecutive bytes in the output data stream have an order that corresponds to an order of consecutive bytes in the initial data stream. Other devices and methods are also described.
Term
1.6 yearsto projected expiry
Projected expiry 16 May 2028, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
9 claims: 4 independent, 5 dependent
- 1Zastrzeżenia patentowe 1. Urządzenie sieciowe (402; 902) przystosowane do ułatwiania transmisji danych przez nośnik transmisyjny (406), zawierające:układ przeplatania wstępny (424), skonfigurowany do przeplatania wielu jednostek transmisji danych zgodnie z algorytmem przeplatania wstępnego, wytwarzając wynik wyjścia wielobitowego, przy czym układ przeplatania wstępny (424) jest ponadto skonfigurowany do odbierania jednego lub wielu fikcyjnych bajtów związanych z jednym lub wieloma bajtami nadmiarowymi, przy czym fikcyjne bajty są przyłączone do jednostek transmisji danych dla utworzenia zmodyfikowanego strumienia danych, mającego długość związaną z wirtualnym słowem kodowym;koder nadmiarowości (426) skonfigurowany do wytwarzania jednego lub wielu bajtów nadmiarowych na podstawie wyniku wyjścia wielobitowego i łączący jeden lub wiele bajtów nadmiarowych z wynikiem wyjścia wielobitowego przez zastępowanie jednego lub wielu fikcyjnych bajtów dla tworzenia wirtualnego słowa kodowego;oraz układ przeplatania (428) skonfigurowany do przeplatania wirtualnego słowa kodowego zgodnie z algorytmem przeplatania i wyprowadzania przeplatanych danych do transmisji przez nośnik transmisyjny.
- 2Urządzenie sieciowe (402; 902) według zastrz. 1, przy czym układ przeplatania wstępny (424) jest skonfigurowany do przyrostowego opóźniania przychodzących bajtów danych według:gdzie .\(j) oznacza opóźnienie związane z j-tym bajtem, D oznacza głębokość układu przeplatania wstępnego (424) oraz N oznacza długość przychodzących bajtów danych, odpowiadającą długości słowa kodowego.
- 3Urządzenie sieciowe (402;902) według zastrz. 1 albo 2, przy czym koder nadmiarowości (426) jest skonfigurowany do ignorowania fikcyjnych bajtów podczas wytwarzania jednego lub wielu bajtów nadmiarowych.
- 4Urządzenie sieciowe (402; 902) według dowolnego z zastrz. 1 do 3, przy czym układ przeplatania (428) jest skonfigurowany do przeplatania słowa kodowego z innymi słowami kodowymi przez opóźnianie każdego bajtu słowa kodowego według:gdzie .\(j) oznacza opóźnienie związane z j-tym bajtem, D oznacza głębokość układu przeplatania wstępnego (424) oraz N oznacza długość przychodzących bajtów danych, odpowiadającą długości słowa kodowego.
- 5Sposób przetwarzania danych do komunikowania, obejmujący:odbieranie początkowego strumienia danych;-15wybieranie szeregu bajtów, mającego całkowitą długość w bajtach, z początkowego strumienia danych, a szereg bajtów ma rozpiętość w początkowym strumieniu danych, która jest większa niż całkowita długość w bajtach;obliczanie przynajmniej jednego bajtu nadmiarowego na podstawie szeregu bajtów;tworzenie wychodzącego strumienia danych, który zawiera początkowy strumień danych z wstawionym do niego przynajmniej jednym bajtem nadmiarowym, przy czym kolejne bajty w wychodzącym strumieniu danych mają kolejność, która odpowiada kolejności bajtów w początkowym strumieniu danych, przeplatanie wstępne tego szeregu bajtów zgodnie z algorytmem przeplatania wstępnego dla wytwarzania wyniku wyjścia wielobitowego;łączenie przynajmniej jednego bajtu nadmiarowego z wynikiem wyjścia wielobitowego dla utworzenia wirtualnego słowa kodowego;przy czym to formowanie wychodzącego strumienia danych obejmuje przeplatanie słowa kodowego zgodnie z algorytmem przeplatania i wyprowadzania przeplatanych danych dla transmisji przez nośnik transmisyjny, przy czym to przeplatanie wstępne obejmuje ponadto odbieranie jednego lub wielu fikcyjnych bajtów, związanych z przynajmniej jednym bajtem nadmiarowym i przy czym fikcyjne bajty są przyłączane do szeregu bajtów dla utworzenia zmodyfikowanego strumienia danych, mającego długość związaną z wirtualnym słowem kodowym oraz przy czym fikcyjne bajty są zastępowane bajtami nadmiarowymi dla utworzenia wychodzącego strumienia danych.
- 6Sposób według zastrz. 5, przy czym to przeplatanie wstępnie obejmuje przyrostowe opóźnianie przychodzących bajtów danych według:gdzie Δ^) oznacza opóźnienie związane z j-tym bajtem, D oznacza głębokość układu przeplatania wstępnego, a N oznacza długość przychodzących bajtów danych, odpowiadającą długości słowa kodowego.
- 7Sposób według zastrz. 5 albo 6, obejmujący ignorowanie fikcyjnych bajtów podczas wytwarzania jednego lub wielu bajtów nadmiarowych.
- 8Sposób według dowolnego według zastrz. 5 do 7, przy czym to przeplatanie obejmuje przeplatanie słowa kodowego z innymi słowami kodowymi przez opóźnianie każdego bajtu słowa kodowego według:gdzie Δ^) oznacza opóźnienie związane z j-tym bajtem, D oznacza głębokość układu przeplatania wstępnego, a N oznacza długość przychodzących bajtów danych, odpowiadającą długości słowa kodowego. -22sieciowy 40g Protokół wyższej warstwy taki, jak TCP/1P, zapewnia jednostkę DTtl Kontroler opóźnienia 422 710 Układy przeplatania Nośnik transmisyjny 406 Układ rozplatania43Q Dekodernadmiarowości 432 Układ rozplatania końcowy 434 708
- 99Tu DTU2 JTL DTU4-> Interfejs Jeśli potrzeba, fikcyjne bajty są wstawiane pomiędzy jednostki DTU Układ przeplatania wstępny 4 24 Koder nadmiarowośct 426 4-DTLJl-> Przeplatanie wstępne do budowania wirtualnych słów kodowych -704 Zbudowane wirtualne słowa kodowe N fec 712 <14 718 Założenie:R nie jest wystarczające do skorygowania uszkodzonych bajtów Dane po przeplataniu do rekonstruowania pakietów wyższej warstwy |4-M,Interfejs sieciowy 410 FIG. 7
Independent claims9
82 paragraphs, as filed
[0001] The invention relates generally to communication systems, especially communication methods, using a digital subscriber line (DSL).
[0002] Digital Subscriber Line (DSL) technology provides fast data transfer between two modems over regular telephone lines, where digital data transfer speeds from tens of Kbps to tens of Mbps are served over standard telephone lines (e.g., a twisted pair of copper wires) ), still providing the usual old telephone service (Plain Old Telephone Service - POTS). The Asynchronous Digital Subscriber Line (ADSL) and the very fast Digital Subscriber Line (VDSL) have emerged as popular implementations of DSL systems, where ADSL is defined by the standard of the American National Standard Institute (American National Standard Institute) - ANSI) T1. 413 and standards of the International Telecommunication Union (ITU-T) G.992.3, G.992.5, and VDSL is defined by the ANSI T1.424 standard and the ITU-T G.993.1 standard. ADSL, VDSL and other similar DSL systems (collectively referred to as "xDSL") typically provide digital data transfer in the frequency range above the POTS band (e.g., about 300 Hz to 4 kHz), e.g. ADSL G.992.3 operates at frequencies from about 25 kHz to about 1.1 MHz.
[0003] One feature of DSL modems that enables them to provide high data transfer speeds is their ability to transmit symbols through a multi-carrier channel 100 as shown in Fig. 1. The illustrated multi-carrier channel 100 includes a series of frequencies or "carriers" 102 (e.g. , carriers f1, f2, ... fN) that have a frequency spectrum 104 supported by a telephone line. As a result, by dividing the frequency spectrum 104 into multiple carriers, DSL modems can transmit data through each of the carriers (instead of just one carrier), which allows them to "push" more data over the telephone line per unit of time.
[0004] During communication, a number of bits per unit of time may be transmitted on each carrier based on Signal to Noise Ratio SNR 106. Typically, more bits are transmitted in carriers that have a relatively high SNR, while less. bits are transmitted in frequencies that have a relatively low SNR. For example, the carrier f2 has a relatively high SNR compared to the carrier f4. Accordingly, the DSL modems transmit more bits in the carrier f2 (i.e., about 18 bits per unit of time) and fewer bits in the carrier f4 (i.e., about 14 bits per unit of time). Although the coding and decoding of data carried in many frequencies makes this multi-factor communication complex computationally,
[0005] Although the multi-carrier channel provides DSL communication systems with some possibilities of using noise-disturbed regions of the frequency spectrum in particular, other components are usually used to account for more dynamic noise sources, such as impulse noise. Accordingly, to achieve high data rates with high accuracy, refinements can be made to allow communication systems to communicate more effectively.
[0006] US5983388 discloses a known method of interleaving data.
[0007] Fig. 2 shows a DSL communication system 200 that includes first and second DSL modems 202, 204, connected to a standard telephone line 206 (e.g., a twisted pair of copper wires). As mentioned earlier, DSL modems 202, 204 may transmit data via symbols via a multi-carrier communication channel established on telephone line 206. For data exchange, modems 202, 204 include network interfaces 208, 210, respectively, which connect to a higher-level protocol (e.g. , TCP / IP). A brief description of the data exchange with reference to Fig. 2 will now be given and a more detailed discussion will follow with reference to Fig. 3.
[0008] Referring now to Fig. 2, for transmitting data, the transmission network interface 208 receives a payload and sends it for evaluation by the Forward Error Correction (FEC) 212, where the FEC encoder attaches redundant bytes to the payload to create codeword. Then the interleaver 214 interleaves successive codewords to create a stream of interleaved data. The transmitter 216 may then modulate the data stream interleaved by the line 206 by using lattice coding, reverse Fourier transforms, and the like. Noise 218, such as a pulse noise interference, can affect the modulated stream of interleaved data in line 206, potentially destroying the data.
[0009] For receiving the transceiver 220 in the receiving modem 204 demodulates the modulated stream of interleaved data by using fast Fourier transforms, lattice decoding etc. The transceiver 220 then transmits the demodulated stream of interleaved data to the de-interleaver 222. The de-interleaver 222 then splits bytes of interleaved code words, after which the FEC decoder 224 uses redundant bytes to attempt to correct any data errors that occurred in line 206. Finally, the corrected data is sent to the receiving network interface 210, where they can be used as intended.
In most cases, the FEC 212 encoder and the interleaver 214 work in conjunction with the de-interleaver 222 and the FEC 224 decoder to reliably correct any corrupted bytes in the payload. However, under certain circumstances, a combination of interleaving and byte bytes may be insufficient to correct the corrupted bytes. For example, Fig. 3 shows a scenario in which four data transmission units (DTUs) are transmitted from a network interface 208, three of which have been corrupted in a network interface 210. These DTUs have been damaged due to a pulse noise event 218. which
Duration exceeded the minimum protection time against impulse noise (Min
Impulse Noise Protection - INPmin) system. Thanks to the interleaving, these damaged data bytes are spread in many DTU units in the network interface 210.
[0011] More specifically, in the example of Fig. 3, it can be seen that the interface of the transmission network 208 provides several DTUs (DTU0, DTU1, DTU2, DTU3), where each DTU comprises three bytes (B) of data payload. The FEC 210 then calculates one redundant byte (R) for each DTU unit and attaches the redundant byte to this DTU unit to form a codeword with the size of the codeword (N) 4 bytes. For example, the code word N1 includes bytes B00, B01 and B02, units DTU0, which are calculated from the bytes of the payload of the DTU0 unit. The code word N1 is then propagated in time by means of the interleaver 214, whereby the transceiver 216 transmits the interleaved code words via line 206. In this example, for simplicity, the symbols are included in the frames yes,
[0012] A noise interference interference 218 occurs on line 206, which is shown as crossed-out bytes. As can be seen, interference with impulsive noise 218 damages all data in one symbol or in subsequent symbols. Thus, in the example of Fig. 3, the interference with the impulse noise 218 damages one codeword which contains three bytes of charge (B09, B07, B05) and one excess byte (R1).
[0013] In the receiving modem, transceiver 220 demodulates data from line 206 and de-interleaver 222 deinterleaves the received data, obtaining code words (N1 ', N2', N3 ', N4'). Next, the FEC decoder 224 calculates the excess bytes based on the received byte of the payload, which may be equal to the transmitted bytes of the payload or not because of the noise in the line 218. If the redundant bytes calculated by the FEC decoder do not equal the received redundant bytes, the FEC decoder 224 may use the overhead bytes in a given keyword to attempt to correct the corrupted bytes. Thus, the R1 byte would normally be used to correct any errors that occur in the B00, B01, and B02 bytes. However, as you can see clearly, if R is insufficient to correct the corrupted bytes,
[0014] If the redundant bytes can not correct errors in the data payload, usually the higher layer protocols (e.g., TCP / IP) must retransmit each failed DTU unit. This flood of retransmission requests may, in some cases, overload the server's retransmission capabilities and cause uncorrected errors in the network.
[0015] A simplified summary is provided below to provide a basic understanding of one or more aspects of the invention. This summary is not a comprehensive review of the invention and is not intended to identify critical elements of the invention, nor to determine their scope. The main purpose of the summary is to present certain concepts of the invention in a simplified form as a prelude to a more detailed description which is presented below.
[0016] In an embodiment, a network device is shown as defined in Annex 1. In another embodiment, a method is provided as defined in Annex 6. Depending on the claims, further embodiments are defined.
[0017] One embodiment of the invention relates to a method of data processing. In the method, the initial data stream is received. A series of bytes having an overall length in bytes is selected from the initial data stream, a series of bytes with a span in the initial data stream, which is greater than the total length in bytes. At least one redundant byte is calculated based on a series of bytes. The output data stream is transmitted over a transmission medium, the data stream output comprising an initial data stream with at least one redundant byte, and wherein the successive bytes in the output data stream have a sequence that corresponds to the sequence of consecutive bytes in the initial data stream. Other devices and methods are also described.
[0018] The following description and attached drawing give details of some exemplary features and embodiments of the invention. They show only a few different applications to the principles of the invention.
Fig. 1 is a schematic diagram illustrating a DSL communication system in which modems transmit data via a multi-carrier channel;
Fig. 2 is a schematic diagram illustrating a DSL communication system with a first and a second DSL modem that communicate via a twisted pair of copper wires;
Fig. 3 is a graph further illustrating how a disturbance with a noise impulse can cause corrupted data bytes to be propagated by multiple data transmission units in a convolutional interleaving system;
Fig. 4 is a schematic diagram illustrating another embodiment of a communication system with a first and a second network device connected to a transmission medium;
Fig. 5 is a schematic diagram illustrating an embodiment of a network transmission device with an interleaving redundancy encoder, which includes a pre-interleaver, a redundancy encoder and an interleaver;
Fig. 6 is a schematic diagram illustrating an embodiment of a network receiving device with a de-interleaver, a redundancy coder and a final de-interleaving system according to one embodiment of the invention;
Fig. 7 is a graph illustrating how a pre-interleaver in combination with a post-interleaving circuitry can prevent a spreading interference by pulse noise by multiple data transmission units according to one embodiment of the invention;
Fig. 8 is another diagram showing how the pre-interleaving in combination with the final de-interleaving circuitry can prevent the spread of the noise by pulse noise by multiple data transmission units according to one embodiment of the invention;
-5Fig. 9 is a schematic diagram illustrating a communication system with first and second network devices connected to a transmission medium according to the invention;
Figs. 10A-10F are schematic diagrams showing the functionality of one embodiment of an interleaver redundancy encoder;
Fig. 11 is a graph illustrating how an interleaving redundancy coder in conjunction with a deinterleaver decoder can prevent the spreading of noise by pulse noise by multiple data transmission units according to one embodiment of the invention;
Fig. 12 is an embodiment in which a data payload is transmitted for transmitting to a transmission carrier with an effectively zero delay; and Fig. 13 is another embodiment in which the payload is transmitted for transmission to a transmission carrier with effectively zero delay.
[0019] One or more embodiments of the present invention will now be described with reference to the accompanying drawing in which the same reference numerals are used for the same elements. Although aspects may be discussed below in the context of a DSL communication system, the invention applies to any type of communication system in which interleaving can be used.
[0020] Understanding the above problems or limitations associated with certain interleaver systems and methods, the inventors have developed interleaver systems and methods that together with the redundancy coding limit the number of DTUs damaged by the network. Fig. 4 shows one embodiment of such a communication system 400 that includes first and second network devices 402, 404, respectively, coupled to transmission medium 406. In one embodiment, network devices 402, 404 may include DSL modems that communicate via a multi-carrier channel supported by a standard telephone line. However, in other embodiments, the network devices 402, 404 may include other network devices, such as cell phones, pagers, laptops, etc.,
Similarly to the previously discussed DSL modems 202, 204, network devices 402, 404 may include network interfaces 408, 410, respectively, which may connect to a higher-level protocol. Network devices 402, 404 may also include transceiver 412, 414, respectively, which are configured to transmit and / or receive information over the transmission medium 406.
[0022] However, in contrast to the previously described DSL modems, the network devices 402, 404 also include the interleaving redundancy coder 416 and the deinterleaver redundancy decoder 418. It is worth noting that the interleaving redundancy coder 416 is configured to receive the initial data stream of byte payloads from the transmission network interface 408 and facilitating the transmission of the output data stream through the transmission medium 406, the outgoing data stream having the same or a similar sequence as the initial data stream. In this state, if the noise 420 damages the next
The symbols in the transmission carrier 406, however, will be limited to a limited number of DTUs and will not be spread to multiple DTUs. In the embodiment of Fig. 4, the interleaving redundancy coder 416 includes an optional delay controller 422, pre-interleaver 424, redundancy encoder 426 and interleaver 428; while the de-interleaving redundancy decoder 418 includes de-interleaver 430, redundancy decoder 432 and final de-interleaver 434.
[0023] The delay controller 422, which could be a time counting element - a timer element, switch, memory buffer or some other type of controller, could receive the initial data stream from the network interface 408 and enter delays (e.g., fictitious bytes) to create the modified stream data if needed. In some embodiments, the delay controller 422 could be included in a higher-level protocol that provides an initial data stream to the network interface 408.
[0024] Fig. 5 shows a more detailed view of an interleaver redundancy 416 that includes pre-interleaver 424, redundancy encoder 426 and interleaver 428 as mentioned. In one embodiment, the pre-interleaver 424 has a structure configured to perform the interleaving operation in the initial or modified data stream 500. As will be further understood, in various embodiments the initial data stream 500 includes a stream of DTUs, each of which contains K bytes of data payload. . Delays δ such as fictitious bytes are also included in the initial or modified data stream 500. Fictitious bytes delay the byte payload so that the length of the input codeword N is K + R, where R represents the number of redundant bytes,
[0025] In the embodiment of Fig. 5, the pre-interleaver 424 is configured as a type of de-interleaving scheme in which each byte of the payload is delayed, according to the formula:
<img file="PL1995900T3_D0001.tif" />
where D is the depth of the pre-interleaver and N is the length of the codeword.
[0026] The redundancy encoder 426 receives a series of K byte payloads that are now pre-interleaved and calculates the number R of redundant bytes 502 for a series of K bytes of data. The redundant bytes 502 are attached to the payload K bytes of data to create a virtual data stream from the virtual code words, where each virtual code word is K + R. In one embodiment, the redundancy coder 426 uses the Reed-Solomon coding technique to produce redundant bytes 502 however, other redundancy coding techniques may be used and are considered to be within the scope of the present invention.
[0027] The interleaver 428 then receives the virtual data stream and the delays of each byte of the virtual code words according to the algorithm. In one embodiment, each byte is delayed by:
<img file="PL1995900T3_D0002.tif" />
[0028] As shown above, in one embodiment, the virtual code words from the redundancy coder 426 have each delayed byte according to the above pattern, which causes the output data stream transmitted in the transmission medium 406 to contain bytes of the payload in the same order as they had 408 in the web interface.
[0029] After the transmission of the DTUs by the transmission medium 406 by the transmitting network device 402, the receiving network device 404 receives the data stream from the transmission medium and can process data as shown in Fig. 6. As mentioned before, the receiving network device 404 may include a system deinterleaving 430, redundancy decoder 432 and final deinterleaving 434.
[0030] The de-interleaver 430 receives the transmitted output data stream from the transmission carrier 406 and delays each byte, according to one embodiment, according to the formula:
<img file="PL1995900T3_D0003.tif" />
[0031] After de-interleaving, the redundancy decoder 432 receives the de-interleaved data (i.e., delayed, and thus spread among a plurality of virtual code words). The redundancy decoder 432 then performs error correction based on the redundant bytes. In one embodiment, the error correction of the component is performed based on the Reed-Solomon coding, however, the error correction may vary depending on the redundancy coding techniques and all such variants are considered to be within the scope of the present invention.
[0032] Since after the correction of errors R bytes are no longer needed, the excess bytes R can be dropped and the corrected code words of length K are then introduced into the final de-interleaving system 434. The corrected bytes of the data payload could be input to the final de-interleaving system 434 from δ of fictitious data, so that K corrected bytes are delayed because the codeword was K + R bytes. Consequently, each byte of the corrected data is delayed by the size of:
<img file="PL1995900T3_D0004.tif" />
The resulting data stream 600 is output from the final de-interleaver 434, and fictitious bytes can be dropped.
[0033] The essential advantage of the system 400 is that uncorrectable errors are propagated to a limited number of DTU units. This advantageous result may be more clearly understood in connection with Fig. 7 and the discussion below. For simplicity and clarity, symbols are enclosed in a frame corresponding to a single virtual code word, although generally symbols could be enclosed in frames by other methods.
[0034] As shown in Fig. 7, the interface of the transmitting network 408 receives the starting data stream 700, which comprises a series of bytes of charge (B) placed in DTU units.
If desired, the delay controller 422 inserts fictitious bytes δ into the initial data stream 700 to create the modified data stream 702. Next, the preamplifier 462 builds the virtual data stream 704 by distributing bytes from each DTU entity where the previous bytes of the DTU are delayed by a larger value. (Δ4) and subsequent bytes of the DTU unit are delayed by a smaller value (Δ0). Next, the redundancy coder 426 calculates at least one redundant byte based on a series of bytes in the virtual data stream, generating "virtual" code words (N1, N2, N3) with the size N = K + R. Typically, each series of bytes has an overall length in bytes, which is less than the span of a series of bytes in the initial and modified data stream. E.g, The virtual code word N3 contains a series of bytes 706 (i.e., B00, B04, B08) which has a total length of three bytes and a span of 708 about eight bytes in the initial data stream 700. The redundant byte R03 is calculated based on a series of bytes (B00, B04 , B08) and could be associated with these bytes to create a virtual code word N3. The number of bytes (B00, B04, B08) also has a spread of 710 about ten bytes in the modified data stream 702.
[0035] The interleaver 428 then interleaves the virtual code words at 712 so that the outgoing data stream 714 transmitted by the transmission medium 406 has the same sequence as the initial data stream 700, although with the overflow byte inserted therein. that the virtual code words N1, N2, N3 can be "virtual" in the sense that the excess bytes are calculated based on the byte payload, but the virtual code words themselves are not transmitted by the transmission medium 406.
[0036] In the transmission carrier 406, interfering with the impulse noise 716 causes byte failures.
[0037] In the receiving network device, the received data is passed through the de-interleaver 430 in 718 to reconstruct the virtual code words N1 ', N2', N3 '. The redundancy decoder 432 can check the redundant bytes for each virtual code word. If the redundant bytes can not correct all corrupted bytes, then the redundancy decoder 432 does not correct the errors and the corrupted bytes enter the final de-interleaving system 434. The defective bytes are then set in sequence by the final deinterleaving circuit 434 so that each of the corrupted bytes is in the limited one. number of DTU units. Consequently, in the illustrated embodiment, only one of the four DTUs shown will have to be retransmitted.
[0038] Fig. 8 shows another example of how data may be transmitted in a manner that prevents impulse noise interference with spreading to multiple DTUs. More specifically, in this example, many redundant bytes are associated with each virtual code word. For example, the virtual code word N1 contains six bytes of charge (B01, B04, B06, B09, B11, B14) and three excess bytes (R1, R2, R3).
Especially in this embodiment, there may be negative delays 802, wherein the excess bytes are calculated from a series of bytes in the virtual data stream 804 before the unit of delay associated with the modified data stream 806 appears.
[0039] Turning now to Fig. 9, another embodiment of the communication system 900 may be seen, which includes the first and second network devices 902, 904 respectively connected to the transmission medium 406. Similarly to the previous embodiments, the network devices 902, 904 they include network interfaces 408, 410 and transceivers 412, 414, respectively. However, in this embodiment, the interleaving redundancy coder 906 and the deinterleaver decoder 908 may include other optimizations than those shown in the previously discussed examples. For example, in some optimizations, the initial or modified data stream may be passed directly from the network interface 408 to the transceiver 412. Similarly,
[0040] To emphasize some of these functionalities, Figs. 10A-10F show a more detailed embodiment how the initial data stream 1000 could be timely loaded into the interleaving redundant coder 906 and processed to form the virtual data stream 1002. In these figures the interleaving redundancy encoder 906 includes several elements 1004 such as a FIFO queue (queue "first in, first out") and can be organized in a form of a weave interleaver as shown.
[0041] Fig. 10A shows several starting data streams 1000 as a series of units
DTU (DTUo, DTUi, DTU2, DTU3) with time delays δ between successive DTU units. The higher-level protocol could build the initial data stream 1000 with the corresponding time delays δ or the delay controller in the interleaver 906 redundant could insert δ delays. In this example, we assume that for each virtual code word there will be one redundant byte and consequently there is one fictitious byte between consecutive DTU units (eg, the fictitious byte δ0 will be inserted between DTU0 and DTU1), however, in many other cases many bytes can be used redundant for a virtual code word. Although the example of Fig. 10A shows DTU units that have 3 bytes, DTUs may generally include any number of bits or bytes, and different DTUs may have different lengths.
[0042] In Figs. 10B - 10E, the DTUs are sequentially loaded into delay elements 1004 (e.g., FIFO queue) of interleaving redundancy coder 906 to achieve the required virtual data stream 1002. Because each subsequent byte of the initial data stream 1000 is loaded to the beginning of each FIFO queue, the byte simultaneously pops up at the back of this FIFO queue to the virtual data stream 1002. For example, in Fig. 10B, the B00 charge byte is first loaded into the FIFO queue with the longest delay, so
-10first byte "irrelevant" (X) pops up to the virtual data stream. The controller then loads B01 byte into the second FIFO queue, then loads B02 byte into the third FIFO queue. Finally, after each DTU unit has been loaded, the interleaving redundancy coder could calculate the excess byte, such as the Reed-Solomon overflow, for a series of bytes in the virtual data stream. Thus, in Fig. 10B, the redundancy byte R0 is calculated based on three irrelevant bytes, as shown. Fig. 10C shows the DTU1 unit loaded into the FIFO queues and consequently shifting the existing bytes in the FIFO queue. Figures 10D and 10E show similar functionality for DTU2 and DTU3. Fig. 10F shows the virtual data stream 1002 thus created.
[0043] The essential advantage of System 900 is that unrecoverable errors are propagated to a limited number of DTUs, but with a limited delay compared to previous embodiments. This advantageous result can be more fully understood in connection with Fig. 11 and the discussion below. For simplicity and clarity, the example of Fig. 11 has been selected for the consistency of Fig. 10. However, Fig. 10 mainly illustrates one way of implementing an interleaver of redundancy coder 906, and other embodiments could also achieve the characteristics of Fig. 11. Furthermore, for simplicity and brightness, the symbols are enclosed in frames corresponding to a single virtual code word, although generally they could be framed in a different way.
[0044] As shown in Fig. 11, the interface of the transmitting network 408 receives the initial data stream of 1100 byte of charge (B) as a series of DTUs. In the interleaver 906 redundancy, the δ delays could be inserted to create the modified data stream 1102 (or these latencies could also be provided in the network interface 408 via a higher-level protocol). Then the interleaver redundancy coder 906 selects a series of payload bytes 1104 from the initial or modified data stream and calculates at least one redundant byte (R) such as the Reed-Solomon overflow byte for each series of bytes. As shown, redundant bytes are associated with a series of bytes to create virtual code words N1, N2, N3. Typically, each number of bytes has an overall length in bytes, which is smaller than the span of a series of bytes in the initial and modified data stream. For example, the virtual code word N3 contains a series of bytes 1104 (i.e., B00, B04, B08) which has a total length of three bytes and a spread 1106 of about eight bytes in the initial data stream 1100. The redundant byte R03 is then calculated based on a series of bytes (B00, B04, B08) and could be associated with these bytes to create a virtual code word N3. The number of bytes 1104 also has a spread of 1108 about fourteen bytes in the modified data stream 1102. The redundant byte R03 is then calculated based on a series of bytes (B00, B04, B08) and could be associated with these bytes to form the virtual code word N3. The number of bytes 1104 also has a spread of 1108 about fourteen bytes in the modified data stream 1102. The redundant byte R03 is then calculated based on a series of bytes (B00, B04, B08) and could be associated with these bytes to form the virtual code word N3. The number of bytes 1104 also has a spread of 1108 about fourteen bytes in the modified data stream 1102.
[0045] In the illustrated embodiment, the interleaving redundancy coder 906 sends the initial data stream 1100 with the redundant bytes inserted therein for transmitting to the transmission medium 406. Since the payload has the same order, the initial data stream could be sent with zero effective delay (despite physical delays in the transmitter due to modulation, calculation of redundant bytes, etc.) The transceiver can then be divided into outgoing frames
A data stream as a series of symbols and transmit an output data stream 1110 via a transmission medium 406, the bytes in the output data stream 1110 having the same sequence as the initial data stream 1000.
[0046] When the output data stream was transmitted via the transmission medium 406, interference by the impulse noise 1112 could damage all data in one symbol or in several consecutive symbols.
After demodulation on the side of the recipient, the received byte of the load could be passed directly to the receiving network interface 410, because the bytes of the received bytes are in the required order. Accordingly, the initial data stream 1100 could be transmitted from the network interface 408 to the network interface 410 with zero effective delay (despite physical delays in the transmitter due to modulation, over-sized bytes, etc.). This is advantageous because it can reduce latency and waiting time for other communication systems.
[0048] To facilitate error correction, received byte payloads are also passed to the deinterleaver 908 decoder. Next, the deinterleaver redundancy decoder 908 reconstructs the 1114 virtual code words N1 ', N2', and N3 'and calculates the surplus bytes R' based on received byte payloads. , which may be equal to transmitted bytes or not due to noise in the transmission medium. If the calculated redundant bytes R 'are not equal to the received redundant bytes R, the deinterleaver redundancy decoder 908 may attempt to use the received redundant bytes associated with the given virtual code word to correct the corrupted bytes. So, the redundant byte R03 'would normally be used to correct any errors that occur in B00, B04, and B08 bytes.
[0049] If we assume that not all the received byte overrides can be corrected, then the deinterleaver 908 redundancy decoder can not correct errors. However, since the payload was transmitted by the transmission medium 406 in the same order as used in the network interfaces 408, 410, the corrupted bytes are in a limited number of DTUs. Consequently, in the illustrated embodiment, the higher-level protocol only has to retransmit one DTU unit. Thus, by using this system 900, higher-level protocols can potentially reduce the number of retransmission and delay requests as compared to those previously performed.
[0050] Fig. 12 shows a more detailed example of some kind of optimized redundancy coder 906. In Fig. 12, the initial data stream from the network interface 408 is passed directly to the transceiver 412, with lattice coding, IFFT, etc., can be used to modulate the data stream coming out to the transmission medium 406. Thus, the DTU units transmitted as symbols in the transmission medium could have the same order as shown in the interface of the transmitting network. Because the load does not pass
By the FIFO queue before reaching the transceiver, the delay of the load is effectively reduced to zero.
[0051] Nevertheless, in one embodiment, the payload bytes could still be processed by the pre-interleaver 1200 to form a virtual data stream. The redundancy coder 1202 calculates the overhead bytes 1204 based on a series of bytes in the virtual data stream to form virtual code words. As shown, in this configuration the remaining interleaver 1206 interleaves only redundant bytes, not the entire virtual code word. Since redundant bytes generally only contain part of the entire virtual codeword, the skilled person will understand that this configuration consumes less memory and may introduce fewer delays than the previously discussed embodiments.
[0052] Fig. 13 shows yet another embodiment, wherein the pre-interleaver 424 and redundancy encoder 426 are replaced by a parallel redundancy block 1300 that parallelly compares the overhead bytes. Again, the excess bytes could be interleaved 1302, as shown. In particular, the initial or modified data stream is passed directly from the network interface 408 to the transceiver 412 for transmitting to the transmission medium. Thus, the symbols in the transmission medium will carry the data payload in the same order in which they were received in the network interface with zero effective delay. To calculate the redundant bytes, the controller 1304 sequentially inserts data stream bytes into the parallel redundancy block 1300. The controller 1304 places each byte to make bytes, which would be initially interspersed, were now related to each other for the calculation of redundant bytes. In other words, excess bytes could be computed from a series of bytes taken from multiple DTUs.
[0053] Although the invention has been illustrated and described with reference to one or more embodiments, changes and / or modifications may be made to the examples shown without departing from the scope of the appended claims. For example, although the output data stream may be described as having "the same order" as the initial data stream, it will be understood that this term includes data that is in a similar order. For example, although the order of bytes is shown to be the same in the interface of the transmitting network and the transmission medium, the order of the bytes could be inverted. In addition, data order modifications could be made.
[0054] In particular, regarding the various functions performed by the above-described components or structures (assemblies, devices, circuits, systems, etc.), the terms (including the reference "means") used to describe such components are to correspond, if not otherwise indicated, to any component or structure that performs a given function of the described component (e.g., functionally equivalent) even if it is not structurally equivalent to the disclosed structure that performs the function in the embodiments of the invention shown herein. In addition, although a particular feature of the invention may have been disclosed with reference to only one of several embodiments, such a feature may be combined with one or more other features of other embodiments.
- realization that may be desirable and beneficial for a given or particular application. Furthermore, to the extent that the terms & quot; inclusive & quot ;, & quot; including & quot ;, & quot; include & quot ;, & quot; and & quot; or & quot; from & quot; are used in both the detailed description and the claims, such terms are intended to have a broader meaning such as the term "includes".
12 members in 4 offices
Priority claims7
| Document | Office | Kind | Date |
|---|---|---|---|
| 94002107 | United States of America | P | |
| 97623007 | United States of America | P | |
| 081563561 | – | – | – |
| 940021P | – | – | – |
| 976230P | – | – | – |
| US20070940021P | – | – | – |
| US20070976230P | – | – | – |
Members12
| Document | Office | Kind | |
|---|---|---|---|
| CN101312388A | China | A | |
| EP1995900A2 | European Patent Office (EPO) | A2 | |
| EP1995901A2 | European Patent Office (EPO) | A2 | |
| US2008291984A1 | United States of America | A1 | |
| US8374224B2 | United States of America | B2 | |
| CN101312388B | China | B | |
| EP1995900A3 | European Patent Office (EPO) | A3 | |
| EP1995901A3 | European Patent Office (EPO) | A3 | |
| EP1995900B1 | European Patent Office (EPO) | B1 | |
| PL1995900T3This record | Poland | T3 | |
| EP1995901B1 | European Patent Office (EPO) | B1 | |
| PL1995901T3 | Poland | T3 |
Numbers
- Publication
- 1995900
- Publication, DOCDB
- 1995900
- Publication, EPODOC
- PL1995900T
- Application
- 8156356
- Application, DOCDB
- 08156356
- Application, EPODOC
- PL20080156356T
Titles2
- English
- Interleaver apparatus and method
- Polish
- Układ przeplatania - urządzenie i sposób
Classification
- CPC, 3
- H04L1/0071
- H03M13/2732
- H04L1/0057
- IPC, 2
- H04L1 00
- H03M13 27