Channel coding is a typical method to improve the accuracy of transmitting data for the complicated and changeable channel conditions in wireless transmission environment. For example, the transmitted information bit sequence (for example, x=[1 1 0 1 0 1 1 0] is a sequence of length 8), if directly through the wireless channel, due to the existence of various disturbances, the received sequence y may be error changed to y=[1 1 0 1 1 1 1 0]. Where the fifth bit has a deviation from 0 to 1 produces an error. The function of channel coding is to add certain check bit bits after sending the data according to some mathematical law (for example, c=[1 1 0 0]) to make the transmitted data into some combination of information bit x and check bit C (for example, the most direct is the way of Cascade S=[x c]=[1 1 0 1 0 1 1 0 1 1 0 0]). The data sent now becomes S. At this time through the wireless channel, the data received by the interference of Y ' is y ' =[1 1 0 1 1 1 1 0 1 1 0 0], but due to the specific mathematical law between the bit stream, can correct this error, restore the original send data s=[1 1 0 1 >0 1 1 0 1 1 0 0], thus improving the reliability of data transmission. This measure is based on the influence of channel conditions to take the encoding method to improve transmission reliability "1", the channel code is named.
Turbo coding is a kind of channel coding, and it is a kind of excellent performance scheme. This "good" in the communication system is embodied in the very good transmission reliability and acceptable implementation complexity. (Bit Error Rate,ber) is a good measure of reliability, for example, I send 100 bits, the wrong 18 bits, then the ber=18%. To realize the complexity of the problem can also be subjective experience, I design a particularly complex coding scheme, the receiving end of the received data for the corresponding complex operation, although it can bring a ber increase, but the cost is too large, practical application is not high. the BER feature of the Turbo codec is one of the most existing channel encodings, with a modest degree of implementation complexity, so the turbo is a good code.
Write write to write more, this article is mainly to write about the turbo compiler code ideas and MATLAB simulation implementation (decoding formula did not understand).
Encoder:
650) this.width=650; "src=" Http://s3.51cto.com/wyfs02/M02/73/0A/wKioL1XyniLwA0tVAABV9uaKhY4241.jpg "title=" Enc.png "alt=" Wkiol1xynilwa0tvaabv9uakhy4241.jpg "/>
Figure -1 : turbo code encoder structure
turbo Code encoder consists of two recursive system convolutional code encoders (RSC) (interleaver) (puncturer) composition. Unlike the normal convolutional code encoder, the recursive system convolutional code Encoder has a feedback branch, and it has an output signal that is the original input information. -2
650) this.width=650; "src=" Http://s3.51cto.com/wyfs02/M02/73/0D/wKiom1XynEHQdgByAABN1iDNIvM260.jpg "title=" Enc2.png "alt=" Wkiom1xynehqdgbyaabn1idnivm260.jpg "/>
Figure -2 : RSC Encoder Structure
no hole punch. Turbo Code Encoder code rate is 1/3, in practice, often using the variable rate of Turbo code, then the need for drilling operations, from Figure 1 can be seen, Punch is two RSC The encoder generates a check bit, the original information bit is not to participate in the drilling operation.
Assumptions The number of registers for the RSC encoder is:m.
input the information for the Turbo encoder is:Infor.
the specific process for encoding is: the inputTurboCode Encoder Information(infor)PlusMa tail bit(TAIL1)input into the firstRscEncoder to encode, addMthe goal of the tail bit is to put the firstRscthe final state of the encoder is returned to the zero state, and the output isParity1. Will enterTurboThe original information of the Code encoder(infor)Interwoven information to addMa tail bit(TAIL2)input into the secondRscEncoder to encode, addMThe purpose of the tail bit is to move the secondRscthe final state of the encoder is returned to the zero state, and the output isParity2. Parity1and theParity2Is the length of the input information, plus the length of theM. If you want to get different code ratesTurboThe two-way verification information can be punched, if not for drilling operation, thenTurbothe output of the Code encoder is:Infor+tail1+tail2+parity1+parity2.
Decoder:
650) this.width=650; "src=" Http://s3.51cto.com/wyfs02/M02/73/0A/wKioL1XynkGiVCPIAABXFNLPLwg483.jpg "title=" Dec.png "alt=" Wkiol1xynkgivcpiaabxfnlplwg483.jpg "/>
Figure -3 : Turbo Code Decoder (MAP)
-3 turbo Code decoder (MAP) two Map "and MAP Decoder 2 respectively for turbo code encoder RSC 1 and Rsc2 The information of the encoder is interleaved, so the received system information is entered into the MAP Decoder 2
The decoding process from the figure -3 Can be clearly seen: the original information, by the first rsc The first verification information generated by the encoder, the second map "the priori information of the decoder () after the solution interleaving the joint input into the first map map decoder output relative to the second MAP The prior information of the decoder is interwoven, the original information is interleaved, the second verification information is combined into the second Map decoder decoding, at this time, the second map The decoder output is relative to the first map The decoder in terms of the prior information, completed an iteration. According to the actual needs, set the number of iterations of the decoding, in general, with the increase in the number of iterations, the performance of the decoder will increase, but when the number of iterations increased to a certain extent, the performance of the decoder is already very small, in practice, the number of iterations is generally selected 8
Turbo Code General Codec thinking is said so much, the specific MATLAB program online popular Wuyufei version of the Great God, you can get links from here: Http://pan.baidu.com/s/1jG1twhC Password: w9qe.
The problem here is that Wu's program is AWGN channel BPSK modulation mode, modulation order is lower, from the point of view of improving the transmission efficiency of high-order modulation (such as the previous BPSK modulation, 1 represents bit 1,-1 is represented by bit 0, high-order modulation such as QPSK,S1 for 00, S2 represents 01,S3 on behalf of 10,S4 representative 11), so that the same transmission of a symbol in S1~S4, can represent two bits of data, the rate is increased by one times, the same result is the transmission reliability will be reduced (because the difference between S1~S4 than 1, 1 distinction between good, It is easier to confuse each other) but the adoption of QPSK modulation within the tolerable range of reliability degradation does improve transmission effectiveness. So what I need to do is to add the modulation steps based on the Wu program.
Turbo coding does not need to adapt, assuming that there are 100 bits of information, after the Turbo code (bitrate 1/3) that the data bit is 300, the 300 bits of QPSK modulation can be modulated after the symbol through the AWGN channel superimposed noise needs attention noise Power , the original noise amplitude is sigma, then the noise amplitude added to the QPSK symbol needs to be changed to SIGMA/SQRT (2).
Turbo decoder input needs to provide each bit of soft information (symbol confidence), so through the AWGN channel receive data y, need to ① first soft demodulation "2" processing, ② the QPSK modulation soft demodulation symbol-level soft information map to a more than super soft information as input to the turbo.
Soft demodulation is mainly based on formula 650) this.width=650; "Src=" http://s3.51cto.com/wyfs02/M01/73/0E/wKiom1XyzRawGGYxAABqQTPuTHQ576.jpg " title= "soft demodulation 1.png" width= "height=" border= "0" hspace= "0" vspace= "0" style= "width:250px;height:140px;" alt= " Wkiom1xyzrawggyxaabqqtputhq576.jpg "/>
In practice, the probability of R being judged as one of the S1~S4 in the high Snr is overwhelming, and the other three may be smaller, resulting in a result such as Nan or inf in the calculation of LLR. So the practical application adopts a more simplified scheme: 650) this.width=650; "Src=" http://s3.51cto.com/wyfs02/M02/73/0B/wKioL1Xyz_ Bygd-paaco5ygqh9s766.jpg "title=" soft demodulation 2.png "width=" "height=" "border=" 0 "hspace=" 0 "vspace=" 0 "style=" width : 300px;height:96px; "alt=" wkiol1xyz_bygd-paaco5ygqh9s766.jpg "/> Use this scheme will not have the above nan,inf and other problems.
Attached I do the high-order (QPSK) modulation with/without turbo-coded Ber-snr curve ~
650) this.width=650; "src=" Http://s3.51cto.com/wyfs02/M01/73/85/wKiom1YABUmQS-QaAAKtE80GIJI982.jpg "title=" Snr-ber.png "alt=" Wkiom1yabumqs-qaaakte80giji982.jpg "/>
Summing up the words, mainly introduces the idea of turbo coding and the application of high-order modulation MATLAB simulation needs to pay attention to the problem.
"1" communication system is mainly to solve three problems: reliability, effectiveness, security. The reliability and effectiveness of which is a contradiction, on the one hand I want to send a little message (such as a number 1, the receiver can understand a lot of information (such as a "I love Beijing Tian ' an, Tiananmen Square sun Rise") On the other hand, I hope that the data I send can be correctly understood by the receiver (that is, the word "a"). Obviously the message contains a limited amount of information (such as the number 1 if the provisions of the lyrics, then really need to transfer the number "1" of the information need to find other information to replace) and the transmission process will be a loss (such as the number 1, but received the number 7, then the end of the receiver must not understand the meaning of the originator) This is a negative factor for transmission reliability. At this point, it is necessary for the originator to do the appropriate operation to improve the accuracy of the transmitted data, as described in the previous channel coding, and channel coding similar to the increase in reliability of the operation will cause information redundancy, which is a negative factor for the effectiveness of the transmission. Thus, communication systems need to achieve an appropriate compromise between effectiveness and reliability. The third security as the name implies, I want to transfer the data only me and accept the person received, other people receive is also useless information, this involves some anti-jamming related technology, small series research not deep.
"2" soft demodulation, the relative should have a hard demodulation.
First say hard demodulation, remember us in order to improve the transmission of the validity of each send the message is one of the S1~S4, now assume s1=-1-1i,s2=-1+1i,s3=1-1i,s4=1+1i. The S1~S4 can be drawn as the constellation map below.
650) this.width=650; "src=" Http://s3.51cto.com/wyfs02/M00/73/0E/wKiom1XyyR-zRIvFAAEvwOd3QA0188.jpg "title=" Constellation 1.png "alt=" Wkiom1xyyr-zrivfaaevwod3qa0188.jpg "/>
After the various interference effects of the wireless channel, the received signal R may be located in this position, such as
650) this.width=650; "src=" Http://s3.51cto.com/wyfs02/M01/73/0B/wKioL1Xyy-bBFbilAAFicjUyhuw093.jpg "title=" Constellation 2.png "alt=" Wkiol1xyy-bbfbilaaficjuyhuw093.jpg "/>
So what should the received signal r be judged to be in S1~S4? The solution given by the hard demodulation is to calculate the distance between R and S1~s4 D1~d4, taking the nearest one as the result of the verdict. There is a reason for this, because the influence factor obeys the Gaussian distribution of the 0 mean, so the probability of the noise influence from the position of the S1 ( -1,-1i) to the position where R is located is small, so the priority judgment is the point closer to the distance. This is relatively simple, but gives a blunt feeling, highlighting a "force", the name of the hard verdict. After the verdict we learned that only the signed symbol is the S1~S4, do not know how far r and the result of the decision of the degree of deviation, this is part of the loss of information, we hope to compensate back.
Again soft demodulation, soft demodulation at the time of the verdict, it is not blunt to give the R decision for S1~S4 which one, but to send S1~S4, the receiving end received r four of the probability of each occurrence of P (R|S1) ~p (R|S4) (this probability is also known as soft information). Cruel judgment work soft demodulation does not do, just the various probabilities as output, so that the hard demodulation loss of R and the result of the deviation/similarity of the decision is proud to retain, no information loss. And this soft information can be used naturally in similar to the turbo decoder, the need for soft information decoding operation.
Write and write the turbo simulation for MATLAB.