CN102684710B - Viterbi decoding method of tail-biting convolutional code based on SSE (Streaming Simd Extensions) - Google Patents

Viterbi decoding method of tail-biting convolutional code based on SSE (Streaming Simd Extensions) Download PDF

Info

Publication number
CN102684710B
CN102684710B CN201210147267.4A CN201210147267A CN102684710B CN 102684710 B CN102684710 B CN 102684710B CN 201210147267 A CN201210147267 A CN 201210147267A CN 102684710 B CN102684710 B CN 102684710B
Authority
CN
China
Prior art keywords
individual
metric
state
value
current time
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.)
Expired - Fee Related
Application number
CN201210147267.4A
Other languages
Chinese (zh)
Other versions
CN102684710A (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201210147267.4A priority Critical patent/CN102684710B/en
Publication of CN102684710A publication Critical patent/CN102684710A/en
Application granted granted Critical
Publication of CN102684710B publication Critical patent/CN102684710B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Error Detection And Correction (AREA)

Abstract

The invention discloses a Viterbi decoding method of a tail-biting convolutional code based on SSE (Streaming Simd Extensions) and relates to the technical field of wireless communication. The Viterbi decoding method comprises the following steps of: 1, taking code sequences of original receiving data in front t time and final t time to respectively copy and splice to a tail part and a head part of the original receiving data; respectively copying n0 single-precision floating point values in one code section of each moment for receiving the code sequences for m0 parts and placing into an M-bit register; S2, respectively carrying out parallel computation on all possible states in the current moment under the condition of assuming that an input is 0 and 1 by coding at the moment to obtain a branch metric; and adding the branch metric with a metric of a storage path of the last moment to obtain the metric of the current moment; S3, selecting a selection path of the current moment; and S4, selecting the state with the maximum metric as a final decoding state; and carrying out backtracking judgment. The method disclosed by the invention obviously improves the decoding speed and shortens the signal processing time.

Description

Tail-biting convolutional code Viterbi interpretation method based on SSE
Technical field
The present invention relates to wireless communication technology field, relate in particular to a kind of tail-biting convolutional code Viterbi interpretation method based on SSE.
Background technology
In the evolution of the communication technology, people have proposed very high requirement to the accuracy of communication, for this reason, all adopt channel coding technology in data transmission procedure.Because convolution coding is simple, function admirable is widely adopted.Convolution code is divided into two kinds, and one is zero tail convolution code (n 0, k 0, m+1), after the end-of-encode of information bit position, also to input m individual 0; Another kind is tail-biting convolutional code, before coding, carrys out initialization encoder for convolution codes with last m bit of information bit, has identical initial state and done state when coding.Input m 0 after the position end-of-encode of every segment information because tail-biting convolutional code not be used in, so code efficiency is higher, in next generation communication system, be widely adopted.For example, in timesharing Long Term Evolution (Time Division Long Term Evolution, TD-LTE), its downlink broadcast channel and control channel all adopt tail-biting convolutional code to carry out chnnel coding.
Although tail-biting convolutional code code efficiency is high, it starts with done state all not unknown, thus its decoding algorithm than zero tail convolution code complexity many.In order to reduce complexity, generally adopt modified model circulation Viterbi (Viterbi) decoding algorithm to carry out decoding, its algorithm idea is: the codeword sequence of getting in front t time of former reception data copies the afterbody that is spliced to former reception data; Get codeword sequence in last t time of former reception data and copy to the stem of former reception data, all states are regarded as to initial sum state of termination and carry out Viterbi decoding.
Viterbi algorithm is a kind of maximum-likelihood decoding, in decode procedure, will travel through all possible state, so its computation complexity is very high.For example (3,1,7) tail-biting convolutional code, in the time using Viterbi algorithm to carry out decoding, within each time, travel through 64 kinds of states, and so large operand has proposed very high requirement to the processing speed of terminal.Existing implementation method great majority are the Jia-ratio-choosings that adopt in single instruction single data stream (Single Instruction Single Data, SISD) serial process Viterbi decoding algorithm, travel through each state.This method efficiency is low, and the time delay that communication is brought is very large, is only applicable to low speed, low capacity, the communication system low to requirement of real-time.But along with the development of the communication technology, the communication of low speed, low capacity obviously can not meet people's demand, people more wish the communication system that speed is high, real-time is good.In the new TD-LTE standard proposing, its descending peak rate is 100Mbps, and up peak rate is 50Mbps, and this conversion speed to terminal is a huge challenge.Since Intel Company releases single-instruction multiple-data stream (SIMD) expansion (Streaming SIMD Extensions, SSE) afterwards, people begin one's study gradually and utilize SSE to carry out algorithm optimization.SSE is a set of special instruction set for single-instruction multiple-data architecture design, and it can realize the parallel processing of data, and efficiency is high.For example, on SSE use processor, the register of 128, once can realize the parallel computation of 4 pairs of single precision floating datums, and its speed is 4 times of SISD.For example (3,1,7) tail-biting convolutional code, in the time using Viterbi algorithm to carry out decoding, utilizes SSE to be optimized Viterbi algorithm, within each time, travel through 64 kinds of states, has only needed circulation 16 times just, than process fast 4 times with SISD.Visible, utilize SSE to be optimized algorithm, can improve the speed of signal processing, reduce time delay, meet modern two-forty, high capacity communication.
Summary of the invention
(1) technical problem that will solve
The technical problem to be solved in the present invention is: a kind of can speed fast, tail-biting convolutional code Viterbi interpretation method based on SSE that signal processing delay is few is provided.
(2) technical scheme
For addressing the above problem, the invention provides a kind of tail-biting convolutional code Viterbi interpretation method based on SSE, the method comprising the steps of:
S1. the codeword sequence of getting in the front t time of former reception data copies the afterbody that is spliced to former reception data, and the codeword sequence of getting in the last t time of former reception data copies the stem that is spliced to former reception data, by the n in a code section in each reception codeword sequence moment 0individual single-precision floating point value copies respectively m 0part, being stored in respectively in the register of a M position, each register is deposited m 0individual identical value;
S2. for each reception codeword sequence moment, in current time to all possible states, the in the situation that of being input as 0 and 1 respectively in the time of hypothesis current time coding, the data that receive according to tail-biting convolutional code coding output valve and current time, parallel computation branched measurement value, and the metric in the branched measurement value calculating and previous moment retention path is added to the metric that obtains current time, calculate m at every turn 0individual metric, m 0for the figure place of register is divided by the shared figure place of single precision floating datum;
S3. the metric calculating for every twice is walked abreast relatively, routing footpath is stayed as current time in the path of selecting to have larger metric;
S4. moment in the end, the state of selecting to have maximal metric value is decoding state of termination, recalls judgement.
Preferably, the described t time is 5m-7m, wherein, and the encoding constraint length that m is convolution code.
Preferably, step S2 further comprises:
S2.1 is to each moment, by 2 mindividual state is divided into 2 m/ (2m 0) individual piece, for each piece, be divided into two groups by the odd even of its state;
The in the situation that S2.2 being input as 0 in the time of hypothesis current time coding, for the m of each group 0individual state, the data that receive according to tail-biting convolutional code coding output valve and current time, calculate m 0the value of individual branch metric, and put it in the register of a M position;
S2.3 by with the m of each group described in step S2.2 0the metric of the connected previous moment of individual state is put in the register of a M position, the m obtaining with step S2.2 0individual branch metric is parallel to be added, and is input as the m of current time in 0 situation while obtaining encoding 0individual metric;
The in the situation that S2.4 being input as 1 in the time of hypothesis current time coding, for the m of each group 0individual state, the data that receive according to tail-biting convolutional code coding output valve and current time, calculate m 0the value of individual branch metric, and put it in the register of a M position;
S2.5 by with the m of each group described in step S2.4 0the connected previous moment of individual state stays the metric in routing footpath to be put in the register of a M position, the m obtaining with step S2.4 0individual branch metric is parallel to be added, and is input as the m of current time in 1 situation while obtaining encoding 0individual metric.
Preferably, described m 0the computational methods of the value of individual branch metric are: by described m 0individual state is corresponding to be input as 0the code section of the coding output in situation highest order be arranged in reverse order by this m 0individual value is put in the register of a M position, with the m depositing in step S1 0individual single-precision floating point value is done and computing, and the value of other in a code section is calculated according to this rule, will obtain m with computing whole results added afterwards 0individual branched measurement value.
Preferably, described tail-biting convolutional code coding output valve, according to the generator polynomial matrix of convolution code, calculates according to the coding principle of tail-biting convolutional code.
Preferably, described m 0the computational methods of the value of individual branch metric are: by m 0the corresponding code section being input as the coding output in 1 situation of individual state highest order be arranged in reverse order into this value can calculated in advance out, by this m 0individual value be put in the register of a M position with step S1 in the m that deposits 0individual single-precision floating point value l 0do and computing, the value of other in a code section is calculated according to this rule.And then will obtain m with computing results added afterwards 0individual branched measurement value.
Preferably, step S3 further comprises:
S3.1, in the situation that hypothesis current time when coding is input as 0, is put into the odd number group of each piece and even number set respectively in the register of M position, walk abreast relatively, selection current time stay routing footpath.
The in the situation that S3.2 being input as 1 in the time of hypothesis current time coding, the odd number group of each piece and even number set are put into respectively in the register of a M position, walk abreast relatively, select this moment to stay routing footpath.
Preferably, in step S3.1, select the method for staying routing footpath of current time to be: the in the situation that of being input as 0 while coding in this moment of hypothesis, the NextState of current state can only be 0~2 m-1in-1 one, and meeting: the preceding state of state a can only be (a < < 1, (a < < 1) | 1) the two one of them, a ∈ [0,2 m-1-1], a round numbers, a < < 1 represents that a moves to left one, when storing path, preserves 0 or 1 after relatively, selects higher value to preserve while preserving metric.
Preferably, in step S3.2, select the method for staying routing footpath of current time to be: the NextState of current state can only be [2 m-1, 2 m-1] in one, and meeting: the preceding state of state a can only be (a < < 1, (a < < 1) | 1) the two one of them, a ∈ [2 m-1, 2 m-1], a round numbers, if a moves to left after 1, it is worth not [2 m-1, 2 m-1], in, the highest order of a is removed, relatively after when storing path, preserve 0 or 1, while preserving metric, select higher value to preserve.
Preferably, in step S4, in the time recalling judgement, obtained state a and 2 m-1relatively, when a is more than or equal to 2 m-1time, be judged to 1, otherwise be judged to 0.
(3) beneficial effect
Tail-biting convolutional code Viterbi interpretation method based on SSE of the present invention adopts parallel each calculating all to adopt the processing of M parallel-by-bit, has significantly improved the speed of decoding, has shortened signal processing time.
Brief description of the drawings
Fig. 1 is the tail-biting convolutional code Viterbi interpretation method flow chart based on SSE according to one embodiment of the present invention.
Embodiment
The present invention propose the tail-biting convolutional code Viterbi interpretation method based on SSE, by reference to the accompanying drawings and embodiment be described in detail as follows.
As shown in Figure 1, comprise step according to the tail-biting convolutional code Viterbi interpretation method based on SSE of one embodiment of the present invention:
S1. the codeword sequence of getting in the front t time of former reception data copies the afterbody that is spliced to former reception data, the codeword sequence of getting in the last t time of former reception data copies the stem that is spliced to former reception data, in each reception code word sequence time, suppose that the code length in the code section in this moment is n 0, by n 0individual single-precision floating point value copies m 0(m 0for the figure place of register is divided by the shared figure place of single precision floating datum) part, be stored in respectively n 0in the register of individual M position, each register is deposited m 0individual identical value, the t time is 5m-7m, wherein, the encoding constraint length that m is convolution code.
S2. for each reception codeword sequence moment, at current time, to all possible states, in the situation that in hypothesis current time when coding, is input as 0, according to the generator polynomial matrix of convolution code, according to the coding principle calculated in advance of the tail-biting convolutional code output valve that goes out to encode, according to the coding output valve of calculating and the data that receive of current time, adopt parallel computation branched measurement value, then be added with the metric in the retention path of previous moment the metric that obtains current time, calculate m at every turn 0individual metric; The in the situation that of being input as 1 while coding in this moment of hypothesis, according to the coding output valve of calculated in advance and the data that receive, adopt parallel computation branched measurement value, then be added with the metric in previous moment retention path the metric that obtains current time, calculate m at every turn 0individual metric.
S3. the metric calculating for every twice is walked abreast relatively, routing footpath is stayed as this moment in the path of selecting to have larger metric.
S4. in the in the end moment, the state that selection has maximal metric value is decoding state of termination, recalls judgement.
Step S2 further comprises:
S2.1 is to each moment, by 2 mindividual state is divided into 2 m/ (2m 0) individual piece, for each piece, be divided into two groups by the odd even of its state.
The in the situation that S2.2 being input as 0 in the time of hypothesis current time coding, for each group, there is m 0individual state.To this m 0individual state, according to the generator polynomial matrix of convolution code, according to the coding output valve of the coding principle calculated in advance of tail-biting convolutional code and data that current time receives, calculates m 0the value of individual branch metric, puts it in the register of a M position.Order for according to the generator polynomial matrix of convolution code, the n of the coding output according to certain state of the coding principle calculated in advance of tail-biting convolutional code in the situation that current time hypothesis coding input is 0 0individual value, for the code section receiving, its branched measurement value equals due in step S1, copy and be stored in n 0in the register of individual M position.According to above-mentioned rule, calculate m 0the method of the value of individual branch metric is:
First by m 0the corresponding code section being input as the coding output in 0 situation of individual state highest order be arranged in reverse order into this value can be according to the generator polynomial matrix of convolution code, according to the coding principle calculated in advance of tail-biting convolutional code out, and by this m 0individual value be put in the register of a M position with step S1 in the m that deposits 0individual single-precision floating point value l 0do and computing, the value of other in a code section is calculated according to this rule.And then will obtain m with computing results added afterwards 0individual branched measurement value.
S2.3 by with the m of every group 0the metric of the connected previous moment of individual state is put in the register of a M position, the m obtaining with step S2.2 0individual branch metric is parallel to be added, and obtains the m of current time in hypothesis input 0 situation 0individual metric.
The in the situation that S2.4 being input as 1 while coding in this moment of hypothesis, for each group, there is m 0individual state, according to the generator polynomial matrix of convolution code, according to the coding output valve of the coding principle calculated in advance of tail-biting convolutional code and the data that receive, calculates according to the rule of introducing in step S2.2, obtains m 0the value of individual branch metric, puts it in the register of a M position.
S2.5 will with this m 0the connected previous moment of individual state stays the metric in routing footpath to be put in the register of a M position, the m obtaining with step S2.4 0individual branch metric is parallel to be added, and obtains the m of current time in hypothesis input 1 situation 0individual metric.
Step S3 further comprises:
The in the situation that S3.1 being input as 0 in the time of hypothesis current time coding, the odd number group of first and even number set are put into respectively in the register of M position, then walk abreast relatively, and select current time by following rule stay routing footpath, each remaining piece is all according to this rule comparison.
In the time that tail-biting convolutional code is encoded, the memory of data input pin is regarded as to the highest order of state a, the in the situation that of being input as 0 while coding in this moment of hypothesis, the NextState of current state can only be 0~2 m-1in-1 one, and meet, the preceding state of state a can only be (a < < 1, (a < < 1) | 1) the two one of them, here a ∈ [0,2 m-1-1], a round numbers, a < < 1 represents that a moves to left one.The in the situation that of being input as 1 while coding in this moment of hypothesis, the NextState of its current state can only be [2 m-1, 2 m-1] in one, and meeting, the preceding state of state a can only be (a < < 1, (a < < 1) | 1) the two one of them, a ∈ [2 here m-1, 2 m-1], a round numbers, if a moves to left after 1, it is worth not [2 m-1, 2 m-1], in, the highest order of a is removed.So after relatively when storing path, only need to preserve 0 or 1 just, select higher value to preserve while preserving metric
The in the situation that S3.2 being input as 1 in the time of hypothesis current time coding, the odd number group of first and even number set are put into respectively in the register of a M position, then walk abreast relatively, and select this moment to stay routing footpath according to the rule of introducing in step S3.2, each remaining piece is all according to this rule comparison.
In step S4, in the time recalling judgement, obtained state a and 2 m-1relatively, when a is more than or equal to 2 m-1time, be judged to 1, otherwise be judged to 0.
Further illustrate method of the present invention by concrete example below.The method comprising the steps of:
A1. a code sequence replicating of getting in front 5m time of former reception data is connected to former reception data backmost; Get code sequence replicating in last 5m time of former reception data and be connected to the foremost of former reception data, all states are regarded as to beginning and done state.In each reception code word sequence time, by n in a code section in this moment 0individual single-precision floating point value copies 4 parts, is stored in respectively n 0in the register of individual 128, each register is deposited 4 identical values.
A2. to each moment, by 2 mindividual state is divided into 2 m/ 8 pieces, for each piece, are divided into two group for strange for even by its state.
A3. for 4 states of each group, in the situation that this of hypothesis is input as 0 when coding in moment, according to the coding output valve of calculated in advance, by following rule calculating, obtain the value of 4 branch metrics, put it in the register of 128.
Order for certain state of calculated in advance is carved the n of the coding output in the situation that hypothesis coding input is 0 at this moment 0individual value, for the code section receiving, its branched measurement value equals first by 4 corresponding code sections being input as the coding output in 0 situation of state highest order be arranged in reverse order this value can calculated in advance out, these 4 values are put in the register of 128 with steps A 1 in 4 l depositing 0do and computing, the value of other in a code section is calculated according to this rule.And then will obtain 4 branched measurement values with computing results added afterwards.
A4. the metric of the previous moment being connected with these 4 states is put in the register of 128, with parallel addition of 4 branch metrics that steps A 3 obtains, obtains 4 metrics in hypothesis input 0 situation, current time.
A5. in the situation that this of hypothesis is input as 1 when coding, for each group, there are 4 states in moment, according to the coding output valve of calculated in advance, calculate according to the rule of introducing in steps A 3, obtain the value of 4 branch metrics, put it in the register of 128.
A6. the previous moment being connected with these 4 states is stayed the metric in routing footpath to be put in the register of 128, with parallel addition of 4 branch metrics that steps A 5 obtains, obtained 4 metrics in hypothesis input 1 situation, current time.
A6. the in the situation that of being input as 0 while coding in this moment of hypothesis, the odd number group of first (1,3,5,7) and even number set (2,4,6,8) be put into respectively in the register of 128, then walk abreast relatively, and select this moment by following rule stay routing footpath, each remaining piece is all according to this rule comparison.
In the time that tail-biting convolutional code is encoded, the memory of data input pin is regarded as to the highest order of state a, the in the situation that of being input as 0 while coding in this moment of hypothesis, the NextState of its current state can only be 0~2 m-1in-1 one, and meet, the preceding state of state a can only be (a < < 1, (a < < 1) | 1) the two one of them, here a ∈ [0,2 m-1-1], a round numbers, a < < 1 represents that a moves to left one.The in the situation that of being input as 1 while coding in this moment of hypothesis, the NextState of its current state can only be [2 m-1, 2 m-1] in one, and meeting, the preceding state of state a can only be (a < < 1, (a < < 1) | 1) the two one of them, a ∈ [2 here m-1, 2 m-1], a round numbers, if a moves to left after 1, it is worth not [2 m-1, 2 m-1], in, the highest order of a is removed.So after relatively when storing path, only need to preserve 0 or 1 just, select higher value to preserve while preserving metric
A7. the in the situation that of being input as 1 while coding in this moment of hypothesis, the odd number group of first (1,3,5,7) and even number set (2,4,6,8) be put into respectively in the register of 128, then walk abreast relatively, and select this moment to stay routing footpath according to the rule of introducing in previous step, each remaining piece is all according to this rule comparison.
A8. in the in the end moment, the state that selection has maximal metric value is decoding state of termination, recalls judgement, in the time recalling judgement, obtained state a and 2 m-1relatively, when a is more than or equal to 2 m-1time, be judged to 1, otherwise be judged to 0.
Choose the tail-biting convolutional code of (3,1, the 7) form specifying in TD-LTE agreement and decode according to the method described above, coding number is respectively 100,400,800.Use T before optimizationrepresent to use the time of traditional Viterbi interpretation method decoding, T after optimizationrepresent to use the time of Viterbi interpretation method of the present invention decoding, use T optimize multiple=T before optimization/ T after optimizationrepresent to optimize multiple.In test, having chosen respectively 100,400 and 800 bits encodes.For than being easier to find out result, when each decoding, repeat decoding 10000 times, then calculate the time difference before and after the operation of repetition decoding 10000 times, each test was averaging 1000 time differences, and the result obtaining is as shown in table 1.As can be seen from Table 1, no matter coding number is 100,400 or 800, the time before its optimization is nearly 10 times after optimizing.
The contrast of table 1 experimental result
Described in the embodiment of the present invention, utilize the tail-biting convolutional code Viterbi interpretation method based on SSE, different from traditional method, adopt concurrent operation, greatly reduce decoding time.
Above execution mode is only for illustrating the present invention; and be not limitation of the present invention; the those of ordinary skill in relevant technologies field; without departing from the spirit and scope of the present invention; can also make a variety of changes and modification; therefore all technical schemes that are equal to also belong to category of the present invention, and scope of patent protection of the present invention should be defined by the claims.

Claims (10)

1. the tail-biting convolutional code Viterbi interpretation method based on SSE, is characterized in that, the method comprising the steps of:
S1. the codeword sequence of getting in the front t time of former reception data copies the afterbody that is spliced to former reception data, and the codeword sequence of getting in the last t time of former reception data copies the stem that is spliced to former reception data, by the n in a code section in each reception codeword sequence moment 0individual single-precision floating point value copies respectively m 0part, being stored in respectively in the register of a M position, each register is deposited m 0individual identical value, m 0for the figure place of register is divided by the shared figure place of single precision floating datum;
S2. for each reception codeword sequence moment, in current time to all possible states, the in the situation that of being input as 0 and 1 respectively in the time of hypothesis current time coding, the data that receive according to tail-biting convolutional code coding output valve and current time, parallel computation branched measurement value, and the metric in the branched measurement value calculating and previous moment retention path is added to the metric that obtains current time, calculate m at every turn 0individual metric;
S3. the metric calculating for every twice is walked abreast relatively, routing footpath is stayed as current time in the path of selecting to have larger metric;
S4. moment in the end, the state of selecting to have maximal metric value is decoding state of termination, recalls judgement.
2. the method for claim 1, is characterized in that, the described t time is 5m-7m, wherein, and the encoding constraint length that m is convolution code.
3. method as claimed in claim 2, is characterized in that, step S2 further comprises:
S2.1 is to each moment, by 2 mindividual state is divided into 2 m/ (2m 0) individual piece, for each piece, be divided into two groups by the odd even of its state;
The in the situation that S2.2 being input as 0 in the time of hypothesis current time coding, for the m of each group 0individual state, the data that receive according to tail-biting convolutional code coding output valve and current time, calculate m 0the value of individual branch metric, and put it in the register of a M position;
S2.3 by with the m of each group described in step S2.2 0the metric of the connected previous moment of individual state is put in the register of a M position, the m obtaining with step S2.2 0individual branch metric is parallel to be added, and is input as the m of current time in 0 situation while obtaining encoding 0individual metric;
The in the situation that S2.4 being input as 1 in the time of hypothesis current time coding, for the m of each group 0individual state, the data that receive according to tail-biting convolutional code coding output valve and current time, calculate m 0the value of individual branch metric, and put it in the register of a M position;
S2.5 by with the m of each group described in step S2.4 0the connected previous moment of individual state stays the metric in routing footpath to be put in the register of a M position, the m obtaining with step S2.4 0individual branch metric is parallel to be added, and is input as the m of current time in 1 situation while obtaining encoding 0individual metric.
4. method as claimed in claim 3, is characterized in that, described tail-biting convolutional code coding output valve, according to the generator polynomial matrix of convolution code, calculates according to the coding principle of tail-biting convolutional code.
5. method as claimed in claim 3, is characterized in that, described m 0the computational methods of the value of individual branch metric are:
By described m 0the corresponding code section being input as the coding output in 0 situation of individual state highest order be arranged in reverse order by this m 0individual value is put in the register of a M position, with the m depositing in step S1 0individual single-precision floating point value is done and computing, and the value of other in a code section is calculated according to this rule, will obtain m with computing whole results added afterwards 0individual branched measurement value.
6. method as claimed in claim 3, is characterized in that, described m 0the computational methods of the value of individual branch metric are:
By m 0the corresponding code section being input as the coding output in 1 situation of individual state highest order be arranged in reverse order into this value can calculated in advance out, by this m 0individual value be put in the register of a M position with step S1 in the m that deposits 0individual single-precision floating point value l 0do and computing, the value of other in a code section is calculated according to this rule.And then will obtain m with computing results added afterwards 0individual branched measurement value.
7. the method for claim 1, is characterized in that, step S3 further comprises:
S3.1, in the situation that hypothesis current time when coding is input as 0, is put into the odd number group of each piece and even number set respectively in the register of M position, walk abreast relatively, selection current time stay routing footpath.
The in the situation that S3.2 being input as 1 in the time of hypothesis current time coding, the odd number group of each piece and even number set are put into respectively in the register of a M position, walk abreast relatively, select this moment to stay routing footpath.
8. method as claimed in claim 7, is characterized in that, in step S3.1, selects the method for staying routing footpath of current time to be:
The in the situation that of being input as 0 while coding in this moment of hypothesis, the NextState of current state can only be 0~2 m-1in-1 one, and meeting: the preceding state of state a can only be (a < < 1, (a < < 1) | 1) the two one of them, a ∈ [0,2 m-1-1], a round numbers, a < < 1 represents that a moves to left one, when storing path, preserves 0 or 1 after relatively, selects higher value to preserve while preserving metric.
9. method as claimed in claim 8, is characterized in that, in step S3.2, selects the method for staying routing footpath of current time to be:
The NextState of current state can only be [2 m-1, 2 m-1] in one, and meeting: the preceding state of state a can only be (a < < 1, (a < < 1) | 1) the two one of them, a ∈ [2 m-1, 2 m-1], a round numbers, if a moves to left after 1, it is worth not [2 m-1, 2 m-1], in, the highest order of a is removed, relatively after when storing path, preserve 0 or 1, while preserving metric, select higher value to preserve.
10. method as claimed in claim 9, is characterized in that, in step S4, in the time recalling judgement, obtained state a and 2 m-1relatively, when a is more than or equal to 2 m-1time, be judged to 1, otherwise be judged to 0.
CN201210147267.4A 2012-05-11 2012-05-11 Viterbi decoding method of tail-biting convolutional code based on SSE (Streaming Simd Extensions) Expired - Fee Related CN102684710B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210147267.4A CN102684710B (en) 2012-05-11 2012-05-11 Viterbi decoding method of tail-biting convolutional code based on SSE (Streaming Simd Extensions)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210147267.4A CN102684710B (en) 2012-05-11 2012-05-11 Viterbi decoding method of tail-biting convolutional code based on SSE (Streaming Simd Extensions)

Publications (2)

Publication Number Publication Date
CN102684710A CN102684710A (en) 2012-09-19
CN102684710B true CN102684710B (en) 2014-07-30

Family

ID=46816156

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210147267.4A Expired - Fee Related CN102684710B (en) 2012-05-11 2012-05-11 Viterbi decoding method of tail-biting convolutional code based on SSE (Streaming Simd Extensions)

Country Status (1)

Country Link
CN (1) CN102684710B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283572B (en) * 2013-07-03 2017-04-26 展讯通信(上海)有限公司 Method and device for controlling input information of convolutional code decoder
CN109462407B (en) * 2018-12-13 2022-08-16 锐捷网络股份有限公司 Viterbi decoding method, apparatus and storage medium
CN110278055B (en) * 2019-06-03 2021-11-23 京信网络***股份有限公司 Tail-biting convolutional coding processing method and device and communication equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1126397A (en) * 1994-03-25 1996-07-10 三菱电机株式会社 Error-correcting encoder, error-correcting decoder and data transmitting system with error-correctincodes
US5812601A (en) * 1996-11-15 1998-09-22 Telefonaktiebolaget Lm Ericsson Coding for higher-level modulation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1126397A (en) * 1994-03-25 1996-07-10 三菱电机株式会社 Error-correcting encoder, error-correcting decoder and data transmitting system with error-correctincodes
US5812601A (en) * 1996-11-15 1998-09-22 Telefonaktiebolaget Lm Ericsson Coding for higher-level modulation

Also Published As

Publication number Publication date
CN102684710A (en) 2012-09-19

Similar Documents

Publication Publication Date Title
CN101958720B (en) Encoding and decoding methods for shortening Turbo product code
CN102075198B (en) Quasi-cyclic low-density parity check convolution code coding-decoding system and coding-decoding method thereof
CN101635611B (en) Channel decoding method and channel decoding device
CN100544213C (en) A kind of interpretation method of tail-biting convolutional code and decoder thereof
CN102546089B (en) Method and device for implementing cycle redundancy check (CRC) code
CN102684710B (en) Viterbi decoding method of tail-biting convolutional code based on SSE (Streaming Simd Extensions)
CN103427850A (en) Multi-mode viterbi decoding apparatus and decoding method thereof
CN111224680A (en) Low-delay high-reliability quick decoding method and decoder for polarization code
CN102739261B (en) Heterogeneous Gabi selection forward back Viterbi decoder
CN102404011A (en) Method and device for achieving Viterbi decoding
CN104716965A (en) BCH soft decoding algorithm and implementation circuit thereof
CN102185618B (en) Method for improving Viterbi decoding algorithm and convolutional code decoder
CN102142849B (en) Viterbi decoding method and Viterbi decoder
CN108471341B (en) Method for convolutional encoding and decoding
CN103475378B (en) A kind of high-throughput ldpc decoder being applicable to optic communication
US7035356B1 (en) Efficient method for traceback decoding of trellis (Viterbi) codes
CN103986477A (en) Vector viterbi decoding instruction and viterbi decoding device
CN102377438B (en) Channel decoding method and tail biting convolutional decoder
CN101488764B (en) decoder and enhanced decoding method
CN112653474B (en) Design method of compact LDPC-CC decoder for reducing average iteration number
CN104702293A (en) Dual-mode BCH decoder circuit for body area network
TW569549B (en) Branch metric generator for Viterbi decoder
CN100505557C (en) Viterbi decoding based multi-path parallel loop block back tracing method
CN105589082A (en) Viterbi decoding device and method of Beidou navigation system
CN102594370B (en) High-efficient low-delay parallel Chien search method and device

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140730

Termination date: 20190511