CN103873073B - A kind of based on Turbo code high-speed coding implementation method parallel with adding window structure - Google Patents

A kind of based on Turbo code high-speed coding implementation method parallel with adding window structure Download PDF

Info

Publication number
CN103873073B
CN103873073B CN201410105878.1A CN201410105878A CN103873073B CN 103873073 B CN103873073 B CN 103873073B CN 201410105878 A CN201410105878 A CN 201410105878A CN 103873073 B CN103873073 B CN 103873073B
Authority
CN
China
Prior art keywords
information
decoding
bit
module
sections
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410105878.1A
Other languages
Chinese (zh)
Other versions
CN103873073A (en
Inventor
马荣
闫朝星
周三文
卢满宏
孙婉莹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aerospace Long March Launch Vehicle Technology Co Ltd
Beijing Institute of Telemetry Technology
Original Assignee
Aerospace Long March Launch Vehicle Technology Co Ltd
Beijing Institute of Telemetry Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aerospace Long March Launch Vehicle Technology Co Ltd, Beijing Institute of Telemetry Technology filed Critical Aerospace Long March Launch Vehicle Technology Co Ltd
Priority to CN201410105878.1A priority Critical patent/CN103873073B/en
Publication of CN103873073A publication Critical patent/CN103873073A/en
Application granted granted Critical
Publication of CN103873073B publication Critical patent/CN103873073B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

The present invention relates to a kind of based on Turbo code high-speed coding implementation method parallel with adding window structure,Realized by Turbo code high speed decoder,Including first、Second input buffer module、First、Two external information memory modules、Interleaving/deinterleaving module、N number of SISO decoding units、Hard decision module and output buffer module,First、Two input buffer modules continuously receive the Frame of outside input in ping-pong operation mode,N number of SISO decoding units complete the first component decoding of first time iteration and second component is decoded,The like,The the first component decoding for completing the M time iteration is decoded with second component,Iteration ends,Process is deinterleaved in hard decision module to log-likelihood ratio information LLR that the second component decoding of the M time iteration is obtained,And hard decision is carried out by result is deinterleaved,Hard decision result is stored in output buffer module finally;The decoding of the method integrating parallel and the advantage of sliding window decoding, greatly improved the decoding speed of service, with preferable decoding performance.

Description

A kind of based on Turbo code high-speed coding implementation method parallel with adding window structure
Technical field
The present invention relates to a kind of based on Turbo code high-speed coding implementation method parallel with adding window structure, belong to satellite shifting Dynamic art communication systems field.
Background technology
In satellite mobile communication system, the signal that receiver is received is subjected to the impact such as fading channel and interference noise. In this regard, satellite mobile communication system is frequently with the error control code Turbo or LDPC with high channel coding gain(Low-density is strange Even parity check code)The bit error rate is reduced and approaches shannon limit improving the reliability of information transfer by code.The advantage of Turbo code exists In its short code code word has more preferable error performance under Low SNR, is more suitable for burst transfer or real-time Communication for Power application In.At present, Turbo code is by as DVB-RCS(DVB-satellite backhaul channel)、CCSDS(Aerospace Data Systems Information committee)One of recommendation channel coding schemes Deng satellite mobile communication system and deep space communication system.Meanwhile, Turbo Code is also in land mobile communication system such as 3GPP(3rd generation partner program)The LTE of normal structure(Long Term Evolution)System and It is used widely in the systems such as WiMax.
The Turbo code that relatively this several system is adopted, it can be found that code word defined in 3GPP TS212 standards is employed Maximum uncontested interleaver, it is provided that more flexible parallel exponent number is selected, and is more suitable for wide-band communication system high speed volume Decoding application.So, here so that female code code efficiency is 1/3 Turbo code as an example, generator polynomial is expressed as
g0(D)=1+D2+D3,g1(D)=1+D+D3.
Also referred to as octal system(15,13), the constraint length of the encoder is v=4, and its structure includes 28 state subgroups Encoder, 1 Turbo code interleaver.Information c of the input length for Kk, code word of the coding output length for N=3K, comprising letter Breath position ukAnd check bitTwo parts.The code word after information bit coding is added tail and returns to initial shape than special envoy encoder State 0, through the Turbo code word that different punctured schemes are obtained more more high coding efficiencies.
Relative to encoder, decoder realizes that structure is more complex, and the design of wideband satellite communication receiver Difficult point.Using iterative decoding thought be Turbo code an important feature, in order to realize translating in component in iterative decoding process Soft Inform ation is exchanged between code device, and the component decoding of Turbo code must adopt SISO(Soft-output coding)Algorithm.Wherein, MAP (Maximum a posteriori probability)Class algorithm compares SOVA(Soft output Viterbi)Class of algorithms performance will be got well, and reduce the MAP of complexity Class algorithm is relatively easy to hardware realization, is widely used.Wherein, the implementation complexity of Max-Log-MAP algorithms is minimum.Often MAP decoder architectures are as shown below, wherein,Represent information bit u of the component coder in the output at k momentk, ys、 y1p、y2pInformation bit and the respective check bit information of 2 component decoders after representing receiver demodulation, before decoding, and remember Y={ys、y1p、y2p}.It is illustrated in figure 1 conventional MAP decoder architecture figures.
In an iterative process, the output L of component decoder 11(uk| Y) it is represented by system information, prior information and outside Information:L1a(uk)、L1e(uk)
To component decoder 2, external information L2e(uk) be expressed as exporting L2(uk| Y) deduct system informationPriori Information L2a(uk):
In formula, π represents interleaving treatment:
L2a(uk)=L1e(uπ(k))、L1a(uπ(k))=L2e(uk)
Note current state is s, and previous state is s', then the log-likelihood information of Log-MAP decoding algorithms is
Wherein, define
1)Forward state metric,
2)Backward state measurement,
3)Branch metric, γk(s',s)=p(uk)p(yk|s',s)
Defining operationAccording to approximateMax-Log-MAP decoding algorithm is then obtained
1)
2)
3)
Obtain log-likelihood information
To state measurement value after needing to calculate during decoding due to MAP classes algorithm, complete sequence is therefore only received Could start to decode after row.So, in the case where data sequence is long, the decoding delay of MAP class algorithms, must just than larger Decoding delay must be reduced by changing algorithm.
Content of the invention
It is an object of the invention to overcoming the above-mentioned deficiency of prior art, there is provided a kind of based on parallel with adding window structure Turbo code high-speed coding implementation method, the decoding of the method integrating parallel and the advantage of sliding window decoding, greatly improved decoding fortune Scanning frequency degree, with preferable decoding performance, measured performance is less than 0.15dB than theoretical performance difference;Simultaneously using calculating in real time Mode, has saved storage resource.
The above-mentioned purpose of the present invention is mainly achieved by following technical solution:
A kind of based on Turbo code high-speed coding implementation method parallel with adding window structure, by Turbo code high speed decoder Realize, the Turbo code high speed decoder includes that the first input buffer module, the second input buffer module, the first external information are deposited Storage module RAM3, the second external information memory module RAM4, interleaving/deinterleaving module, SISO decoding modules, hard decision module and defeated Go out cache module RAM5, wherein the first input buffer module includes information bit memory element RAM1 and check bit memory element RAM2, the second input buffer module include information bit memory element RAM1 ' and check bit memory element RAM2 ', SISO decodes mould Block includes N number of SISO decoding units, implements process as follows:
Step(One), the first input buffer module and the second input buffer module outside is continuously received in ping-pong operation mode The Frame of input, the Frame are data to decode yk, by data to decode ykIn information bit ysIt is divided into isometric N sections Information bit memory element RAM1 or RAM1 ' is stored in, by the first check bit y1p, the second check bit y2pIsometric N section is divided into respectively It is stored in check bit memory element RAM2 or RAM2 ';
Step(Two), interleaving/deinterleaving module produce sequence address and interleaving address, N number of SISO decoding units are according to institute State sequence address and read information bit memory element RAM1 or information bit y for being divided into N sections in RAM1 ' respectivelysStore with check bit The first check bit y for being divided into N sections in unit R AM2 or RAM2 '1p, the first component decoding of first time iteration is carried out, it is right to obtain Number likelihood ratio information LLR and external information L for being divided into isometric N sections1e, by external information L1eIt is stored according to the sequence address Second external information memory module RAM4;N number of SISO decoding units store mould from the second external information respectively according to the interleaving address Block RAM 4 reads external information L for being divided into isometric N sections1e, while reading information bit memory element RAM1 according to the interleaving address Or information bit y for being divided into N sections in RAM1 's, read in check bit memory element RAM2 or RAM2 ' according to the sequence address The second check bit y for being divided into N sections2p, carry out first time iteration second component decoding, obtain log-likelihood ratio information LLR and It is divided into external information L of isometric N sections2e, by external information L2eFirst external information memory module is stored according to the interleaving address RAM3;
Step(Three), N number of SISO decoding units according to the sequence address read respectively information bit memory element RAM1 or Information bit y for being divided into N sections in RAM1 'sWith the first check bit for being divided into N sections in check bit memory element RAM2 or RAM2 ' y1p, while reading external information L in the first external information memory module RAM32e, the first component decoding of second iteration is carried out, Obtain log-likelihood ratio information LLR and be divided into external information L' of isometric N sections1e, by external information L'1eAccording to the sequence address It is stored in the second external information memory module RAM4;N number of SISO decoding units store mould according to the interleaving address from the second external information Block RAM 4 reads external information L' for being divided into isometric N sections1e, according to the interleaving address read information bit memory element RAM1 or Information bit y for being divided into N sections in RAM1 's, read in check bit memory element RAM2 or RAM2 ' according to the sequence address It is divided into the second check bit y of N sections2p, the second component decoding of second iteration is carried out, log-likelihood ratio information LLR is obtained and is divided External information L' for isometric N sections2e, by external information L'2eThe first external information memory module is stored according to the interleaving address RAM3;
Step(Four), the like, repeat step(Three), complete first point of the M time iteration of N number of SISO decoding units Amount decoding is decoded with second component, iteration ends, and the M is the iterationses for setting;
Step(Five), log-likelihood ratio information LLR that the decoding of the second component of the M time iteration obtained is in hard decision module In be deinterleaved process, and carry out hard decision by result is deinterleaved, hard decision result be stored in output caching mould finally In block RAM 5;
Wherein N, M are positive integer, and N >=4, M >=6.
Above-mentioned based on Turbo code high-speed coding implementation method parallel with adding window structure in, step(One)Middle information bit ysIt is divided into isometric N sections, the first check bit y1p, the second check bit y2pIsometric N sections are divided into, are embodied as:K is defined for letter Breath bit length, represents with bit number, m=K/N is per section of length, and r is the overlap bit number that every section of head or tail is added, a frame number According to N sections are uniformly divided into, the 1st segment length for sending into N number of SISO decoding units is m+r;Middle segment length is m+2r;Final stage Length m+r+tail_bit, tail_bit represent information bit ys, the first check bit y1p, the second check bit y2pTail bit.
Above-mentioned based on Turbo code high-speed coding implementation method parallel with adding window structure in, step(One)In be divided into Information bit y of long N sectionssIt is expressed as follows:
Bs[1,…,N]={{y0,y1,...,yK/N-1},...,{y(N-1)K/N,y(N-1)K/N+1,...,yK-1}};
It is divided into the first check bit y of isometric N sections1p, the second check bit y2pIt is expressed as follows respectively:
B1p[1,…,N]={{yK,yK+1,...,y(N+1)K/N-1},...,{y(2N-1)K/N,y(2N-1)K/N+1,...,y2K-1}};
B2p[1,...,N]={{y2K,y2K+1,...,y(2N+1)K/N-1},...,{y(3N-1)K/N,y(3N-1)K/N+1,..., y3K-1}};
By the data { B for reconfigurings[1](k),Bs[2](k),....,Bs[N] (k) }, k ∈ [0, K/N-1] are deposited in order Enter information bit memory element RAM1 or RAM1 ';By the data { B for reconfiguring1p[1](k),B1p[2](k),….,B1p[N] (k) }, k ∈ [0, K/N-1] be stored in check bit memory element RAM2 or RAM2 ' in order in top half;By reconfigured Data { B2p[1](k),B2p[2](k),....,B2p[N] (k) }, k ∈ [0, K/N-1] are stored in check bit memory element in order The latter half in RAM2, wherein, K is information bit length.
Above-mentioned based on Turbo code high-speed coding implementation method parallel with adding window structure in, in N number of SISO decoding units Portion decodes flow process using sliding window, and what the decoding of the first component and second component for carrying out each iteration was decoded realizes process such as Under, wherein each SISO decoding unit includes LIFO memory RAMs 6 and RAM7:
Step(One), within the 1st sliding window time, calculate current data section last sliding window forward state metric α, used as the initial value of first sliding window forward state metric α of next data segment;Calculate current data first sliding window of section Backward state measurement β, as after initial value from upper last sliding window of a data segment to state measurement β;
Step(Two), within the 2nd sliding window time, information bit y in the first sliding windows, check bit yp, priori letter Breath LaIt is stored in the LIFO memory RAMs 6 that depth is 1 sliding window length SW;Calculate the forward-facing state of the 1st interior data of sliding Tolerance α, stores to the LIFO memory RAMs 7 that depth is 1 sliding window length SW;Calculate the backward state degree of the 2nd sliding window Amount β, as after effective original state from the 1st sliding window to state measurement β value;
Step(Three), within the 3rd sliding window time, calculate the effective β value of backward state measurement of first sliding window, with When read information bit y of caching from LIFO memory RAMs 6s, check bit yp, prior information La, from LIFO memory RAMs 7 Forward state metric α is read, log-likelihood ratio LLR and external information L is calculated togethere
Step(Four), the like, repeat step(Two)、(Three), until completing last cunning in SISO decoding units Dynamic window decoding.
Above-mentioned based on Turbo code high-speed coding implementation method parallel with adding window structure in, in N number of SISO decoding units Portion can carry out the calculating of forward state metric α and backward state measurement β value simultaneously, further reduce decoding delay.
Above-mentioned based on Turbo code high-speed coding implementation method parallel with adding window structure in, also include logic control mould Block, for being controlled to all modules of Turbo code high speed decoder, including to be decoded in first, second input buffer module The Read-write Catrol of the fragmented storage of data, the piece selected control system of ping-pong operation;First, second external information memory module data enable, Address controls;The startup of sliding window decoding, termination in SISO decoding units, whole decoding iteration control;Interleaving/deinterleaving module Middle sequence address, the selection control of interleaving address;The enable control of hard decision module;In output buffer module, decoding result deposits Storage and segmentation output control.
The present invention is had the advantages that compared with prior art:
(1), innovative design of the present invention a kind of based on Turbo code high-speed coding implementation method parallel with adding window structure, The decoding of decoding architecture integrating parallel and the advantage of sliding window decoding designed by the method, greatly improved the decoding speed of service, In decoding clock 110MHz, effective information is more than 36Mbps;
(2), system information position, check bit, external information storing process in Turbo code high-speed coding implementation method of the present invention In, according to storage mode is merged, RAM numbers are reduced, is easy to encoded control;
(3), memory element adopts dual port RAM form, SISO decoding units in Turbo code high-speed coding system of the present invention The calculating that forward state metric α and backward state measurement train β value can be carried out simultaneously, decoding delay is further reduced;
(4), the parallel adding window decoder designed by the present invention employ the Max-Log-MAP algorithms of optimization, with preferable Decoding performance, measured performance than theoretical performance difference be less than 0.15dB;
(5), present invention emulation found optimal data bit width, frame data are uniformly divided into N sections, and to per section Length is optimized design, is realizing there is preferably compromise between resource consumption and decoding performance.
Description of the drawings
Fig. 1 is conventional MAP decoder architecture figures;
The decoder architecture block diagram that Fig. 2 is adopted by Turbo code high speed decoding method of the present invention;
Fig. 3 is SISO decoding units structural representation of the present invention;
Fig. 4 is SISO decoding units work decoding flow chart of the present invention;
Fig. 5 is Turbo code of the present invention theory and measured performance curve, r=0.4333,0.4888,0.5444.
Specific embodiment
The present invention is described in further detail with specific embodiment below in conjunction with the accompanying drawings:
The present invention combines the advantage of block parallel decoding and sliding window decoding, and design is a kind of to be based on N number of SISO decoding units Parallel Turbo code decoder, and the sliding window decoding flow process inside the SISO using regular length, further to reduce decoding Time delay simultaneously saves storage.
The decoder architecture block diagram adopted by Turbo code high speed decoding method of the present invention is illustrated in figure 2, the present invention Turbo code high speed decoder includes the first input buffer module, the second input buffer module, the first external information memory module RAM3, the second external information memory module RAM4, interleaving/deinterleaving module, Logic control module, SISO decoding modules, hard decision Module and output buffer module RAM5, wherein the first input buffer module include information bit memory element RAM1 and check bit storage Unit R AM2, the second input buffer module include information bit memory element RAM1 ' and check bit memory element RAM2 ', SISO is translated Code module includes N number of SISO decoding units.The function of each module is as follows:
(1)First input buffer module/the second input buffer module:Store whole data to decode yk, by information bit ysDeposit Enter information bit memory element RAM1/RAM1 ', by the first check bit y1p, the second check bit y2pIt is stored in check bit memory element RAM2/RAM2’.Meanwhile, in order to realize interframe data continuous processing, two pieces of identical memory spaces are needed to continuous Frame Carry out ping-pong operation.
(2)First and second external information memory module:External information L that storage SISO decoding modules are obtainedeArrive memory element RAM3 Or in RAM4, used as the prior information of the decodings of SISO next time, RAM3, RAM4 provide the decoding of the 1st component, the 2nd component respectively and translate Prior information needed for code;
(3)SISO decoding modules:As the nucleus module of Turbo decoders, the realization of decoding algorithm is mainly completed, including Forward state metric α, the calculating of backward state measurement β, decoder are output as log-likelihood ratio information LLR and external information Le. SISO decoding units designed by the present invention have N number of:SISO_1、SISO_2、…、SISO_N;
(4)Interleaving/deinterleaving module:Read/write system position, the address signal of check bit sum external information is provided, address includes Sequence address and interleaving address, provide sequence address when the 1st component is decoded, provide interleaving address when the 2nd component is decoded, wherein, Need to be shifted accordingly according to the information that interleaving address reads;
(5)Output buffer module:Output buffer module RAM5 is used for storing decoding result and exporting.
(6)Logic control module:The control signal of whole decoder is produced, for being controlled to above-mentioned all modules, Piece selected control system including the Read-write Catrol of the fragmented storage of data to decode, ping-pong operation in first, second input buffer module; First, second external information memory module data are enabled, address control;The startup of sliding window decoding, termination in SISO decoding units, Whole decoding iteration control;The selection control of sequence address, interleaving address in interleaving/deinterleaving module;Hard decision module makes Can control;Storage and the segmentation output control of result is decoded in output buffer module.
If a signed fixed-point number is n according to the bit number of typecPosition, the 1st expression sign bit, low p positions are used for representing Fractional part, high nc- p-1 positions are denoted as (n for representing integer partc, p) fixed point quantization.The bit wide of data select to performance and Resource consumption has a great impact, and the present invention finds optimal data bit width, the data in the present invention by analyzing and emulating Bit wide adopts following form:
1)Through channel information bit and check bit fixed point format for (6,2),
2)The fixed point format of prior information for (8,2),
3)The fixed point format of α and β for (11,2),
4)The fixed point format of log-likelihood ratio for (12,2).
In Turbo code decoder, the order in time that calculates of two components decoding is completed, component decoder 1 and point The external information of other side is each needed as prior information between amount decoder 2, so the 1st component decoder and the decoding of the 2nd component Device is multiplexed same component SISO decoding modules.
The present invention specifically includes following steps based on the Turbo code high-speed coding implementation method parallel with adding window structure:
Step(One), the first input buffer module and the second input buffer module outside is continuously received in ping-pong operation mode The Frame of input, the Frame are data to decode yk, by data to decode ykIn information bit ysIt is divided into isometric N sections Information bit memory element RAM1 or RAM1 ' is stored in, by the first check bit y1p, the second check bit y2pIsometric N section is divided into respectively It is stored in check bit memory element RAM2 or RAM2 '.
Wherein information bit ysIt is divided into isometric N sections, the first check bit y1p, the second check bit y2pIsometric N sections are divided into, are had Body surface is shown as:Definition K is information bit length(Bit number), being represented with bit number, m=K/N is per section of length, and r is every paragraph header (Or tail)The overlap bit number of interpolation.General, the overlap bit number added between per section and per section is rsc encoder constraint length 5~8 times of degree can obtain preferable performance, be to simplify operation, choose fixed r=32bit, the beginning of first paragraph and most One section need not finally be added overlap bit afterwards.One frame data are uniformly divided into N sections, send into the 1st of N number of SISO decoding units the Segment length is m+r;Middle segment length is m+2r;Final stage length m+r+tail_bit, tail_bit represent information bit ys, One check bit y1p, the second check bit y2pTail bit.
First input buffer module has received a frame data yk, k ∈ [0,3K-1], by system position information ysBelieve with check bit Breath y1p、y2pIt is respectively divided, is wherein divided into information bit y of isometric N sectionssIt is expressed as follows:
Bs[1,…,N]={{y0,y1,...,yK/N-1},...,{y(N-1)K/N,y(N-1)K/N+1,...,yK-1}};
It is divided into the first check bit y of isometric N sections1p, the second check bit y2pIt is expressed as follows respectively:
B1p[1,…,N]={{yK,yK+1,...,y(N+1)K/N-1},...,{y(2N-1)K/N,y(2N-1)K/N+1,...,y2K-1}};
B2p[1,...,N]={{y2K,y2K+1,...,y(2N+1)K/N-1},...,{y(3N-1)K/N,y(3N-1)K/N+1,..., y3K-1}};
By the data { B for reconfigurings[1](k),Bs[2](k),….,Bs[N] (k) }, k ∈ [0, K/N-1] are deposited in order Enter information bit memory element RAM1;By the data { B for reconfiguring1p[1](k),B1p[2](k),....,B1p[N](k)},k∈ [0, K/N-1] is stored in the top half in check bit memory element RAM2 in order;By the data { B for reconfiguring2p[1](k), B2p[2](k),....,B2p[N] (k) }, k ∈ [0, K/N-1] are stored in the lower half in check bit memory element RAM2 in order Point, and initialization extrinsic information memory element RAM3 is 0.SISO decoding units proceed by the decoding of frame data, while second Input buffer module receives next frame data and stores buffering to which, and K is information bit length.
Step(Two), interleaving/deinterleaving module produce sequence address and interleaving address, N number of SISO decoding units are according to institute State sequence address and read information bit y for being divided into N sections in information bit memory element RAM1 respectivelysWith check bit memory element RAM2 In the first check bit y for being divided into N sections1p, the first component decoding of first time iteration is carried out, log-likelihood ratio information LLR is obtained With external information L for being divided into isometric N sections1e, by external information L1eThe second external information storage mould is stored according to the sequence address Block RAM 4.
It is illustrated in figure 3 SISO decoding units structural representation of the present invention;It is illustrated in figure 4 SISO decoding units of the present invention Work decoding flow chart, decodes flow process, each SISO decoding unit using sliding window inside N number of SISO decoding units of the invention Including LIFO memory RAMs 6 and RAM7, the concrete grammar of the first component decoding of first time iteration is as follows:
(1), within the 1st sliding window time, calculate current data section last sliding window forward state metric α, make Initial value for first sliding window forward state metric α of next data segment;Calculate current data first sliding window of section backward State measurement β, as after initial value from upper last sliding window of a data segment to state measurement β;
(2), within the 2nd sliding window time, information bit y in the first sliding windows, check bit yp, prior information LaDeposit Enter in the LIFO memory RAMs 6 that depth is 1 sliding window length SW;Forward state metric α of the 1st interior data of sliding is calculated, Store the LIFO memory RAMs 7 that depth is 1 sliding window length SW;The backward state measurement β 2 of the 2nd sliding window is calculated, As the effective original state being worth to state measurement β 1 after the 1st sliding window;
(3), within the 3rd sliding window time, the effective β 1 of backward state measurement for calculating first sliding window is worth, at the same from Information bit y of caching is read in LIFO memory RAMs 6s, check bit yp, prior information L1a(Iteration is 0 first), deposit from LIFO Forward state metric α is read in reservoir RAM7, calculates log-likelihood ratio LLR and external information L together1e
(4), the like, repeat step(2)、(3), translate until completing last sliding window in SISO decoding units Code.
Memory element adopt dual port RAM form, so SISO decoding units can carry out simultaneously forward state metric α and Backward state measurement trains the calculating of β value, further reduces decoding delay.
In SISO decoding unit workflow diagrams as shown in Figure 4, Cl steps include backward state measurement training β 2 and are worth Calculating;C2 steps include the calculating of forward state metric α value;C3 steps include the effective β 1 of backward state measurement be worth, logarithm Likelihood ratio LLR and external information value LeCalculate.
The last marginal value that backward state measurement training β 2 is calculated is worth the effective original state for calculating as β 1, and the values of β 1 are calculated It is used at once calculating log-likelihood ratio LLR after out, so without the need for storage.
N number of SISO decoding units read from the second external information memory module RAM4 according to the interleaving address respectively and divide afterwards External information L for isometric N sections1e, while read according to the interleaving address being divided into N sections in information bit memory element RAM1 Information bit ys, the second check bit y for being divided into N sections in check bit memory element RAM2 is read according to the sequence address2p, carry out The second component decoding of first time iteration, obtains log-likelihood ratio information LLR and is divided into external information L of isometric N sections2e, will be outer Information L2eFirst external information memory module RAM3 is stored according to the interleaving address.The second component interpretation method of first time iteration With the first component interpretation method.
For obtaining preferably decoding performance, calculated external information can be optimized by being multiplied by a weighter factor ω Max-Log-MAP decoding algorithms.The present invention takes ω=0.75, and is realized by shifting additive operation, to avoid using multiplier Resource.
Step(Three), N number of SISO decoding units are read in information bit memory element RAM1 respectively according to the sequence address Information bit y for being divided into N sectionssWith the first check bit y for being divided into N sections in check bit memory element RAM21p, while reading first External information L in external information memory module RAM32e, the first component decoding of second iteration is carried out, log-likelihood ratio letter is obtained Breath LLR and external information L' for being divided into isometric N sections1e, by external information L'1eThe second external information is stored according to the sequence address to deposit Storage module RAM4;N number of SISO decoding units read from the second external information memory module RAM4 according to the interleaving address and are divided into External information L' of long N sections1e, the information bit for being divided into N sections in information bit memory element RAM1 is read according to the interleaving address ys, the second check bit y for being divided into N sections in check bit memory element RAM2 is read according to the sequence address2p, carry out second The second component decoding of iteration, obtains log-likelihood ratio information LLR and is divided into external information L' of isometric N sections2e, by external information L'2eThe first external information memory module RAM3 is stored according to the interleaving address.The same step of the interpretation method of second iteration(Two).
Step(Four), the like, repeat step(Three), complete first point of the M time iteration of N number of SISO decoding units Amount decoding is decoded with second component, iteration ends, and the M is the iterationses for setting;
Step(Five), log-likelihood ratio information LLR that the decoding of the second component of the M time iteration obtained is in hard decision module In be deinterleaved process, and carry out hard decision by result is deinterleaved, hard decision result be stored in output caching mould finally In block RAM 5;SISO decoding units are waited or proceed by the decoding of next frame.
Embodiment
The present invention be directed to one group of K={ 1248,1408,1568 } defined in 3GPP TS212 standards, the code word of L=2880, Design is a kind of to be based on N(N=8)The parallel Turbo code decoder of individual SISO decoding units.
Input-buffer unit has received a frame data yk, k ∈ [0,3K-1], by system position information ysWith check bit information y1p、y2pIt is respectively divided into 8 isometric sections:Bs[1 ..., 8], B1p[1 ..., 8], B2p[1 ..., 8], by the data for reconfiguring {Bs[1](k),Bs[2](k),….,Bs}, [8] (k) k ∈ [0, K/8-1] are stored in information bit memory element RAM1 in order;Will weight Data { the B of Combination nova1p[1](k),B1p[2](k),....,B1p}, [8] (k) k ∈ [0, K/8-1] are stored in check bit in order and deposit Top half in storage unit RAM2;By the data { B for reconfiguring2p[1](k),B2p[2](k),....,B2p[8](k)},k∈ [0, K/8-1] is stored in the latter half in check bit memory element RAM2 in order.And initialization extrinsic information memory element RAM3 For 0, decoding unit proceeds by the decoding of frame data, while receiving next frame data stores buffering to which.
Init state metric parameter.To all subsegments, except the 1st subsegment indictment state and last subsegment shape of tail state known to Outward, the state of other subsegment head and the tail is all unknown.For known subsegment α(Or β)8 state s ∈ { 0,1,2 ..., 7 } just Initial value, it is 0 to make known state, and unknown state is -256;To unknown subsegment α(Or β)The initial value of 8 states, using overlap ratio The mode of special recursion is obtained, and overlaps bit alpha(Or β)It is that equiprobability occurs that the initial value of state is set to the state of 0, i.e., 8.
Then, start concurrently to carry out all subsegments the 1st iterative decoding.
1st component decoder is decoded.Information bit y is read from RAM1, RAM2, RAM3 in order respectivelys, the 1st verification Position y1p, prior information L1a(That is external information L2e, iteration is 0 first)Send into SISO decoding units and do the decoding of the 1st component, after decoding External information L for obtaining1eIt is stored in external information memory element RAM4 in order, as the prior information of the 2nd component decoder.
2nd component decoder is decoded.First, state measurement parameter is initialized.Then, from RAM1, RAM4 Information bit y is read respectively by interleaved orders, prior information L2a(That is external information L1e), and with RAM2 in the 2nd check bit y2pOne Play feeding SISO decoding units and do the decoding of the 2nd component, external information L obtained after decoding2eExternal information is stored in by deinterleaving order to deposit Storage unit RAM3, used as the prior information of the 1st component decoder.
Iterate maximum iteration time M set in advance is reached until iterationses.Wherein memory element is using double Mouth RAM forms, so SISO decoding modules can carry out the meter that forward state metric α and backward state measurement train β value simultaneously Calculate.
Iteration ends, output caching.After predetermined iterationses M is completed, to obtaining after the decoding of the 2nd component Log-likelihood ratio through deinterleaving carries out hard decision, and hard decision result is stored in output caching RAM5, decoding unit etc. Treat or proceed by the decoding of next frame.
Designed software program is realized using Xilinx XC6VLX240T chips, designed decoder work , up to 110MHz, effective information speed is up to 36Mbps for clock;It is 6024 that resource is consumed for taking slice numbers, is this chip The 16% of 37680 slice, takes 8 36k RAM, is the 2% of this resources of chip.
Give the Turbo code decoder performance curve that FPGA of the present invention is realized as shown in Figure 5, and provide theoretical curve and do Relatively, signal is modulated using BPSK, and information is that length is respectively K={ 1248,1408,1568 }, through rate-matched mould after coding The a length of L=2880 of block Turbo code.All simulation results are with signal to noise ratio (Eb/N0) and the bit error rate(BER)Relation curve form give Go out.From simulation curve as can be seen that the Turbo code decoder and theoretical curve of FPGA realizations are in 8 iteration, performance loss is not More than 0.15dB.
The above, optimal specific embodiment only of the invention, but protection scope of the present invention is not limited thereto, Any those familiar with the art the invention discloses technical scope in, the change or replacement that can readily occur in, Should all be included within the scope of the present invention.
The content not being described in detail in description of the invention belongs to the known technology of professional and technical personnel in the field.

Claims (5)

1. a kind of based on Turbo code high-speed coding implementation method parallel with adding window structure, it is characterised in that:By Turbo code High speed decoder realizes, the Turbo code high speed decoder include the first input buffer module, the second input buffer module, the One external information memory module RAM3, the second external information memory module RAM4, interleaving/deinterleaving module, SISO decoding modules, sentence firmly Certainly module and output buffer module RAM5, wherein the first input buffer module include that information bit memory element RAM1 and check bit are deposited Storage unit RAM2, the second input buffer module include information bit memory element RAM1 ' and check bit memory element RAM2 ', SISO Decoding module includes N number of SISO decoding units, implements process as follows:
Step (one), the first input buffer module and the second input buffer module continuously receive outside input in ping-pong operation mode Frame, the Frame be data to decode yk, by data to decode ykIn information bit ysIt is divided into isometric N sections to be stored in Information bit memory element RAM1 or RAM1 ', by the first check bit y1p, the second check bit y2pIt is divided into isometric N sections respectively to be stored in Check bit memory element RAM2 or RAM2 ';
Step (two), interleaving/deinterleaving module produce sequence address and interleaving address, and N number of SISO decoding units are according to described suitable Sequence address reads information bit memory element RAM1 or information bit y for being divided into N sections in RAM1 ' respectivelysWith check bit memory element The first check bit y for being divided into N sections in RAM2 or RAM2 '1p, the first component decoding of first time iteration is carried out, logarithm is obtained seemingly So than information LLR and external information L for being divided into isometric N sections1e, by external information L1eSecond is stored according to the sequence address External information memory module RAM4;N number of SISO decoding units are according to the interleaving address respectively from the second external information memory module RAM4 reads external information L for being divided into isometric N sections1e, while according to the interleaving address read information bit memory element RAM1 or Information bit y for being divided into N sections in RAM1 's, read in check bit memory element RAM2 or RAM2 ' according to the sequence address It is divided into the second check bit y of N sections2p, the second component decoding of first time iteration is carried out, log-likelihood ratio information LLR is obtained and is divided External information L for isometric N sections2e, by external information L2eFirst external information memory module RAM3 is stored according to the interleaving address;
Step (three), N number of SISO decoding units read information bit memory element RAM1 or RAM1 ' respectively according to the sequence address In information bit y for being divided into N sectionssWith the first check bit y for being divided into N sections in check bit memory element RAM2 or RAM2 '1p, with When read external information L in the first external information memory module RAM32e, the first component decoding of second iteration is carried out, it is right to obtain Number likelihood ratio information LLR and external information L' for being divided into isometric N sections1e, by external information L'1eIs stored according to the sequence address Two external information memory modules RAM4;N number of SISO decoding units are according to the interleaving address from the second external information memory module RAM4 Read external information L' for being divided into isometric N sections1e, read in information bit memory element RAM1 or RAM1 ' according to the interleaving address Information bit y for being divided into N sectionss, read according to the sequence address and be divided into N sections in check bit memory element RAM2 or RAM2 ' The second check bit y2p, the second component decoding of second iteration is carried out, log-likelihood ratio information LLR is obtained and is divided into isometric External information L' of N sections2e, by external information L'2eThe first external information memory module RAM3 is stored according to the interleaving address;
Step (four), the like, repeat step (three), the first component for completing the M time iteration of N number of SISO decoding units are translated Code is decoded with second component, iteration ends, and the M is the iterationses for setting;
Step (five), log-likelihood ratio information LLR that the decoding of the second component of the M time iteration is obtained is entered in hard decision module Row deinterleaving is processed, and carries out hard decision by result is deinterleaved, and hard decision result is stored in output buffer module finally In RAM5;
Wherein N, M are positive integer, and N >=4, M >=6.
2. according to claim 1 a kind of based on Turbo code high-speed coding implementation method parallel with adding window structure, which is special Levy and be:Information bit y in step (one)sIt is divided into isometric N sections, the first check bit y1p, the second check bit y2pIt is divided into Long N sections, are embodied as:Definition K is information bit length, is represented with bit number, and m=K/N is per section of length, and r is per section The overlap bit number that head or tail is added, frame data are uniformly divided into N sections, and the 1st segment length for sending into N number of SISO decoding units is m+r;Middle segment length is m+2r;Final stage length m+r+tail_bit, tail_bit represent information bit ys, the first check bit y1p, the second check bit y2pTail bit number.
3. according to claim 1 a kind of based on Turbo code high-speed coding implementation method parallel with adding window structure, which is special Levy and be:Flow process is decoded using sliding window inside N number of SISO decoding units, the first component decoding of each iteration is carried out With second component decoding realize that process is as follows, wherein each SISO decoding unit includes LIFO memory RAMs 6 and RAM7:
Step (one), within the first sliding window time, calculate current data section last sliding window forward state metric α, Initial value as first sliding window forward state metric α of next data segment;After calculating current data first sliding window of section To state measurement β, as after initial value from upper last sliding window of a data segment to state measurement β;
Step (two), within the second sliding window time, information bit y in the first sliding windows, check bit yp, prior information La It is stored in the LIFO memory RAMs 6 that depth is sliding window length SW;Calculate the forward-facing state of data in first sliding window Tolerance α, stores to the LIFO memory RAMs 7 that depth is sliding window length SW;Calculate the backward state of second sliding window Tolerance β, as after effective original state from first sliding window to state measurement β value;
Step (three), the effective β value of backward state measurement within the 3rd sliding window time, calculating first sliding window, while Information bit y of caching is read from LIFO memory RAMs 6s, check bit yp, prior information La, read from LIFO memory RAMs 7 Forward state metric α is taken, log-likelihood ratio LLR and external information L is calculated togethere
Step (four), the like, repeat step (two), (three), until completing last sliding window in SISO decoding units Decoding.
4. according to claim 1 a kind of based on Turbo code high-speed coding implementation method parallel with adding window structure, which is special Levy and be:The meter of forward state metric α and backward state measurement β value is carried out inside N number of SISO decoding units simultaneously can Calculate, further reduce decoding delay.
5. according to claim 1 a kind of based on Turbo code high-speed coding implementation method parallel with adding window structure, which is special Levy and be:Also include Logic control module, for being controlled to all modules of Turbo code high speed decoder, including first, The piece selected control system of the Read-write Catrol of the fragmented storage of data to decode, ping-pong operation in two input buffer modules;Outside first, second Information storage module data are enabled, address control;The startup of sliding window decoding, termination in SISO decoding units, whole decoding change Generation control;The selection control of sequence address, interleaving address in interleaving/deinterleaving module;The enable control of hard decision module;Output Storage and the segmentation output control of result is decoded in cache module.
CN201410105878.1A 2014-03-20 2014-03-20 A kind of based on Turbo code high-speed coding implementation method parallel with adding window structure Active CN103873073B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410105878.1A CN103873073B (en) 2014-03-20 2014-03-20 A kind of based on Turbo code high-speed coding implementation method parallel with adding window structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410105878.1A CN103873073B (en) 2014-03-20 2014-03-20 A kind of based on Turbo code high-speed coding implementation method parallel with adding window structure

Publications (2)

Publication Number Publication Date
CN103873073A CN103873073A (en) 2014-06-18
CN103873073B true CN103873073B (en) 2017-03-15

Family

ID=50911254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410105878.1A Active CN103873073B (en) 2014-03-20 2014-03-20 A kind of based on Turbo code high-speed coding implementation method parallel with adding window structure

Country Status (1)

Country Link
CN (1) CN103873073B (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105337685B (en) * 2014-07-28 2018-12-07 华为技术有限公司 A kind of figure group detection method and its device
CN104702294B (en) * 2015-03-26 2018-04-27 北京思朗科技有限责任公司 A kind of asymmetric imitate of bit wide of Turbo decoders deposits interface
CN106712778B (en) * 2015-08-05 2020-05-26 展讯通信(上海)有限公司 Turbo decoding device and method
WO2017127973A1 (en) * 2016-01-25 2017-08-03 Qualcomm Incorporated Generation of polar codes with a variable block length utilizing puncturing
CN107302371B (en) * 2016-04-14 2020-10-27 联芯科技有限公司 Turbo code decoding system and decoding method
CN107370555B (en) * 2016-05-12 2020-03-17 博通集成电路(上海)股份有限公司 Error decision method and device
CN107453761B (en) * 2016-05-31 2021-04-06 展讯通信(上海)有限公司 Turbo code decoding method and Turbo code decoder
CN108270452B (en) * 2016-12-30 2021-07-20 芯原微电子(成都)有限公司 Turbo decoder and decoding method
CN108736900B (en) * 2017-04-21 2021-08-24 展讯通信(上海)有限公司 Turbo code decoding control method and device, computer readable medium and terminal
CN107565983B (en) * 2017-09-08 2020-08-11 广东工业大学 Turbo code decoding method and device
CN111147084B (en) * 2018-11-06 2023-12-19 北京忆芯科技有限公司 Multichannel parallel decoder and decoding method thereof
CN111525980B (en) * 2019-02-01 2021-09-17 华为技术有限公司 Decoding method and device
CN110601792B (en) * 2019-07-31 2022-02-01 苏州门海微电子科技有限公司 Front-end coding and decoding system and method for broadband power carrier communication
CN112332868A (en) * 2020-10-20 2021-02-05 陕西航天技术应用研究院有限公司 Turbo parallel decoding method based on DVB-RCS2
CN112398487A (en) * 2020-12-14 2021-02-23 中科院计算技术研究所南京移动通信与计算创新研究院 Implementation method and system for reducing complexity of Turbo parallel decoding
CN113055027B (en) * 2021-03-18 2022-05-13 北京得瑞领新科技有限公司 Variable bit width LDPC encoding method, encoder, SSD and storage medium
CN116881183A (en) * 2023-09-06 2023-10-13 北京融为科技有限公司 Method and device for processing decoded data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0759665B1 (en) * 1995-08-21 2002-07-24 Alcatel Method for interleaving data frames, forward error correcting device and modulator including such a device
JP3898574B2 (en) * 2002-06-05 2007-03-28 富士通株式会社 Turbo decoding method and turbo decoding apparatus
CN102064838B (en) * 2010-12-07 2014-01-15 西安电子科技大学 Novel conflict-free interleaver-based low delay parallel Turbo decoding method
CN102270993B (en) * 2011-03-24 2013-03-27 中国人民解放军国防科学技术大学 Turbo decoder for interleaving and de-interleaving simultaneously

Also Published As

Publication number Publication date
CN103873073A (en) 2014-06-18

Similar Documents

Publication Publication Date Title
CN103873073B (en) A kind of based on Turbo code high-speed coding implementation method parallel with adding window structure
May et al. A 150Mbit/s 3GPP LTE turbo code decoder
CN101026439B (en) Decoding method for increasing Turbo code decoding rate
CN103269229B (en) A kind of mixed iteration interpretation method of LDPC-RS two dimension product code
CN103354483B (en) General high-performance Radix-4SOVA decoder and interpretation method thereof
US6732327B1 (en) Scaled-feedback turbo decoder
CN105634508A (en) Realization method of low complexity performance limit approximate Turbo decoder
Weithoffer et al. On the applicability of trellis compression to Turbo-Code decoder hardware architectures
RU2571597C2 (en) Turbocode decoding method and device
Shaheen et al. Performance analysis of high throughput map decoder for turbo codes and self concatenated convolutional codes
CN109660265B (en) Self-adaptive dual-binary Turbo code encoding and decoding method based on DVB-RCS standard
CN1157883C (en) Maximal posterior probability algorithm of parallel slide windows and its high-speed decoder of Turbo code
CN103812510A (en) Decoding method and device
Halter et al. Reconfigurable signal processor for channel coding and decoding in low SNR wireless communications
CN103595424A (en) Component decoding method, decoder, Turbo decoding method and Turbo decoding device
CN107147401A (en) Based on the interpretation method for simplifying dual binary turbo code metric
CN107196666B (en) Rapid verification method for universal Turbo codec
CN103701475A (en) Decoding method for Turbo codes with word length of eight bits in mobile communication system
Lin et al. High-throughput 12-mode CTC decoder for WiMAX standard
Lim et al. An efficient sliding window algorithm using adaptive-length guard window for turbo decoders
CN106788899A (en) To border initial method after highly reliable Turbo decoders
US20160204803A1 (en) Decoding method for convolutionally coded signal
Mathana et al. FPGA implementation of high speed architecture for Max Log Map turbo SISO decoder
CN115514377A (en) Turbo decoding circuit and decoding method
Le Design of next-generation Tb/s turbo codes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant