In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-14 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Network Security >
Share
Shulou(Shulou.com)06/01 Report--
Channel coding is a typical method to improve the accuracy of transmitted data according to the complex and changeable channel conditions in wireless transmission environment. For example, for the transmitted information bit sequence (for example, x = [11010110] is a sequence of length 8), if it passes directly through the wireless channel, due to the existence of all kinds of interference, the received sequence y may have an error and become y = [11011110]. Among them, the fifth place has a deviation from 0 to 1, resulting in an error. The duty of channel coding is to add certain parity bits (for example, c = [1100]) after sending data according to some mathematical law to make the transmitted data become some combination of information bits x and parity bits c (for example, the most direct way is cascading s = [x c] = [1 101 10 1 10 1 100]). The data sent at this time becomes s. At this time, through the wireless channel, the received data y' is affected by the interference, but because the bit streams satisfy the specific mathematical law, this error can be corrected and the original transmitted data s= [110101101100] can be restored, thus improving the reliability of data transmission. This measure is a coding method adopted to improve the transmission reliability according to the influence of channel conditions, from which the name of channel coding is obtained.
Turbo coding is a kind of channel coding, and it is a scheme with excellent performance. This "good" is embodied in the good transmission reliability and acceptable implementation complexity in the communication system. (Bit Error Rate,BER) is a good measure of reliability. For example, if I send 100 bits and 18 bits are wrong, then the BER=18% at this time. The problem of implementation complexity can also be felt subjectively. I design a particularly complex coding scheme, and the receiver performs complex operations on the received data, which can improve the BER, but it costs too much and is not practical in practical applications. The BER characteristic of Turbo coding is one of the best among all the existing channel codes, and it has moderate implementation complexity, so Turbo is a good code.
Write too much, this article is mainly about the encoding and decoding ideas of Turbo and the simulation implementation of Matlab (if the decoding formula is not understood).
Encoder:
Figure-1:Turbo Encoder structure
It can be seen from the figure that the Turbo code encoder consists of two recursive system convolutional code encoders (RSC), an Interleaver (Interleaver) and a blanking machine (Puncturer). Different from the ordinary convolutional code encoder, the recursive system convolutional code encoder has a feedback branch and an output signal is the original input information. The specific structure of RSC is shown in figure-2.
Figure-2:RSC Encoder structure
The code rate of the unpunched Turbo encoder is 1 Turbo 3. In practice, the variable bit rate Turbo code is often used, so the punching operation is needed. It can be seen from figure-1 that the punching is aimed at the check bits generated by the two RSC encoders, and the original information bits do not participate in the drilling operation.
Suppose the number of registers of the RSC encoder is: M.
Enter the information of the Turbo encoder as: Infor.
The specific coding process is as follows: the information of the input Turbo encoder (infor) plus m tail bits (tail1) is input into the first RSC encoder to encode, and the purpose of adding m tail bits is to return the final state of the first RSC encoder to zero state and output to parity1. The original information (infor) of the input Turbo encoder is interleaved, and the interleaved information is input into the second RSC encoder to encode with m tail bits (tail2). The purpose of adding m tail bits is to return the final state of the second RSC encoder to zero and output to parity2. The length of parity1 and parity2 is equal, which is the length of input information plus m. If you want to get Turbo codes with different bit rates, you can punch two check informations. if you do not punch holes, the output of the Turbo code encoder is: infor+tail1+tail2+parity1+parity2.
Decoder:
Figure-3: Turbo code decoder (MAP)
As can be seen from figure-3, the Turbo Code Decoder (MAP) consists of two MAP decoders, two Interleavers and one deInterleaver. MAP Decoder 1 and MAP Decoder 2 decode the RSC 1 and RSC2 of Turbo encoder respectively. Since the information input to the second RSC encoder goes through the interleaving process, the received system information must be interleaved before it is input to MAP Decoder 2. The function of the deInterleaver is similar to that of another Interleaver and is not described here.
The decoding process can be clearly seen in figure-3: the original information, the first parity information generated by the first RSC encoder, and the prior information generated by the second MAP decoder relative to the first MAP decoder (the first initialization is zero) are deinterleaved and then jointly input into the first MAP decoder for decoding. The prior information outputted by the first MAP decoder relative to the second MAP decoder is interleaved, the original information is interleaved, and the second parity information is jointly input into the second MAP decoder for decoding. In this case, the second MAP decoder outputs the prior information relative to the first MAP decoder and completes an iteration. The number of iterations for decoding can be set according to the actual needs. in general, the performance of the decoder will increase with the increase of the number of iterations, but when the number of iterations increases to a certain extent, the performance of the decoder is already very small. in practice, the number of iterations is generally 8.
Turbo code generally coding and decoding ideas to say so much, specific Matlab procedures on the Internet popular version of a WuYufei god, you can get a link here: http://pan.baidu.com/s/1jG1twhC password: w9qe.
The problem found here is that the Wu program is modulated by BPSK in the AWGN channel, and the modulation order is relatively low, which requires high-order modulation from the point of view of improving transmission effectiveness (for example, in the previous BPSK modulation, 1 represents bit 1, 1 represents bit 0, and high-order modulation, such as QPSK,s1 represents 00, 2, 0, and 4, represents 11), so it also transmits a symbol in s1~s4. It can represent two bits of data, and the rate is doubled, which also results in a decrease in transmission reliability (because the differentiation between s1~s4 is not as good as the distinction between 1 and-1, that is, it is more likely to be confused with each other), but the use of QPSK modulation does improve the efficiency of transmission within the range of tolerable reliability decline. So what I need to do is to add the modulation step to the Wu program.
Turbo coding does not need to be adapted, assuming that there are 100 unique information ratios, and the data bits obtained by Turbo coding (code rate 1 to 3) are 300. these 300 bits can be modulated by QPSK. The modulated symbols need to pay attention to the noise power when the noise is superimposed through the AWGN channel, and the original noise amplitude is sigma, then the noise amplitude added to the QPSK symbol needs to be sigma/sqrt (2).
The input of Turbo decoder needs to provide soft information (symbol confidence) of each bit, so the received data y of AWGN channel requires ① to carry out soft demodulation [2] first. ② maps the symbol-level soft information of QPSK modulation soft demodulation to bit-level soft information as the input of Turbo.
Soft demodulation is mainly based on the formula.
In practical application, the possibility of r being judged as one of the s1~s4 under the condition of high signal-to-noise ratio will be very overwhelming, and the other three may be small, so there will be some results such as NaN or Inf in the calculation of LLR. Therefore, a more simplified scheme is adopted in practical application: there will be no problems such as the NaN,Inf mentioned above.
Attach my high-order (QPSK) modulated BER-SNR curve with / without Turbo coding ~
To sum up, it mainly introduces the idea of Turbo coding and the problems that should be paid attention to in the Matlab simulation of high-order modulation.
[1] the communication system mainly solves three problems: reliability, effectiveness and security. There is a contradictory relationship between reliability and effectiveness, on the one hand, I hope I can send a little message (such as a number 1, the receiver can understand a lot of information (such as "I love Tiananmen Square in Beijing, the sun rises on Tiananmen Square"); on the other hand, I hope that the data I send can be correctly understood by the receiver (that is, a represents the lyrics). Obviously, the information contained in the message is limited (for example, if the number 1 is specified to represent the lyrics, then you really need to find other information to replace the information of the number "1") and there will be losses in the process of transmission (for example, if you send the number 1, but receive the number 7, then the receiver must not be able to correctly understand the meaning of the originator). This is a negative factor for transmission reliability. At this time, it is necessary for the sender to take appropriate operations to improve the accuracy of the transmitted data, that is, the channel coding mentioned above, the operation to improve the reliability similar to the channel coding will lead to information redundancy, which is a negative factor for the effectiveness of transmission. Therefore, the communication system needs to make an appropriate tradeoff between effectiveness and reliability. The third security, as the name implies, I hope that the data I transmit is only received by me and the recipient, and that other people receive useless information, which involves some anti-jamming-related technologies, and the editor does not study deeply.
[2] soft demodulation corresponds to hard demodulation.
First of all, let's talk about hard demodulation. We still remember that we sent one of the s1~s4 every time we sent a message in order to improve the transmission effectiveness. now let's assume that s _ 1m _ 2m _ 2m _ 1m _ 3e _ 1I _ 4i _ 1Q 1i. Then s1~s4 can be drawn as a constellation chart as follows.
After various interference effects of the wireless channel, the received signal r may be located in this position, as shown in the following figure
So which of the s1~s4 should be identified as the received signal r? The scheme given by hard demodulation is to calculate the distance d1~d4 between r and s1~s4, and take the nearest one as the result of the decision. There is a reason for this, because the influence factor obeys the Gaussian distribution of 0 mean, so the probability that the noise influence changes from the position of S1 (- 1) to the position of r is small after all, so the priority decision is a closer point. It is relatively simple to do so, but it gives people a stiff feeling, highlighting a "coercion", hence the name of the hard judgment. After the verdict, we only know which symbol of the s1~s4 is judged, and we don't know how much r deviates from the verdict. This is part of the loss of information, and we hope to compensate for it.
Again, when talking about soft demodulation, soft demodulation does not bluntly give which r is judged to be s1~s4, but gives the probability p (r | S1) ~ p (r | S4) (also known as soft information) of sending s1~s4 and receiving r. The cruel judgment soft demodulation is not done, but takes all kinds of probability as the output, so that the deviation / similarity between the hard demodulation loss and the judgment result is proudly retained, and there is no information loss. This soft information can be naturally used in decoding operations such as Turbo decoders that require soft information.
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.