CN102684710A - 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
CN102684710A
CN102684710A CN2012101472674A CN201210147267A CN102684710A CN 102684710 A CN102684710 A CN 102684710A CN 2012101472674 A CN2012101472674 A CN 2012101472674A CN 201210147267 A CN201210147267 A CN 201210147267A CN 102684710 A CN102684710 A CN 102684710A
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.)
Granted
Application number
CN2012101472674A
Other languages
Chinese (zh)
Other versions
CN102684710B (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

Images

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 development of Communication Technique process, people have proposed very high requirement to the accuracy of communication, for this reason, in data transmission procedure, all adopt channel coding technology.Because convolution coding is simple, function admirable is extensively adopted.Convolution code is divided into two kinds, and a kind of is zero tail convolution code (n 0, k 0, m+1), after the end-of-encode of information bit position, also to import m individual 0; Another kind is a tail-biting convolutional code, before coding, comes the initialization encoder for convolution codes with last m bit of information bit, has identical initial state and done state during coding.Because tail-biting convolutional code not be used in after the position end-of-encode of every segment information input m 0, so code efficiency is higher, in next generation communication system, is extensively adopted.For example the timesharing Long Term Evolution (Time Division Long Term Evolution, TD-LTE) in, its downlink broadcast channel and control channel all adopt tail-biting convolutional code to carry out chnnel coding.
Although the tail-biting convolutional code code efficiency is high, it begins with done state all not unknown, so its decoding algorithm is much more complicated than zero tail convolution code.In order to reduce complexity, generally adopt modified model circulation Viterbi (Viterbi) decoding algorithm to decipher, its algorithm thought is: the interior codeword sequence of preceding t time of getting former reception data duplicates the afterbody that is spliced to former reception data; The interior codeword sequence of last t time of getting former reception data copies to the stem of former reception data, regards all states as the initial sum state of termination and carries out Viterbi decoding.
The 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 each time, travel through 64 kinds of states when using the Viterbi algorithm to decipher, and so big operand has proposed very high requirement to the processing speed at terminal.Existing implementation method great majority are that (Single Instruction Single Data, SISD) Jia-ratio-choosing in the serial process Viterbi decoding algorithm travels through each state to the employing single instruction single data stream.This method efficient is low, and the time delay that communication is brought is very big, is only applicable to low speed, low capacity, and real-time is required low communication system.But along with development of Communication Technique, the communication of low speed, low capacity obviously can not be satisfied people's demand, and people more hope the communication system that speed is high, real-time is good.In the new TD-LTE standard that proposes, its descending peak rate is 100Mbps, and up peak rate is 50Mbps, and this conversion speed to the terminal is a great challenge.(Streaming SIMD Extensions, SSE) afterwards, people begin one's study gradually and utilize SSE to carry out algorithm optimization since Intel Company releases the single-instruction multiple-data stream (SIMD) expansion.SSE is that a cover is the instruction set of single-instruction multiple-data architecture design specially, and it can realize the parallel processing of data, and efficient is high.For example, 128 register once can be realized the parallel computation of 4 pairs of single precision floating datums on the SSE use processor, and its speed is 4 times of SISD.For example (3,1,7) tail-biting convolutional code utilizes SSE that the Viterbi algorithm is optimized when using the Viterbi algorithm to decipher, and in each time, travel through 64 kinds of states, has only needed circulation 16 times just, than handle fast 4 times with SISD.It is thus clear that, utilize SSE that algorithm is optimized, can improve the speed of signal processing, reduce time delay, satisfy modern high speed rate, high capacity communication.
Summary of the invention
The technical problem that (one) will solve
The technical problem that the present invention will solve is: a kind of can speed fast, tail-biting convolutional code Viterbi interpretation method based on SSE that the signal processing time 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. interior codeword sequence of t time duplicates the afterbody that is spliced to former reception data before getting former reception data, and the codeword sequence of getting in the last t time of former reception data duplicates the stem that is spliced to former reception data, and each is received the n in the codeword sequence sign indicating number section constantly 0Individual single-precision floating point value is duplicated m respectively 0Part, being stored in respectively in the register of a M position, each register is deposited m 0Individual identical value;
S2. receive codeword sequence constantly for each; Might a state in current time to institute; Respectively under hypothesis current time coding the time is input as 0 and 1 situation, according to the tail-biting convolutional code data that output valve and current time receive of encoding, parallel computation branched measurement value; And the metric addition that the branched measurement value that calculates and previous moment are retained the path obtained the metric of current time, calculate m at every turn 0Individual metric, m 0For the figure place of register divided by the shared figure place of single precision floating datum;
S3. the metric that calculates for per twice is walked abreast relatively, the routing footpath is stayed as current time in the path of selecting to have big metric;
S4. moment in the end, the state of selecting to have maximal metric value is recalled judgement for the decoding state of termination.
Preferably, the said t time is 5m-7m, and wherein, m is the encoding constraint length of convolution code.
Preferably, step S2 further comprises:
S2.1 is to each moment, with 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;
S2.2 is under hypothesis current time coding the time is input as 0 situation, for the m of each group 0Individual state, the data according to tail-biting convolutional code coding output valve and current time receive calculate m 0The value of individual branch metric, and put it in the register of a M position;
S2.3 will with the m of each group described in the step S2.2 0The metric of the previous moment that individual state links to each other is put in the register of a M position, the m that obtains with step S2.2 0The addition that walks abreast of individual branch metric is input as the m of current time under 0 situation when obtaining encoding 0Individual metric;
S2.4 is under hypothesis current time coding the time is input as 1 situation, for the m of each group 0Individual state, the data according to tail-biting convolutional code coding output valve and current time receive calculate m 0The value of individual branch metric, and put it in the register of a M position;
S2.5 will with the m of each group described in the step S2.4 0The previous moment that individual state links to each other stays the metric in routing footpath to be put in the register of a M position, the m that obtains with step S2.4 0The addition that walks abreast of individual branch metric is input as the m of current time under 1 situation when obtaining encoding 0Individual metric.
Preferably, said m 0The computational methods of the value of individual branch metric are: with said m 0Individual state is pairing to be input as 0The sign indicating number section of the coding output under the situation
Figure BDA00001630995700041
Highest order be arranged in reverse order
Figure BDA00001630995700042
With this m 0Individual value is put in the register of a M position, with the m that deposits among the step S1 0Individual single-precision floating point value is done and computing, and the value of other in sign indicating number section is calculated according to this rule, will obtain m with the whole results added after the computing 0Individual branched measurement value.
Preferably, said tail-biting convolutional code coding output valve is according to the generator polynomial matrix of convolution code, calculates according to the coding principle of tail-biting convolutional code.
Preferably, said m 0The computational methods of the value of individual branch metric are: with m 0Individual state is pairing in the sign indicating number section that is input as the coding output under 1 situation
Figure BDA00001630995700043
Highest order be arranged in reverse order into
Figure BDA00001630995700044
This value can calculated in advance be come out, with 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 sign indicating number section is calculated according to this rule.And then will obtain m with the results added after the computing 0Individual branched measurement value.
Preferably, step S3 further comprises:
S3.1 is put into the odd number group of each piece and even sets respectively in the register of M position under hypothesis current time coding the time is input as 0 situation, walk abreast relatively, the selection current time stay routing directly.
S3.2 is put into the odd number group of each piece and even sets respectively in the register of a M position under hypothesis current time coding the time is input as 1 situation, and the comparison that walk abreast selects this to stay routing directly constantly.
Preferably, in step S3.1, select staying of current time to select route method to be: be input as when this encodes constantly in hypothesis under 0 the situation, the NextState of current state can only be 0~2 M-1In-1 one, and satisfying: 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 expression a moves to left one, after relatively, during storing path, preserves 0 or 1, selects higher value to preserve when preserving metric.
Preferably, in step S3.2, select staying of current time to select route method to be: the NextState of current state can only be [2 M-1, 2 m-1] in one, and satisfying: 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, then the highest order of a is removed, relatively after during storing path, preserve 0 or 1, select higher value to preserve when preserving metric.
Preferably, in step S4, when recalling judgement, resulting state a and 2 M-1Relatively, when a more than or equal to 2 M-1The time, 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 M parallel-by-bit to handle, and has significantly improved the speed of decoding, has shortened signal processing time.
Description of 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 tail-biting convolutional code Viterbi interpretation method based on SSE that the present invention proposes specifies as follows in conjunction with accompanying drawing and embodiment.
As shown in Figure 1, the tail-biting convolutional code Viterbi interpretation method based on SSE that accordings to one embodiment of the present invention comprises step:
S1. interior codeword sequence of t time duplicates the afterbody that is spliced to former reception data before getting former reception data; The codeword sequence of getting in the last t time of former reception data duplicates the stem that is spliced to former reception data; Each is received in the code word sequence time, suppose that the code length in this sign indicating number section constantly is n 0, with n 0Individual single-precision floating point value is duplicated m 0(m 0For the figure place of register divided by the shared figure place of single precision floating datum) part, be stored in n respectively 0In the register of individual M position, each register is deposited m 0Individual identical value, the t time is 5m-7m, wherein, m is the encoding constraint length of convolution code.
S2. receive codeword sequence constantly for each, at current time, to the possible state of institute; Under hypothesis current time coding the time is input as 0 situation, 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; The data that receive according to the coding output valve of calculating and current time; Adopt the parallel computation branched measurement value, obtain the metric of current time again with the metric addition in the retention path of previous moment, calculate m at every turn 0Individual metric; This is input as when encoding constantly under 1 the situation in hypothesis, according to the coding output valve of calculated in advance and the data that receive, adopts the parallel computation branched measurement value, and the metric that the metric addition of retaining the path with previous moment again obtains current time calculates m at every turn 0Individual metric.
S3. the metric that calculates for per twice is walked abreast relatively, the path of selecting to have big metric as this constantly stay the routing footpath.
S4. in moment in the end, the state of selecting to have maximal metric value is recalled judgement for the decoding state of termination.
Step S2 further comprises:
S2.1 is to each moment, with 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.
S2.2 for each group, has m under hypothesis current time coding the time is input as 0 situation 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 the data that current time receives, calculates m 0The value of individual branch metric puts it in the register of a M position.Order
Figure BDA00001630995700061
Be generator polynomial matrix, be input as the n of the coding output under 0 the situation according to certain state of the coding principle calculated in advance of tail-biting convolutional code at current time hypothesis coding according to convolution code 0Individual value,
Figure BDA00001630995700062
Be a sign indicating number section that receives, then its branched measurement value equals
Figure BDA00001630995700063
Because in step S1,
Figure BDA00001630995700064
Duplicated 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:
At first with m 0Individual state is pairing in the sign indicating number section that is input as the coding output under 0 situation
Figure BDA00001630995700071
Highest order be arranged in reverse order into
Figure BDA00001630995700072
This value can be come out according to the coding principle calculated in advance of tail-biting convolutional code, with this m according to the generator polynomial matrix of convolution code 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 sign indicating number section is calculated according to this rule.And then will obtain m with the results added after the computing 0Individual branched measurement value.
S2.3 will with every group m 0The metric of the previous moment that individual state links to each other is put in the register of a M position, the m that obtains with step S2.2 0The addition that walks abreast of individual branch metric obtains supposing to import the m of current time under 0 situation 0Individual metric.
This is input as when encoding constantly under 1 the situation S2.4 in hypothesis, for each group, m is arranged 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 among the 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 previous moment that individual state links to each other stays the metric in routing footpath to be put in the register of a M position, the m that obtains with step S2.4 0The addition that walks abreast of individual branch metric obtains supposing to import the m of current time under 1 situation 0Individual metric.
Step S3 further comprises:
S3.1 is under hypothesis current time coding the time is input as 0 situation; Be put into first odd number group and even sets respectively in the register of M position; Walk abreast then relatively, and stay the routing footpath by what following rule was selected current time, each remaining piece all according to this rule relatively.
When tail-biting convolutional code is encoded, regard the memory of data input pin the highest order of state a as, be input as when this encodes constantly in hypothesis under 0 the situation, the NextState of current state can only be 0~2 M-1In-1 one, and satisfying, the preceding state of state a can only be (a<<1, (a<<1) | 1) the two one of them, a ∈ [0,2 here M-1-1], a round numbers, a<<1 expression a moves to left one.This is input as when encoding constantly under 1 the situation in hypothesis, and then the NextState of its current state can only be [2 M-1, 2 m-1] in one, and satisfying, 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, then the highest order of a is removed.So after relatively during storing path, only need to preserve 0 or 1 just, select higher value to preserve when preserving metric
S3.2 is under hypothesis current time coding the time is input as 1 situation; Be put into first odd number group and even sets respectively in the register of a M position; Walk abreast then relatively; And select this to stay the routing footpath constantly according to the rule introduced among the step S3.2, each remaining piece is all according to this rule relatively.
In step S4, when recalling judgement, resulting state a and 2 M-1Relatively, when a more than or equal to 2 M-1The time, be judged to 1, otherwise be judged to 0.
Below further specify method of the present invention through concrete instance.The method comprising the steps of:
A1. an interior sign indicating number sequence replicating of preceding 5m time of getting former reception data is connected to former reception data backmost; The interior sign indicating number sequence replicating of last 5m time of getting former reception data is connected to the foremost of former reception data, regards all states as beginning and done state.Each is received in the code word sequence time, with n in this sign indicating number section constantly 0Individual single-precision floating point value is duplicated 4 parts, is stored in n respectively 0In individual 128 register, each register is deposited 4 identical values.
A2. constantly, with 2 to each 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, be input as when this encodes constantly in hypothesis under 0 the situation, according to the coding output valve of calculated in advance, calculate by following rule, obtain the value of 4 branch metrics, put it in one 128 the register.
Order
Figure BDA00001630995700081
For certain state of calculated in advance is carved the n that hypothesis coding is input as the coding output under 0 the situation at this moment 0Individual value,
Figure BDA00001630995700082
Be a sign indicating number section that receives, then its branched measurement value equals
Figure BDA00001630995700083
At first that 4 states are pairing in the sign indicating number section that is input as the coding output under 0 situation
Figure BDA00001630995700084
Highest order be arranged in reverse order
Figure BDA00001630995700085
This value can calculated in advance be come out, these 4 values are put in one 128 the register with steps A 1 in 4 l depositing 0Do and computing, the value of other in sign indicating number section is calculated according to this rule.And then will obtain 4 branched measurement values with the results added after the computing.
The metric of the previous moment that A4. will link to each other with these 4 states is put in one 128 the register, and the parallel addition of 4 branch metrics with steps A 3 obtains obtains supposing to import 4 metrics under 0 situation, current time.
A5. this is input as when encoding constantly under 1 the situation in hypothesis, for each group, 4 states is arranged, and according to the coding output valve of calculated in advance, calculates according to the rule of introducing in the steps A 3, obtains the value of 4 branch metrics, puts it in one 128 the register.
The previous moment that A6. will link to each other with these 4 states stays the metric in routing footpath to be put in one 128 the register, and the parallel addition of 4 branch metrics with steps A 5 obtains obtains supposing to import 4 metrics under 1 situation, current time.
A6. this is input as when encoding constantly under 0 the situation, first odd number group (1,3 in hypothesis; 5,7) and even sets (2,4; 6,8) be put into respectively in 128 the register, walk abreast then relatively; And by following rule select this constantly stay the routing footpath, each remaining piece is all according to this rule relatively.
When tail-biting convolutional code is encoded, regard the memory of data input pin the highest order of state a as, be input as when this encodes constantly in hypothesis under 0 the situation, then the NextState of its current state can only be 0~2 M-1In-1 one, and satisfying, the preceding state of state a can only be (a<<1, (a<<1) | 1) the two one of them, a ∈ [0,2 here M-1-1], a round numbers, a<<1 expression a moves to left one.This is input as when encoding constantly under 1 the situation in hypothesis, and then the NextState of its current state can only be [2 M-1, 2 m-1] in one, and satisfying, 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, then the highest order of a is removed.So after relatively during storing path, only need to preserve 0 or 1 just, select higher value to preserve when preserving metric
A7. this is input as when encoding constantly under 1 the situation, first odd number group (1,3 in hypothesis; 5,7) and even sets (2,4; 6,8) be put into respectively in one 128 the register, walk abreast then relatively; And select this to stay the routing footpath constantly according to the rule of introducing in the last step, each remaining piece is all according to this rule relatively.
A8. in moment in the end, the state of selecting to have maximal metric value is recalled judgement, when recalling judgement, resulting state a and 2 for the decoding state of termination M-1Relatively, when a more than or equal to 2 M-1The time, be judged to 1, otherwise be judged to 0.
Choose the tail-biting convolutional code of (3,1,7) form of stipulating in the TD-LTE agreement and decode according to the method described above, the coding number is respectively 100,400,800.Use T Before the optimizationThe time of traditional Viterbi interpretation method decoding, T are used in expression After the optimizationThe time of Viterbi interpretation method decoding of the present invention is used in expression, uses T Optimize multiple=T Before the optimization/ T After the optimizationMultiple is optimized in expression.In test, having chosen 100,400 and 800 bits respectively encodes.For than being easier to find out the result, when deciphering, repeat to decipher 10000 times at every turn, calculate the time difference before and after the operation that repeats to decipher 10000 times then, each test was asked on average 1000 time differences, and the result who obtains is as shown in table 1.Can find out that from table 1 no matter the coding number is 100,400 still be 800, the time before it is optimized is 10 times after the optimization nearly.
The contrast of table 1 experimental result
Figure BDA00001630995700101
The said utilization of the embodiment of the invention is based on the tail-biting convolutional code Viterbi interpretation method of SSE, and is different with traditional method, adopts concurrent operation, greatly reduces decoding time.
Above execution mode only is used to explain the present invention; And be not limitation of the present invention; The those of ordinary skill in relevant technologies field under the situation that does not break away from the spirit and scope of the present invention, can also be made various variations 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. tail-biting convolutional code Viterbi interpretation method based on SSE is characterized in that the method comprising the steps of:
S1. interior codeword sequence of t time duplicates the afterbody that is spliced to former reception data before getting former reception data, and the codeword sequence of getting in the last t time of former reception data duplicates the stem that is spliced to former reception data, and each is received the n in the codeword sequence sign indicating number section constantly 0Individual single-precision floating point value is duplicated m respectively 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 divided by the shared figure place of single precision floating datum;
S2. receive codeword sequence constantly for each; Might a state in current time to institute; Respectively under hypothesis current time coding the time is input as 0 and 1 situation, according to the tail-biting convolutional code data that output valve and current time receive of encoding, parallel computation branched measurement value; And the metric addition that the branched measurement value that calculates and previous moment are retained the path obtained the metric of current time, calculate m at every turn 0Individual metric;
S3. the metric that calculates for per twice is walked abreast relatively, the routing footpath is stayed as current time in the path of selecting to have big metric;
S4. moment in the end, the state of selecting to have maximal metric value is recalled judgement for the decoding state of termination.
2. the method for claim 1 is characterized in that, the said t time is 5m-7m, and wherein, m is the encoding constraint length of convolution code.
3. method as claimed in claim 2 is characterized in that step S2 further comprises:
S2.1 is to each moment, with 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;
S2.2 is under hypothesis current time coding the time is input as 0 situation, for the m of each group 0Individual state, the data according to tail-biting convolutional code coding output valve and current time receive calculate m 0The value of individual branch metric, and put it in the register of a M position;
S2.3 will with the m of each group described in the step S2.2 0The metric of the previous moment that individual state links to each other is put in the register of a M position, the m that obtains with step S2.2 0The addition that walks abreast of individual branch metric is input as the m of current time under 0 situation when obtaining encoding 0Individual metric;
S2.4 is under hypothesis current time coding the time is input as 1 situation, for the m of each group 0Individual state, the data according to tail-biting convolutional code coding output valve and current time receive calculate m 0The value of individual branch metric, and put it in the register of a M position;
S2.5 will with the m of each group described in the step S2.4 0The previous moment that individual state links to each other stays the metric in routing footpath to be put in the register of a M position, the m that obtains with step S2.4 0The addition that walks abreast of individual branch metric is input as the m of current time under 1 situation when obtaining encoding 0Individual metric.
4. method as claimed in claim 3 is characterized in that, said tail-biting convolutional code coding output valve is 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, said m 0The computational methods of the value of individual branch metric are:
With said m 0Individual state is pairing in the sign indicating number section that is input as the coding output under 0 situation
Figure FDA00001630995600021
Highest order be arranged in reverse order
Figure FDA00001630995600022
With this m 0Individual value is put in the register of a M position, with the m that deposits among the step S1 0Individual single-precision floating point value is done and computing, and the value of other in sign indicating number section is calculated according to this rule, will obtain m with the whole results added after the computing 0Individual branched measurement value.
6. method as claimed in claim 3 is characterized in that, said m 0The computational methods of the value of individual branch metric are:
With m 0Individual state is pairing in the sign indicating number section that is input as the coding output under 1 situation
Figure FDA00001630995600023
Highest order be arranged in reverse order into
Figure FDA00001630995600024
This value can calculated in advance be come out, with 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 sign indicating number section is calculated according to this rule.And then will obtain m with the results added after the computing 0Individual branched measurement value.
7. the method for claim 1 is characterized in that, step S3 further comprises:
S3.1 is put into the odd number group of each piece and even sets respectively in the register of M position under hypothesis current time coding the time is input as 0 situation, walk abreast relatively, the selection current time stay routing directly.
S3.2 is put into the odd number group of each piece and even sets respectively in the register of a M position under hypothesis current time coding the time is input as 1 situation, and the comparison that walk abreast selects this to stay routing directly constantly.
8. method as claimed in claim 7 is characterized in that, in step S3.1, selects staying of current time to select route method to be:
This is input as when encoding constantly under 0 the situation in hypothesis, and the NextState of current state can only be 0~2 M-1In-1 one, and satisfying: 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 expression a moves to left one, after relatively, during storing path, preserves 0 or 1, selects higher value to preserve when preserving metric.
9. method as claimed in claim 8 is characterized in that, in step S3.2, selects staying of current time to select route method to be:
The NextState of current state can only be [2 M-1, 2 m-1] in one, and satisfying: 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, then the highest order of a is removed, relatively after during storing path, preserve 0 or 1, select higher value to preserve when preserving metric.
10. method as claimed in claim 9 is characterized in that, in step S4, when recalling judgement, resulting state a and 2 M-1Relatively, when a more than or equal to 2 M-1The time, 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 true CN102684710A (en) 2012-09-19
CN102684710B 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283572A (en) * 2013-07-03 2015-01-14 展讯通信(上海)有限公司 Method and device for controlling input information of convolutional code decoder
CN109462407A (en) * 2018-12-13 2019-03-12 锐捷网络股份有限公司 Viterbi coding method, equipment and storage medium
CN110278055A (en) * 2019-06-03 2019-09-24 京信通信***(中国)有限公司 Tail biting convolutional encoding processing method, 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

Cited By (5)

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

Also Published As

Publication number Publication date
CN102684710B (en) 2014-07-30

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
CN102546089B (en) Method and device for implementing cycle redundancy check (CRC) code
CN101432972A (en) Radix-4 Viterbi decoding
CN101635611A (en) Channel decoding method and channel decoding device
CN101969311B (en) High-speed parallel segmented staggering Viterbi decoding method
CN102684710B (en) Viterbi decoding method of tail-biting convolutional code based on SSE (Streaming Simd Extensions)
CN110022188A (en) Interpretation method and circuit are serially offset based on the polarization code encoding method and polarization code for freezing bit pair
CN102739261B (en) Heterogeneous Gabi selection forward back Viterbi decoder
WO2005011129A1 (en) Viterbi decoder
CN106027200A (en) Convolutional code high-speed parallel decoding method and decoder based on GPU
CN104486033B (en) A kind of descending multimode channel coded system and method based on C RAN platforms
CN102386935A (en) Viterbi decoding method and Viterbi decoder
CN102185618B (en) Method for improving Viterbi decoding algorithm and convolutional code decoder
CN108471341B (en) Method for convolutional encoding and decoding
US10075186B2 (en) Trellis segment separation for low-complexity viterbi decoding of high-rate convolutional codes
US7035356B1 (en) Efficient method for traceback decoding of trellis (Viterbi) codes
CN101834614A (en) Multielement LDPC code coding method and device capable of saving storage resource
CN103475378B (en) A kind of high-throughput ldpc decoder being applicable to optic communication
CN103986477A (en) Vector viterbi decoding instruction and viterbi decoding device
CN102377438B (en) Channel decoding method and tail biting convolutional decoder
CN104702293A (en) Dual-mode BCH decoder circuit for body area network
CN1309471A (en) Viterbi decoder with reduced bit in branching metering computation processing
CN100505557C (en) Viterbi decoding based multi-path parallel loop block back tracing method
CN112073157B (en) Low-power-consumption viterbi decoding implementation method of Bluetooth receiver

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