Raj Vardhan 1and Prasanna Choudhary2
1 Director-JDM Design Technologies
2 Technical Manager- MindTrik Technologies
Once data is transmitted, it should remain unchanged till the complete reception at the receiver. The data should get recovered even if data gets corrupted due to noise, (Electromagnetic Interference) EMI, crosstalk or the distance after getting transmitted. Errors must be detected as well as corrected. This error detection and correction is inherent in orthogonal codes. Orthogonal codes property has been used earlier to detect and correct errors . We have proposed a technique using Split-orthogonal codes to effectively detect and correct errors, as well as detecting position of the error in the received code so that we can further improve the trans- reception of the data. Codes are split in two equal parts and then used to detect and correct errors of received impaired codes, both parts works inter-dependently. The technique is implemented and modeled in Matlab and 16-bit orthogonal codes are used.
Keywords – Split- Orthogonal code, Effective Error Detection, Error correction, Matlab
Errors have been detected through many techniques like Cyclic Redundancy Check (CRC) which does not provide the correction of the data, for correction we need to use different technique in this case. Error detection and correction is inherent property of orthogonal codes. If data after transmission from the transmitter is somehow received erroneous, at the receiver then we need to apply some detection and correction technique. We can improve reception of data if we can figure out the position of the error in the received data.
Orthogonal codes can provide error detection as well as error correction. Orthogonal codes are having equal number of 1’s and 0’s (Fig 1). For example if we are considering n-bit orthogonal code there will be n/2 1’s and n/2 0’s in it [2, 3]. The concept, of improving error detection using orthogonal codes, is using 16-bit orthogonal code. There are 16, 16-bit orthogonal codes and 16, 16-bit antipodal codes total of 32 bi-orthogonal codes. Antipodal codes are opposite to that of orthogonal codes. We have split the orthogonal code into two equal parts while implementation.
An orthogonal code is having equal number of 1’s and 0’s so it will generate zero parity all time except that cod received is erroneous. We need not to send any extra parity bit while transmitting data. In case if, after the transmission the data received is erroneous then it will generate parity error. In this process of detecting and correcting the errors code received is split into two equal parts. Each part will be checked for parity bit, if generated parity is zero then code is error free and if one then the received code is considered to be the erroneous. By split-orthogonal code method we can detect the part of the incoming or received data that is containing the errors and along with the correction of code we can also improve trans-reception system by using effective means to reduce the error in that particular area and over all reception system will become more effective.
This process comprises splitting the received orthogonal code, whether it is impaired or not, checking for correlation with neighboring codes for a match. The code is accepted when it shows good auto-correlation otherwise it is considered to be an erroneous one.
Suppose a pair of n-bit codes is to be processed then this will yield:
Where and are the auto correlation function and n is the code length. The number of errors that can be corrected using 16-bit orthogonal code is given by :
In the above equation t is the average number of errors that can be corrected by the n-bit orthogonal code. For example for 8-bit orthogonal code only single error can be corrected. For 16-bit orthogonal, which we have used, maximum 3 errors can be corrected. Table-1 shows the average number of errors that can be corrected by different n-bit orthogonal codes (by ).
Table-1: n-bit Orthogonal code and corresponding Error control capability
Functional Block Diagram
Transmitter comprises Mapping and Parallel to Serial Conversion. Mapping unit encode the incoming 5-bit data to corresponding 16-bit orthogonal code. To store orthogonal codes we have used a look-up table. For Example input to the transmitter is “00001” this corresponds to 16-bit orthogonal code “0101010101010101”. Parallel to Serial Conversion converts the 16-bit code set into a serial bit stream which is to be transmitted from the transmitter.
Receiver functionality comprises several steps i.e. Serial to Parallel Conversion, Splitting of orthogonal code, Error Detection and Correction and De-mapper. Incoming serial bit stream is first converted to 16 bit parallel code. This received code either can be impaired or correct one. Now received code is processed with each code in the lookup table. Now the split-Orthogonal come into picture. We have split received code and each orthogonal code in the look-up table in two equal parts. Then XORed each time and count the number of 1’s in the output. We will get two counts while counting both XORed outputs. These two counts are checked for different conditions and will work inter-dependently and then decision is taken for correct orthogonal code. Beside detection and correction with these two different counts we can detect the position of the error in the received code, so that we can enhance the effectiveness of over all trans-reception system.
Implementation and Results
This method of improving error detection using split-orthogonal is implemented in Matlab. Using this proposed technique up to three errors can be detected and corrected and position of the error in the received code can be detected as well i.e. the part of the orthogonal code, either it could be higher 8-bit or lower 8-bit code, which is erroneous, can be detected. This improves the error detection at the receiver as well as enhances effectiveness of the Trans-Reception.
This Split-Orthogonal technique, to detect and correct errors, can enhance the effectiveness of the detection by providing the position of error in received code. Future work includes, increase the number of error detection and correction beyond the existing limit i.e. 3 for orthogonal and split- orthogonal code.
- Naima Kaabouch, ”Improvement of convolution capabilities using FPGA Implementation”, IEEE EIT 2007 proceedings.
- S. Faruque, ” Broadband based communication Based on code Division Parallel Access (CDPA)”,The International Engineering consortium (IEC) , Annual Review of Communication, VOL 57, ISBN: 1-931695-28-8,Nov.2004.
- Saleh Faruque , ”Error Control Coding Based on orthogonal codes”, Wireless Proceedings, VOL 2
- B. Sklar, Digital Communication Fundamentals and Applications, Prentice Hall 1998
- Qualcomm, The CDMA Network Engineering Handbook, VOL I, Concepts in CDMA, 1993