WO2007016871A1 - Decodeur viterbi et procede pour determiner la largeur de bits de donnees de l'unite ajout-comparaison-selection du decodeur - Google Patents

Decodeur viterbi et procede pour determiner la largeur de bits de donnees de l'unite ajout-comparaison-selection du decodeur Download PDF

Info

Publication number
WO2007016871A1
WO2007016871A1 PCT/CN2006/001989 CN2006001989W WO2007016871A1 WO 2007016871 A1 WO2007016871 A1 WO 2007016871A1 CN 2006001989 W CN2006001989 W CN 2006001989W WO 2007016871 A1 WO2007016871 A1 WO 2007016871A1
Authority
WO
WIPO (PCT)
Prior art keywords
formula
value
unit
viterbi decoder
acs
Prior art date
Application number
PCT/CN2006/001989
Other languages
English (en)
French (fr)
Inventor
Yi Wang
Xin'an Wang
Huiming Chen
Guoxin Zhang
Gaofa Xiao
Bo Hong
Tengfei Zhao
Wenguang Lan
Original Assignee
Peking University Shenzhen Graduate School
Huawei Technologies Co., Ltd.
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 Peking University Shenzhen Graduate School, Huawei Technologies Co., Ltd. filed Critical Peking University Shenzhen Graduate School
Publication of WO2007016871A1 publication Critical patent/WO2007016871A1/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization

Definitions

  • the present invention relates to an application specific integrated circuit (ASIC) based Viterbi decoder, and more particularly to a data bit for determining a ratio selection (ACS addition-comparison-selection) unit circuit in a Viterbi decoder. Wide method.
  • ASIC application specific integrated circuit
  • a convolutional code is a commonly used error control coding.
  • the convolutional code (n Q , k., m) indicates that the convolutional code encoder will be k.
  • the bit information segment is programmed into n.
  • the code group of the bit, and the code group of the n Q long bit is not only associated with the current k 0 bit information segment, but also with the previous (m-1) (m>l, integer, which we call the constraint length
  • the information segment is associated.
  • the convolutional code uses a generated sequence to represent the relationship between input and output.
  • the Viterbi algorithm is a convolutional decoding algorithm based on the maximum a posteriori probability. It has strong ability to overcome sudden errors and is widely used in data communication, data recording and digital signal processing. Viterbi's decoding process is to find the path most similar to the convolutional code input data stream through the process of receiving. Traversing the grid pattern of the entire state change, and calculating the code distance generated by each path. When the Viterbi decoder inputs the last data, the minimum code distance value can be obtained, and the path to the state is to find The path, based on this path and related information, can be used to derive the decoded output.
  • Branch metric unit (BMU) 21 receives the digital signal and calculates the branch metric as the probability information, where the branch metric takes an unsigned number.
  • the add comparison unit (ACS) 22 reads the branch metric from the BMU 21 and uses the branch metric to update the original path metric (PM) value corresponding to each state in the grid.
  • PM path metric
  • the survivor path memory 24 stores the selection bits output from the ACS 22.
  • the traceback unit TBU23 implements a traceback operation using the selection bits stored in the survivor path memory 24 and outputs a decoding sequence.
  • the data output rate and power consumption area requirements vary greatly.
  • the required speed can be less than 1 Mb/s, but requires very low power consumption
  • the output rate is required to be tens Kb/s, but there are very strict limits on power consumption and chip area and price; at the other extreme, high-speed Viterbi detectors are also used for disk-driven read channels, requiring output exceeding 600 Mb/s, corresponding The area and power requirements are relatively low.
  • Viterbi's implementation structure is closely related to the functional requirements it needs to accomplish, and is divided into serial, parallel, and hybrid structures.
  • the ACS 22 reads the PM value of a state (a total of 2 111 - 1 states) from the path metric storage unit 25 each time, that is, only one state is calculated per clock, 2 m clock processing grids A column in the table.
  • This structure is not limited by the constraint length m, only consumes a fixed area, and the FPGA consumes the smallest area, but the decoding delay is also the largest.
  • Parallel design The ACS 22 reads the PM value of 2 m states from the path metric storage unit 25 each time, that is, one clock completes the update of all states.
  • the advantage of the parallel design is that high-speed Viterbi decoding can be achieved, and the highest decoding rate can reach the clock frequency; fewer memory cells are needed, and no two-path metric storage unit ping-pong operation is required. Its shortcomings are also obvious: hardware resources are expensive.
  • the ACS 22 reads the PM values of the n states from the path metric storage unit 25 each time, that is, each clock processes n (where i ⁇ S" 1 - 1 ) states, 2 m - n clock cycles complete the grid table
  • the area and speed can be considered to select the value of n (the larger n, the faster the speed, the larger the area). It can be seen that the main difference between the various Viterbi structures is reflected in the ACS22 unit, which is also the component that needs the most resources in Viterbi.
  • FIG. 3 shows the conventional ACS22 structure.
  • the two adders 31A, 31B are used to add the PM value of the corresponding state of the previous column to the branch metric value from the BMU21.
  • the PM values of the two previous columns may come from the path metric memory (serial/hybrid type) or from the corresponding upper register in parallel, collectively referred to as path metric storage unit 25.
  • the resulting value is passed through a comparator (CMP) 32, and the corresponding surviving PM value and survivor path value are selected and output by the 2-to-1 multiplexer MUX33.
  • CMP comparator
  • the ACS unit is the core circuit of the Viterbi decoder. However, the PM value will accumulate over time. If it is not controlled, the ACS unit will have an overflow problem, causing serious decoding errors.
  • the Viterbi decoder decodes by finding the path of the smallest PM value. It can be known from the circuit structure of the ACS unit that we only need to retain the magnitude relationship of the PM values of each state, that is, the base of all PM values is decoded for Viterbi. It doesn't make sense, it can be removed, and this can avoid the overflow of PM values.
  • the general control method is to compare all the PM values at regular intervals, find the smallest one, and then subtract all the PM values from this value, so that the adder does not overflow, and the PM values can be maintained. The size relationship between the two is unchanged.
  • the method used is: To participate in the operation of the highest bit of all PMs (assumed to be i bits) in each column, if the result is ' ⁇ , explain? ] ⁇ 4 ⁇ 2", then an overflow control signal is generated. Using this signal, the highest position of all PMs in the next column in the grid is '0', which is equivalent to subtracting all the PM values from the base 2". Therefore, it is desirable that the data width of the ACS unit is sufficiently large to ensure that the size relationship of each path is unchanged, and the overflow problem can be effectively solved.
  • the data width of the ACS unit From the perspective of improving hardware implementation and critical path, it is desirable to minimize the data width of the ACS unit. However, if the data bit width of the ACS is too small, it is not enough to keep the size relationship of each path unchanged, and the PM value overflow phenomenon occurs. If the ACS bit width is too large, the hardware implementation circuit and the critical path delay are increased. Therefore, the proper ACS bit width is required.
  • the technical problem to be solved by the present invention is to provide a highly reliable Viterbi decoder and a method for determining the minimum bit width of the Viterbi decoder ACS unit.
  • the Viterbi decoder provided by the present invention includes a branch metric that sequentially processes the received data.
  • the unit BMU, the comparison unit ACS, the survivor path memory, and the backtracking unit TBU, and the path metric PM value selected by the addition unit ACS are sent back to the path metric storage of the comparison unit ACS in a subsequent step.
  • a unit, the input of the Viterbi decoder is (n., 1, m) convolutional code, the bit width of each input data is represented by width, and the data bit width i of the addition comparison unit ACS is determined by formula 1. Equation 2 and Equation 3 are simultaneously determined.
  • the formula 1 is as follows:
  • the minimum data bit width of the addition unit is (i+1) bits.
  • Another Viterbi decoder includes a branch metric unit BMU (21), a comparison unit ACS (22), a survivor path memory (24), and a backtracking unit TBU (step by step) for sequentially processing received data. 23), and returning the path metric PM value selected by the comparison unit ACS (22) to the path metric storage unit (25) of the comparison comparison unit ACS (22), characterized in that the Viterbi translation
  • the input of the coder is (n., 1, m) convolutional code
  • the bit width of each input data is represented by width
  • the data bit width i of the addition comparison unit ACS (22) is determined by formula one, formula two and Equation 3 is also decided at the same time.
  • the formula 1 is as follows:
  • H_PM( gs , oo) refers to the maximum PM span when all 0 data is input to the Viterbi decoder for hard decision
  • S_PM gs is the PM span of each column in the grid diagram.
  • the PM value of all states is cleared to 0, and the data stream of all 0s is input to the Viterbi decoder. Then, the metric span of the output of the add-by unit is obtained to obtain the metric span PM.
  • the present invention discloses a method for determining the data bit width of the add-select unit in the Viterbi decoder, which is used to determine the ratio of the add-by unit.
  • the minimum data bit width, the input of the Viterbi decoder is (n 0 , 1 m) convolutional code, and the bit width of each input data is expressed by width, including the following steps: First step, according to formula one
  • the span of the path metric (PM) SJPM for each column in the grid map, the formula one is as follows:
  • the minimum data bit width of the addition ratio unit is 1 bit; if the i value does not satisfy the formula 3, the minimum data bit of the addition ratio unit The width is (i+1) bits.
  • the first step, the second step and the third step are implemented as follows:
  • the PM span S_PM gs of each column in the grid map is calculated as follows:
  • H_PM( gs , oo) refers to the maximum PM span when all 0 data is input to the Viterbi decoder for hard decision
  • the value of i is determined according to formula 2, and the formula 2 is as follows: 2 i_2 ⁇ S—PM gs ⁇ 2”;
  • the third step is to verify whether the value of i satisfies formula 3, and the formula 3 is as follows:
  • the invention provides a method for determining the minimum bit width of an ACS unit, which can effectively reduce the hardware implementation area and critical path delay of the ACS unit while solving the PM value overflow problem. And can be universally applied to the various structures of Viterbi.
  • the present invention proposes an improved ACS circuit. This circuit separates the highest bits of each adder by adding a simple logic circuit, carry bit logic units A and B, so that it can be outputted in the ACS circuit. It is generated before, so that the highest-order accumulation unit can be executed simultaneously with the ACS circuit without increasing the length of the critical path. 5 When the comparison selection signal of the ACS is generated, the highest bit of the PM value is processed first, and then the low value is processed.
  • the highest-order accumulating unit of the present invention employs similar structures for various structures of Viterbi, so that the present invention can be universally applied to serial, parallel, and hybrid Viterbi structures, and
  • Figure 1 is a typical convolutional encoder
  • FIG. 2 is a structural block diagram of a Viterbi decoder
  • Figure 3 shows the structure of a conventional ACS circuit
  • Figure 4 is a diagram showing the structure of an ACS circuit according to an embodiment of the present invention.
  • FIG. 5 is a data flow diagram of an ACS circuit in accordance with an embodiment of the present invention.
  • the technical solution disclosed by the present invention is a method for effectively reducing the data bit width of an ACS unit, and based on this, an ACS circuit is proposed, which can solve the problem of PM value overflow.
  • each time a ko information element is input there are ⁇ possible groups of information, which corresponds to the number of branches split from each node of the code tree. There are ⁇ 25, each node is corresponding to 2 different groups of information input, and each has n Q symbols, as the corresponding output subcode, corresponding ACS also has 2 adders and 2 Fr "Road data comparison I.
  • the present invention determines the minimum bit width required for the ACS unit by determining the difference between the maximum PM value and the minimum PM value, i.e., the PM span value, in the following three steps.
  • the maximum PM span of all nodes in each column is " 0 ⁇ ( - 1) ⁇ (2 width - 1), assuming that the PM minimum state of a column t is S x , The metric is PM min .
  • the state can extend its metric to all 2 111 -1 states.
  • the convolution for the n 0 output After the code starts from the same point, the PM value advances on the grid map (m-1), and the PM span is at most .(m-l).(2 wrfi/l - 1).
  • the PM span (represented by S-PM gs , which determines the PM span of the generated sequence) is also reduced, ie:
  • H_ ⁇ , ⁇ refers to the maximum PM span of all 0 data input to the Viterbi decoder for hard decision.
  • the (n 0 , 1, m) convolutional code has "S - PM ⁇ ". '( - 1) ⁇ (2 ⁇ -1), but the determined generation sequence makes subtle between states.
  • the topology of the grid map always guarantees that there will be smaller metrics of other paths as surviving path thresholds, so there will be S-PM gs ⁇ S - ⁇ . Because of the network topology and input data The hard and soft decision has nothing to do. Therefore, just consider the hard decision situation, first find the maximum hard decision span H—PM ( gs , and then expand to the width bit width.
  • HJPM ( gs , max step of determining the (n Q , 1, m) convolutional code of the generated sequence is this Kind of: First, clear the PM value of all states to 0 to avoid introducing the PM span in the initial state. Next, the all-zero data stream is input to the Viterbi decoder, and then all the metric values of the ACS output and the metric span are examined by Matlab or other software. The all-zero input sequence maximizes the hard decision PM span of the Viterbi decoder.
  • H—PM( gs , .()) is to determine the HJ>M of the (n 1 , m ) convolutional code of the generated sequence ( gs , max First, introduce the concept of “source” and “ sink”, a certain state S
  • source refers to the state in which the state S can be reached through a branch on the grid
  • sink refers to the state in which S is the "source” on the grid.
  • the state 0 and the state S ⁇ -l are both "source” and "sink”. Taking state 0 as an example, the output value of state 0 ⁇ state 0 in the grid diagram It is "00".
  • the surviving path is 0 ⁇ 0 ⁇ 0 ⁇ 0.
  • This surviving path is least interfered by other states because the surviving path is always It is a 0 state, no other state can be involved in the surviving path; moreover, it has the greatest influence on the PM value of other states, because the always 0 state has the smallest path metric (PM) value, and its extension value is easy to become The surviving path for other states. That is, it is closest to the maximum metric span discussed in 1. Therefore, Release It is a measure of the maximum span of the path, i.e. H- PM (gs, Q () ) is determined to generate the sequence H- PM (n G 1, m) convolutional code (gs max
  • state 2 K -1 is also the path with the largest span of measurement, that is, their metric span values are the same, both are HJPM (because H-PM( gs , oo) is the topology of the grid graph Determined, so after enough columns, H-PM will not increase, but stabilize to a certain value, which is the required H-PM ( gs , 00
  • Viterbi input data is expressed by the width of the width, which is to quantize the input data of the hard decision '0, and T to 0. "and" 2 width -l".
  • the ACS unit data can be represented by one bit more than the S-PM value.
  • the highest bit of all PM values is 1, the maximum PM value will not be overflow. Therefore, (2) is required to make the selection.
  • the corresponding ACS bit width of any ( ⁇ 1, m) convolutional code can be determined by the above three steps.
  • the following is an example of a (2 1 7) convolutional code and a (3 1, 7) convolutional code.
  • the embodiment of the present invention proposes an improved ACS circuit, which can effectively solve the PM value overflow problem, and reduces the hardware implementation and critical path delay compared to the conventional ACS design, and Universally applicable to Viterbi's parallel/serial/hybrid architecture.
  • FIG. 4 is a structural diagram of an improved ACS (input data is i-bit width) circuit unit of the present invention.
  • an adder and a comparator with an i-bit width are not used, but (i- 1)
  • the bit width adder and comparator are then separately processed by adding carry bit logic units 45A, 45B and Logic base logic unit 46.
  • IB carry bits d, c 2 , overflow flag bits ove, over 2 and comparator (CMP) 42 output result X, there are two outputs, one is the selection signal 1 of the selection circuit (MUX) 43 and the highest bit Select the result.
  • the overflow flag bits over, and over 2 are to prevent overflow problems of non-survival paths.
  • the ACS circuit capable of solving the overflow problem provided by the embodiment of the present invention, although the circuit adds some logic circuits, these logic circuits are only composed of simple NAND gates, and consume little resources; The data width of the ACS has been minimized. In summary, the present invention effectively reduces hardware circuit resources.
  • Figure 5 shows the data flow diagram of the ACS circuit of the present invention, assuming that the ACS data bit width is finally determined to be L. This figure has the following changes in the circuit representation compared with Figure 4: ! and 3 ⁇ 4 are separated and will be deformed as shown below:
  • the 1 signal can be divided into two parts: a, b circuit is executed first; after receiving the X signal, a ⁇ ax+b is executed.
  • the ACS circuit of the present invention can be divided into three stages, and the circuits of each stage can be simultaneously executed:
  • the first stage includes over (i-1) bit adders 41A, 41B and 45A, 45B over – bit NOT gate, two gate related circuits, it is clear that the critical path at this stage is the (i-1) bit adder.
  • the second stage of the circuit is executed after the first stage circuit, including two or two of the 45A and 45B ( Cl , c 2 ), two AND gates (over over 2 ), 46 of the a 2 , 64 input and non Gate, (i-1) bits CMP(X) and a and b in 46.
  • the third stage circuit a corpse ax+b can only be executed after the comparator CMP outputs the comparison signal X.
  • the data stream is divided into three shares, the first data stream: oveiv over 2 , or gate ( Cl , c 2 ) and gate (a 2 ) - the highest accumulation unit; Data stream: CMP (X); Third data stream AND gate (over, over 2 ), OR gate (c!, c 2 ) ⁇ 46 && 3 ⁇ 4).
  • the last two data streams meet in the afax+b part, obviously the comparator determines the last two shares.
  • the first data stream is not related to the last two data streams. In fact, the three data streams will be merged into two.
  • the critical path of the whole circuit is: (i-1) bit adder + (i-1) bit comparator + 2 input AND gate + 2 input OR gate + 2 select 1 multiplexer. Obviously, this circuit reduces the critical path.
  • This circuit is generally applicable to serial, parallel and hybrid Viterbi structures.
  • the input is the highest value of the PM value of the 2 m ACS units in the previous column, and the operation of the 2 m input is performed, and the output is the over-bit of the column;
  • the input is A column n (n is the number of ACS units used) the highest value of the PM value of the ACS unit and the over-bit value accumulated in the previous column, and the operation and operation of the n+1 input, all 2" 1 - 1 of the previous column The highest bit of each state is collected and the over-bit bits of this column are output.
  • the present invention discloses a Viterbi decoder including a branch metric unit BMU, a comparison unit ACS, a survivor path memory, and a backtracking unit TBU that sequentially process received data, and the ACS
  • the selected PM value is sent back to the path metric storage unit of the ACS unit in a subsequent step, and the highest bit accumulation unit is set at the back end of the addition comparison unit ACS.
  • the highest bit accumulation unit is used to perform the highest bit and operation of all 2 1 " -1 node PM values of each column in the grid map.
  • the input is the PM value of the previous column 2 ⁇ ACS units.
  • the highest bit, the 2 m input and operation, the output is the over-bit of the column; in the serial/hybrid structure, the input is the PM of the previous column n (n is the number of ACS units used) of the ACS unit
  • the highest value and the over-bit value accumulated in the previous column are subjected to the operation of n+1 input.
  • the highest bit of all 2" 1 - 1 states of the previous column is collected and the over-bit of the column is set. Output.
  • the highest bits of the respective adders are separately processed.
  • the output add_ Cl and the overflow control bit over_bit of the previous column have two outputs, which are the highest bit output of the adder and the state PM value overflow flag ove.
  • the logical relationship between the input and output is:
  • c 2 c_out& over _ bit+ add_c 2 ;
  • the input of the simple logic circuit has a carry bit ( ⁇ , c 2 , an overflow flag over over 2 and the comparator output result X; a selection signal ai with a selector and a selection result a 2 of the highest bit, the input thereof
  • the logical relationship of the output is:
  • the highest bit selection result 2 is input to the highest bit accumulation
  • the unit outputs the overflow control bit over_bito from the highest bit accumulation unit after collecting the highest bits of all 2" 1 - 1 states of the previous column.
  • a comparison and selection unit circuit for a Viterbi decoder disclosed in the embodiment of the present invention includes two adders A, B, a comparator CMP, and a multiplexer MUX for sequentially processing input data, preventing two
  • the highest-order gate circuits overflowing the adders A and B include carry processing logic circuits A and ⁇ and simple logic circuits that individually process the highest bits of the respective adders, and the highest-order accumulation unit is provided at the rear end of the highest-order gate circuit.
  • the present invention discloses a add-select unit circuit for a Viterbi decoder which further has the following additional technical features:
  • the carry processing logic circuit A is input three, are respective states on a trellis diagram carry output c-out, a carry output add- Cl and on an overflow control bit adder A of the present state of over- Bit, the output has two, which are the highest bit output of the adder A ( ⁇ and the state PM value overflow flag bit ove, the logical relationship between the input and output is:
  • the carry processing logic circuit B 45B
  • the control bit over_bit has two outputs, which are the highest bit output c 2 of the adder B and the state PM value overflow flag bit over 2 , and the logical relationship between the input and output is:
  • Over 2 c_out & over _ bit & add — c 2 ;
  • the input of the single logic circuit has the two adders, the carry bit of B, c 2 , the overflow flag bits ove ri , over 2 and the comparator
  • the output result of the CMP is X;
  • a 2 over x + over 2 c x c 2
  • the highest bit selection result a 2 is input to the highest bit accumulation unit, and the highest of all 2 111 - 1 states in the previous column After the bit is collected, the overflow control bit of the column is output from the highest bit accumulation unit;
  • the highest bit accumulation unit is used to perform all 2" ⁇ nodes of each column in the grid map

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Description

一种维特比译码器以及决定其中加比选单元数据位宽的方法 技术领域
本发明涉及一种基于专用集成电路(ASIC) 的维特比 (Viterbi)译码 器, 尤其涉及一种决定 Viterbi译码器中的加比选( ACS相加-比较-选择) 单元电路的数据位宽的方法。
背景技术 卷积码是一种常用的差错控制编码。 卷积码(nQ, k。, m)表示该卷积 码编码器将 k。比特信息段编成 n。比特的码组,而且所编的 nQ长比特的码组 不仅同当前 k0比特信息段有关联, 还同前面的(m-1)个(m>l, 整数, 我 们称其为约束长度)信息段有关联。 卷积码用生成序列表示输入与输出之 间的关系, 生成序列表示为 § =( · g gfj ), 其中 i=l, 2, , ko; j=l, 2, , n0; L=l, 2, , m。 表示了各个寄存器的输入输出端 (第 L组的第 i个节点)到第 j个模 2加法器输入端的连接线的情况。如果 有连接线则 .=1, 如果无连接线则 =0。 可以看出, 卷积码有很强的关 联性, 能够艮好的进行纠错。 图 1给出一种典型的卷积编码器一一(2, 1, 7)卷积编码器, 即该卷积编码器有 2比特输出, 1比特输入, 约束长度为 7,寄存器阶数等于(m-1 ), 即寄存器阶数为 6;该卷积码的生成序列为 gu= (1011011) 2和 ,2= (1111001) 2, 为了表述简便, 用八进制表示为(133) 8和(171) 8
卷积码的一种主要的纠错译码方法就是 Viterbi算法。 Viterbi算法是一 种基于最大后验概率的卷积译码算法, 具有较强的克服突发错误的能力, 在数据通信、 数据记录与数字信号处理领域都得到广泛的应用。 Viterbi的 译码过程即是通过接收的过程找出与卷积码输入数据流最相似的路径。 遍 历整个状态变化的网格图, 并计算每条路径产生的码距, 当 Viterbi译码器 输入完最后一个数据的时候, 就可以得到最小的码距值, 而到达这个状态 的路径就是要寻找的路径,根据这条径和相关的信息可以得出译码的输出。
图 2是一个通常的 Viterbi译码器的结构框图。 分支度量单元(BMU) 21接收数字信号, 并计算分支度量值作为概率的信息, 这里的分支度量值 取无符号数。 加比选单元(ACS ) 22从 BMU21中读取分支度量值并利用 该分支度量值更新与网格中每个状态对应的原路径度量(PM )值。 ACS22 径度量存储单元 25 中, 由 ACS22选出的 PM值在后继的步骤中被送回 ACS22单元。 幸存路径存储器 24存储从 ACS22输出的选择位。 回溯单元 TBU23利用存储在幸存路径存储器 24中的选择位实现回溯操作并输出译 码序列。
Viterbi的各种应用中,数据输出速率和功耗面积的需求有很大的差别。 当 Viterbi检测器应用在低速的蜂窝电话系统时,要求速度可以低于 lMb/s, 但是要求有非常低的功耗; 在用于调制解调器中的网格编码解调时, 输出 速率要求在几十 Kb/s, 但是对于功耗和芯片的面积以及价格上就有非常严 格的限制;在另一个极端, 高速的 Viterbi检测器也用于磁盘驱动的读信道, 要求输出超过 600Mb/s, 相应的对于面积和功耗要求就比较低。
Viterbi 的实现结构同它所需要完成的功能需求紧密相关, 主要分为串 行、 并行和混合型结构。
1、 串行设计: ACS22每次从路径度量存储单元 25读取一个状态(共 有 2111-1个状态)的 PM值, 即每个时钟只完成一个状态的计算, 2m 个时钟 处理网格表中的一列。这种结构不受约束长度 m限制,只消耗固定的面积, FPGA的面积消耗最小, 但是译码延时也最大。
2、并行设计: ACS22每次从路径度量存储单元 25读取 2m 个状态的 PM值, 即一个时钟完成对所有状态的更新。并行设计的优点是可以实现高 速 Viterbi译码, 最高译码速率可以达到时钟频率; 需要的存储单元也比较 少, 不需要两个路径度量存储单元乒乓式操作。 它的缺点也显而易见: 硬 件资源消耗大。
3、 混合型: 又称串并结合型。 ACS22每次从路径度量存储单元 25读 取 n个状态的 PM值, 即每个时钟处理 n (其中, i^S"1-1 )个状态, 2m- n 个时钟周期完成网格表的一列。 在具体实现时, 可综合考虑面积和速度来 选择 n值(n越大, 速度越快, 面积越大)。 可见, 各种 Viterbi结构主要的区別体现在 ACS22单元, ACS22单元 也是 Viterbi中需要资源最大的部件。
图 3为常规的 ACS22结构。 两个加法器 31A、 31B用于将上一列对应 状态的 PM值与来自 BMU21的分支度量值相加。两个上一列的 PM值可以 来自路径度量存储器(串行 /混合型), 也可以来自相应的上级寄存器并行, 统称为路径度量存储单元 25。 所得的值经过比较器(CMP ) 32, 并通过 2 选 1的多路选择器 MUX33选择输出对应的幸存 PM值和幸存路径值。 ACS 单元是 Viterbi译码器的核心电路, 但是, PM值会随着时间的推移一直累 加下去, 如果不加以控制, ACS单元会有溢出的隐患, 造成严重的译码错 误。
Viterbi译码器通过寻找最小 PM值的路径来进行译码, 由 ACS单元的 电路结构可知, 我们只需保留各个状态 PM值的大小关系即可, 即是说所 有 PM值的基数对于 Viterbi译码没有意义, 可以去掉, 而且这样做可以避 免 PM值的溢出问题。 一般的控制方法是每隔一段时间比较所有的 PM数 值,找出其中最小的一个数值,然后将所有的 PM值减去这个数值,这样即可 以保证加法器不溢出,也可以保持各个 PM数值之间的大小关系不变。 在数 字系统硬件实现时, 采用的方法是: 将每一列所有 PM (假设为 i位)的最 高位参与运算, 如果结果为 'Γ , 说明?]\4 ≥2", 那么就产生一个溢出 控制信号, 用这个信号将网格图中下一列所有的 PM最高位置 '0' , 实际 相当于将所有 PM值减掉基数 2"。 因此, 希望 ACS单元的数据位宽要足 够大, 既能保证各个路径的大小关系不变, 又可以有效地解决溢出问题。
从改善硬件实现和关键路径角度出发,希望 ACS单元的数据位宽尽量 小。 但是, 如果 ACS的数据位宽过小, 既不足以保存各个路径的大小关系 不变, 也会出现 PM值溢出的现象; 如果 ACS位宽过大, 则会增加硬件实 现电路和关键路径的延时, 因此需要恰当的 ACS位宽。
发明内容
本发明要解决的技术问题在于提供一种高可靠性的 Viterbi译码器, 以 及一种能确定 Viterbi译码器 ACS单元最小位宽的方法,。
本发明提供的维特比译码器, 包括顺序处理接收到的数据的分支度量 单元 BMU、 加比选单元 ACS、 幸存路径存储器、 和回溯单元 TBU, 以及 将所述加比选单元 ACS选出的路径度量 PM值在后继的步骤中再送回加比 选单元 ACS的路径度量存储单元,所述维特比译码器的输入是(n。, 1, m) 卷积码, 每个输入数据的位宽用 width表示, 所述加比选单元 ACS的数据 位宽 i由公式一、 公式二和公式三同时决定, 所述公式一如下:
S_PM≤n0'(m-l)' (2wiM― 1);
所述公式二如下:
2i_2< S PM<2i_
所述公式三如下:
"0
(2 -1) +S ΡΜ + (2wideh-l) < 2i
2
如果满足所述公式一和公式二^所 i值全部不满足所述公式三, 则 所述加比选单元的最小数据位宽为 (i+1 ) 比特。
本发明提供的另一种维特比译码器, 包括顺序处理接收到的数据的分 支度量单元 BMU (21)、 加比选单元 ACS (22)、 幸存路径存储器(24)、 和回溯单元 TBU (23), 以及将所述加比选单元 ACS (22)选出的路径度 量 PM值再送回加比选单元 ACS ( 22 )的路径度量存储单元( 25 ), 其特征 在于, 所述维特比译码器的输入是(n。, 1, m)卷积码, 每个输入数据的 位宽用 width表示, 所述加比选单元 ACS(22)的数据位宽 i由公式一、 公式 二和公式三同时决定, 所述公式一如下:
SJPMgs S_PM≤n0-(m-l)- (2" - 1);
所述公式二如下:
2< S_PMgs<2M
所述公式三如下:
S_PMgs < _PM(gsM -(rm-l) ,
其中, H— PM(gs,oo)指用于硬判决时, 向 Viterbi译码器输入全 0数据时 的最大 PM跨度; S_PMgs为网格图中的每一列 PM跨度。
其中, 将所有状态的 PM值清 0, 向 Viterbi译码器输入全 0的数据流, 然后考察所述加比选单元输出的全部度量值获得度量跨度 PM 本发明公开了一种维特比译码器中决定加比选单元数据位宽的方法, 用于确定所述加比选单元的最小数据位宽, 所述维特比译码器的输入是 (n0, 1 m)卷积码, 每个输入数据的位宽用 width表示, 包括下述步驟: 第一步, 根据公式一计算网格图中的每一列的路径度量值(PM)的跨 度 SJPM, 所述公式一如下:
S_PM≤n0 ·0-1)·(2 '' - 1);
第二步, 再根据公式二确定 i值, 所述公式二如下:
2W< S_PM<2i_1
第三步, 验证所述 i值是否满足公式三, 所述公式三如下:
(2i_1-l) +S PM + .(2wm -1)<2'
T
如果所述 i值满足所述公式三, ¾所述加比选单元的最小数据位宽为 1 比特; 如果所述 i值不满足所述公式三, 则所述加比选单元的最小数据位 宽为 (i+1 ) 比特。
按照下述步骤实现所述第一步、 第二步和第三步:
第一步, 才艮据所述(n0, 1 m)卷积码的生成序列, 计算网格图中的 每一列 PM跨度 S_PMgs如下:
S_PMgs < H_PM(gsM-(ridih-V),
其中 H_PM(gs,oo)指用于硬判决时, 向 Viterbi译码器输入全 0数据时的最大 PM跨度;
第二步, 再根据公式二确定 i值, 所述公式二如下: 2i_2< S—PMgs<2"; 第三步, 验证所述 i值是否满足公式三, 所述公式三如下:
(2' -1) +S PMes + (2 1) <2j
2
本发明提出一种用于确定 ACS单元最小位宽的方法, 在解决 PM值溢 出问题的同时,可以有效地较少 ACS单元的硬件实现面积和关键路径延时, 并能普遍适用于 Viterbi的各种不同结构。 在此基础上, 本发明提出了一种 改进的 ACS电路,本电路通过增加简单的逻辑电路、进位位逻辑单元 A和 B,将各个加法器的最高位单独处理,使其可以在 ACS电路输出之前产生, 这样最高位积累单元就可以与 ACS电路同时执行,不增加关键路径的长度。 5 产生 ACS的比较选择信号时, 先对 PM值的最高位处理, 再处理低位值。
因为软判决和硬判决的区別主要在 BMU单元, 体现在 ACS单元只是数据
' 位宽的不同, 因此本发明可以兼容软判决和硬判决。
本发明的最高位累加单元针对 Viterbi 的各种结构采用相近的不同结 构, 使得本发明可以普遍适用于串行、 并行和混合型 Viterbi结构, 而且不
10 同 Viterbi结构下的电路结构相差不大。
附图说明 本发明包括如下附图:
图 1 是一种典型的卷积编码器;
图 2是 Viterbi译码器的结构框图;
15 图 3 是常规的 ACS电路结构;
' 图 4是本发明一个具体实施例的 ACS电路结构;
图 5 本发明一个具体实施例 ACS电路的数据流图。
具体实施方式
下面结合附图对本发明做进一步详细说明。
20 本发明公开的技术方案是一种可以有效减小 ACS 单元数据位宽的方 法, 并在此基础上提出一种 ACS电路, 可以解决 PM值溢出的问题。
首先说明决定 ACS单元最小位宽的方法:
对于一般二进制 (nQ, k0> m )编码器来说, 每次输入的是 ko个信息 元, 有 ^个可能的信息组, 这相应于从码树每一节点上分出的分支数有^ 25 条, 每个节点相应于 2 种不同的信息组输入, 并且每条都有 nQ个码元, 作 为与此相应的输出子码, 相应的每个 ACS也有^个加法器以及 2fr"路数据 比较 I 。一般在通信系统中采用的卷积码都取 ko=l,本实施例也是针对(n0, 1 , m )卷积码的 Viterbi译码器。 另外, Viterbi每接收一个数据, 用 width 位来表示。很显然,用 width参数可以表示判决方式,即 width=l为硬判决, width>l为软判决。
基于以上的分析, 本发明通过以下三步, 可以通过确定最大 PM值和 最小 PM值之差, 即 PM跨度值, 来决定 ACS单元所需的最小位宽。
1、对于(n 1 m)卷积码, 网格图中的每一列的 PM跨度(用 S—PM 表示)有: S_PM≤n0 -(m-l)-(2width -l)o
即对于 (nG 1 m) 卷积码, 每一列所有节点的最大 PM跨度为 "0 · ( - 1) · (2width - 1) ,假设某一列 t的 PM最小值状态为 Sx, 它的度量值 为 PMmin。 在网格图中, 经过(m-1 )列后, 该状态就可以将其度量值延伸 到所有的 2111-1个状态。 我们知道对于 n0输出的卷积码由同一点出发的 PM 值在网格图上前进(m-1 )步之后, PM跨度最大为 .(m- l).(2wrfi/l- 1)。 如 果网格图前进(m-1 )步后, 所有的网格状态都是由该点出发的延伸值, 则 度量跨度最大为 "o'O- 1)'(2W' - 1); 否则,说明剩余的 PM值比由该点 出发的延伸值还要小, 即小于 · ( - 1) · (2wm - 1)
2、 对于有确定生成序列的 (n0 1, m) 卷积码, 网格图中的每一列
PM跨度(用 S— PMgs表示, 指确定生成序列的 PM跨度)还会有所降低, 即:
S_?Mgs≤H_PM(gsM -(ridl"-\),
其中 H— ΡΜ^,οο)指用于硬判决时, 向 Viterbi译码器输入全 0数据的最 大 PM跨度。
由第 1部分可知, (n0, 1, m)卷积码有》S— PM≤"。'( - 1)·(2ιν -1), 但是确定的生成序列使得各状态之间有着微妙的联系, 网格图的拓朴结构 总是保证会有更小的其它路径的度量值作为幸存路径 ΡΜ值, 因此会有 S—PMgs≤S— ΡΜ。 因为网络拓朴结构与输入数据的软硬判决无关, 因此, 只 需考虑硬判决情况, 先求出最大硬判决跨度 H— PM(gs, 然后再拓展到 width位宽即可。
寻找确定生成序列的 (nQ, 1, m)卷积码的 HJPM(gs, max 的步骤是这 样的: 首先, 将所有状态的 PM值清 0, 以免在初始状态引入 PM跨度。 接 着, 向 Viterbi译码器输入全 0的数据流, 然后通过 Matlab或其它软件, 考 察其 ACS输出的全部度量值以及度量跨度, 全 0输入的序列使得 Viterbi 译码器的硬判决 PM跨度最大。
H— PM(gs,。())就是确定生成序列的 (n 1 , m )卷积码的 HJ>M (gs, max 首先, 介绍一下 "源" 和 "汇" 的概念, 某个状态 S的 "源" 和 "汇" 的定义如下: "源" 指的是在网格上可以通过一条支路到达状态 S的状态; "汇" 指的是网格上以 S为 "源" 的状态。 从网格图的分析可知, 状态 0 和状态 S^-l都是以自己作为 "源" 和 "汇" 的。 以状态 0为例, 网格图 中,状态 0→状态 0的输出值为 "00"。 因此, 当以全 0的比特流作为 Viterbi 译码器的输入流时, 幸存路径就是 0→0→0→0。 这种幸存路径受其它状态 的干扰最小, 因为幸存路径始终是 0状态, 没有别的状态能够介入到幸存 路径中; 而且, 对其它状态的 PM值的影响也最大, 因为总是 0状态有最 小的路径度量(PM )值, 它的延伸值很容易成为其它状态的幸存路径。 即 是说, 它是最接近于 1 中所讨论的最大度量跨度情况的。 因此, 可以推出 它就是度量跨度最大的路径, 即 H— PM(gs,Q())就是确定生成序列的 (nG 1 , m )卷积码的 H— PM (gs max
同理, 可知状态 2K -1也是度量跨度最大的路径, 也即是它们的度量跨 度值是相同的,都为 HJPM ( 因为 H—PM(gs,oo)是由网格图的拓朴结构 决定的, 因此经过足够多的列之后, H—PM便不再增加, 而是稳定到一定 的数值, 这就是要求的 H—PM(gs,00
如果 Viterbi每个输入数据用 width位宽来表示(即 width=l时, 为硬判 决; width>l 时, 为软判决), 则确定生成序列的 (no, 1 m )卷积码的 S— PMgs≤i7— _PM(gi,QQ) ' (2wi£/"' - 1)。 Viterbi输入数据用 width位宽来表示, 就 是将硬判决的输入数据 '0, 和 T 对应量化成 "0" 和 "2width-l" 。 在无 噪声的情况下, 也即是将 S—PM ( gs, 从硬判决的 H— PMfe(K))变成了 H_PM(ss> - (Tm -l) ; 在有噪声的情况下, 就 S— PMgs最大的全 0输入而言, 如果噪声很小, 0信号经过噪声信道对应量化成
Figure imgf000010_0001
, 既是说依 然是倾向于硬判决的 0值, 这会使得最小度量状态不变, 而最小度量值增 大, 因而 S— PMgs< H— W(s,,Q。).(2 1); 若噪声很大, Q信号经过噪声信道 对应量化成 "2width-i 2Width_r , 既是说 Viterbi的输入信号倾向于硬判决的
1 值, 这就使得幸存路径不再是 0 状态, 因此也有 S— PMgs
U 。W - 1)。
3、 对于 (no, 1, m) 卷积码, 首先由 (1 )式确定 i值。 如果对应的 i 值能够满足(2)式 ((2)式中 表示不大于 ^的最大整数),则确定该(n0, 1, m)卷积码可以用 i比特位宽的 ACS单元;如果对应的 i值不能满足(2) 式, 则说明 i比特可能不满足 ACS对数据范围的要求, 需要用 (i+1 )比特 位宽的 ACS单元。 如果是有确定生成序列的卷积码, 只需将 S— PM换成相 应的 S— PMgs, 求出对应的 ACS位宽即可, 4艮显然 igs≤i
Figure imgf000011_0001
为了能够保存每一列的 SJPM, 可以用比 S— PM值多一位的 i比特来 表示 ACS单元数据, 但是, 还要保证当所有 PM值的最高位都为 1时, 最 大的 PM值不会溢出。 因此, 需要(2) 式来进行选择。
假设第 t列的最小 PM值为节点 Sx的 PM(mint), 则 (t+1 )列的最小 PM值 PM(min,t+1)有:
n0
PM(min,t) ≤ W(min,r+1)≤ 0 + (2 1) (3) 对于(3)的前半部分这里就不再叙述了, 可以在讲解卷积码的相关书籍中 找到对应的解释; 对于 (3)的后半部分, t列的每个状态在 t+1 时刻均可 以延伸出两个状态, 分別对应输入值为 0和 1。 因为一般卷积码的 no个输 出都与输入即时相关, 所以相同状态的两个不同输入, 势必造成两种状态 的输 延伸的两个状态最小值一定不大于
™ PM (min,t+l)依然是 SX的延伸, 则有: -l) ;
Figure imgf000011_0002
如果 PM(min,t+1)不是 Sx的延伸,则说明 PM( mint+1)值会比 0
(min,/) + " (2wW"'-l) 更小。 综上所述, 可以得到 (3)式。
由 (1)式确定的 i值, 如果能够满足(2) 式则该(nG, 1, m)卷积 码可以用 i比特位宽的 ACS单元; 如果不满足(2) 式, 则需要用 (i+1) 比特位宽的 ACS单元。考虑极限情况, 当某一列的 PM(min,
Figure imgf000012_0001
时, 由
( 3 ) 式 1 ) 取 最 大 值 则 有
PM' (min,i+l) 则该列的最大 PM值为
Figure imgf000012_0002
(2W 1) + S_PM (4)
(2'一1— 1) + (2 1) + S— PM 如果满足( 2 )式,则有 M 2'' ,说明 2'— < ΡΜ{ any,t+\) < 2' ( PM
(any, t+1)表示(t+1)列的任意节点的 PM值), 因此可以用 i比特位宽的 ACS 单元; 如果不能满足(2) 式, 说明当 Mtain(+n≥2'- 1时, 有 M< >2'', 比特数据不足以保存 PM值差异, 需要增加 1 位, 用 (i+1) 比特位宽的 ACS单元。
通过以上三步可以确定任意(η 1, m)卷积码的对应 ACS位宽。 下 面以 (2 1 7) 卷积码和(3 1, 7)卷积码为例进行说明, 支设都是进 行 width=3的软判决:
例 1, (2, 1, 7)卷积码: 由 (1 ) 式有 26<2χ(7— 1)χ23 =84<27, 所以 i=8, 而且由 (2) 式有 27 - 1 + 84 + 1χ7 = 218<28, 所以 (2, 1 7)卷积码可 以用 8位的 ACS单元。 如果确定(2, 1, 7)卷积码的生成多项式为(133) 8 (171) 8, 通过 Matlab软件仿真可以得到
Figure imgf000012_0003
则由 ( 1 )式有 25 <8χ7 = 56<26, 所以 i=7, 而且由 (2) 式有 26—1 + 56 + 1x7 = 126 < 27 , 所 以对于生成序列为 (133) 8 (171) 8的 (2 1, 7)卷积码可以用 7位的 ACS单元。 例 2, (3, 1, 7)卷积码: 由 (1)式有 26<3χ(7— 1)χ23 =126<27, 所以 i=8, 但是由 (2)式有 27 - 1 + 126 + 1χ7 = 260>28, 因此(2, 1, 7 )卷积码需 要用 8+1=9位的 ACS单元。 如果确定(3, 1, 7)卷积码的生成多项式为 ( 133 ) 8、 ( 145 ) 8、 ( 175 ) 8,通过 Matlab软件仿真可以得到 H— PM(gs,。。)=12。 贝' J由 ( 1 ) 式有 26 <12χ7 = 84<27 , 所以 i=8 , 而且由 ( 2 ) 式有 27-l + 84 + lx7 = 218<28, 所以对于生成序列为 ( 133 ) 8、 ( 145 ) 8、 ( 175 ) 8 的 (3, 1, 7)卷积码可以用 8位的 ACS单元。 在确定 ACS单元位宽 i之后 ,本发明实施例提出一种改进的 ACS电路, 可以有效地解决 PM值溢出问题, 而且相对于传统的 ACS设计也减小了硬 件实现和关键路径延时, 并且能够普遍适用于 Viterbi的并行 /串行 /混合型 结构。
如图 4所示是本发明的改进 ACS (输入数据为 i比特位宽)电路单元结 构图, 在该电路中, 并没有采用 i 比特位宽的加法器、 比较器, 而是采用 (i-1)比特位宽加法器和比较器, 然后通过增加进位位逻辑单元 45A、 45B 和 Logic基本逻辑单元 46对最高位进行单独处理。
下面给出图 4中进位逻辑单元 45A、 45B和 Logic基本逻辑单元 46的 真值表。
Figure imgf000013_0001
1 0 1 0 0
1 1 0 X 1
1 1 1 1 0
这是以 45A为例(X状态为不可能出现的状态)的进位逻辑单元真值 表。 它的输入有三个, 分别是网格图中上一列相应状态的进位输出 c—out、 本状态的加法器 41A进位输出 add— (^和上一列的溢出控制位 over— bit, 输 出有两个, 分别为本加法器的最高位输出 Cl和该状态 PM值溢出标志位 over!。当出现 PM值溢出问题时,对应于真值表中的 {c— out, add— }=2'bl 1 , 即上一时刻的最高位输出为 1 , 本时刻的加法器 41A进位位也为 1, 说明 本数据已经两次超过 2Μ, 即已经超过 如果这时候 over—bit=l , 即所有 状态 PM值都已经大于等于 2", 所以 PM值可以减掉 2μι, 进位位 输出 为 1; 如果这时候 over— bit=0, 则说明这时本加法器的输出已经超过 但 是还没有所有状态 PM值都大于等于 2 1, 则该 PM值一定是被舍弃的 PM 值, 所以, 我们令 输出为 X, 而 ovei^为 1 (表示该数即将被舍弃)。 通 过^] "真值表的分析可以得出 ci=c— out over—bit +add_Ci , overi= C_OUt& over _ bit & add_Ci„
对于基本逻辑单元 Logic46, 它的输入有五个分别是两个加法器 41A、
4 IB的进位位 d、 c2, 溢出标志位 ove 、 over2和比较器( CMP ) 42的输出 结果 X, 输出有两个, 一个是选择电路(MUX ) 43的选择信号 1和最高位 的选择结果 。 这里, 溢出标志位 over,、 over2是为了防止非幸存路径的溢 出问题。
为了分析逻辑关系方便, 先分析 c!、 c2和 X的逻辑关系, 令它们的输 出分别对应为 ai— temp和 a2__temp,再考虑 over!、 over2、 temp和 — temp 之间的逻辑关系。
所以, Logic基本逻辑单元 46分为两个真值表格来表示。 Cl c2 X a^tem a2— temp
0 0 0 0 0
0 0 1 1 0
0 1 0 0 0
0 1 1 0 0
1 0 0 1 0
1 0 1 1 0
1 1 0 0 1
1 1 1 1 1
Figure imgf000015_0001
对于第二部分, {overi , OVer2}=2,bl l时, 即本 ACS单元的两个 PM值 都出现溢出现象, 通过前面决定 ACS数据位宽的分析, 可知这是不可能发 生的情况, 可以不用理会。 通过对两个真值表的分析可以得出:
a, = over, + o er2cxx + over2ct c2 + over2xc2; a2 = over +over2c1c2 下面详细解 #一下本电路的性能改进:
1、本发明实施例提供的能够解决溢出问题的 ACS电路, 虽然本电路增 加了一些逻辑电路, 但是, 这些逻辑电路只是由简单的与或非门组成, 消 耗资源很少; 而且, 通过本方法已经使 ACS的数据位宽达到最小。 综合考 虑, 本发明有效地减小了硬件电路资源。
2、 时间特性分析: 图 5给出本发明 ACS电路的数据流图,假设最终确 定 ACS数据位宽为 L 该图与图 4相比在电路表现形式上做了如下改动: 将 Logic中的 a!和¾分开表示, 并将 进行变形, 如下式所示:
ax = overx + over2 ·οχ·χ - over2 · ct · c2 + over2 'c2'x
= (over2 · cx + over2 - c2)-x + overx + over2 -c -c2) = ax + b ', 其中 a=over2 -c, + over2 -V2 , b= over + over2 -cx - 因为 X信号出现的较晚 , 因此 1信号可以分为两部分执行: a、 b电路先执行; 收到 X信号后, 再执 行 a^ax+b的操作。
从数据流的角度看, 本发明 ACS电路可以分成三个阶段, 每个阶段的 电路可以同时执行: 第一阶段包括两个( i-1 )位加法器 41A、 41B和 45A、 45B 中的 over— bit非门、 两个与门相关的电路, 很显然这个阶段的关键路 径是(i-1)位加法器。 第二阶段的电路在第一阶段电路之后执行, 包括 45A 和 45B中的两个或门 (Cl、 c2)、 两个与门 (over over2)、 46中的 a2、 64 输入与非门、( i-1 )位 CMP( X )以及 46中的 a和 b。而第三阶段电路 a尸 ax+b 只能在比较器 CMP输出比较信号 X之后执行。
在第一阶段电路之后, 数据流分为三股, 第一股数据流: 与门 (oveiv over2)、 或门 (Cl、 c2) 与门 (a2)—最高位积累单元; 第二股数据流: CMP (X); 第三股数据流与门 (over〗、 over2)、 或门(c!、 c2)→46中的 &和¾)。 如图所示, 后两股数据流交汇于 afax+b部分, 显然比较器决定了后两股 数据流的关键路径。 第一股数据流与后两股数据流不相关, 实际上三股数 据流会合并成两股。
先分析 2m"1输入与门的延时:假设该多输入与门用二输入的与门级联实 现, 则需要(m-1 )级的二输入与门(第一级 2m-2个二输入与门, 以此类推, 最后一级为 1个二输入与门), 因此最大延时为 tmax = ( m-1 ) t ^^ n , 在实际实现时一定会采取延时更小的电路, 延时一定不会大于 tmax的值。 最高位积累单元 44延时最大的情况是 Viterbi采用并行结构即需要 2111-1输 入与门的情况, 因此有 t44≤ ( m-1 ) xt二^与。。 因此, 最高位积累单元延时 小于 (i-1 )位比较器 + ( ai=ax+b ) +2选 1的多路选择器。
综上, 整个电路的关键路径为: (i-1 )位加法器 + ( i-1 )位比较器 +二输 入与门 +二输入或门 +2选 1多路选择器。 很显然, 本电路使得关键路径有 所降低。
3、本电路普遍适用于串行、并行与混合型 Viterbi结构。在并行结构时, 输入为上一列 2m 个 ACS单元的 PM值最高位, 进行 2m 输入的与操作, 输出为本列的 over— bit位; 在串行 /混合型结构时, 输入为上一列 n ( n为采 用的 ACS单元个数)个 ACS单元的 PM值最高位以及上一列已经积累的 over— bit值, 进行 n+1输入的与操作,将上一列的所有 2"1-1个状态的最高位 都搜集全之后将本列的 over— bit位输出。
综上所述, 本发明公开了一种维特比译码器, 包括顺序处理接收到的 数据的分支度量单元 BMU、 加比选单元 ACS、 幸存路径存储器、 和回溯 单元 TBU, 以及将所述 ACS选出的 PM值在后继的步驟中再送回 ACS单 元的路径度量存储单元,在所述加比选单元 ACS后端设置最高位积累单元。
所述的最高位积累单元用来进行网格图中每一列的所有 21"-1个节点 PM值的最高位与操作。 在并行结构时, 输入为上一列 2^个 ACS单元的 PM值最高位, 进行 2m 输入的与操作, 输出为本列的 over— bit位; 在串行 /混合型结构时, 输入为上一列 n ( n为采用的 ACS单元个数)个 ACS单元 的 PM值最高位以及上一列已经积累的 over— bit值, 进行 n+1输入的与操 作, 将上一列的所有 2"1-1个状态的最高位都搜集全之后将本列的 over— bit 位输出。
在所述加比选单元 ACS 中还包括将各个加法器的最高位单独处理的 两个进位处理逻辑电路 A和 B 、 以及简单逻辑电路 ; 所述进位处理逻辑 电路 A的输入有三个,分別是网格图中上一列相应状态的进位输出 c—out、 本状态的加法器进位输出 add_Cl和上一列的溢出控制位 over_bit,输出有两 个, 分别为本加法器的最高位输出 ^和该状态 PM值溢出标志位 ove , 其 输入输出的逻辑关系为:
C 1 =C— OUt& over一 bit +add— C i;
overi= c_out& over _ bit & add—
所述进位处理逻辑电路 B的输入有三个, 分别是网格图中上一列另一个相 应状态的进位输出 c—out、本状态的加法器进位输出 add— 和上一列的溢出 控制位 over— bit, 输出有两个, 分别为本加法器的最高位输出 c2和该状态 PM值溢出标志位 over2, 其输入输出的逻辑关系为:
c2=c_out& over _ bit+ add_c2
over2= c_out& over _ bit & add_c2
所述简单逻辑电路的输入有进位位 (^、 c2, 溢出标志位 over over2和所述 比较器输出结果 X; 输出有选择器的选择信号 ai和最高位的选择结果 a2, 其输入输出的逻辑关系为:
ax = overx + over2c{x + over2cx c2 + over2xc22 = overx + over2cxc2 , 所述最高位的选择结果 2输入所述最高位积累单元, 在将上一列的所 有 2"1-1个状态的最高位搜集全之后从所述最高位积累单元输出本列溢出控 制位 over_bito
本发明实施例公开的一种用于维特比译码器的加比选单元电路, 包括 顺序处理输入数据的两个加法器 A、 B、比较器 CMP、和多路选择器 MUX, 防止两个加法器 A、 B溢出的最高位选通电路包括将各个加法器的最高位 单独处理的进位处理逻辑电路 A和^ 以及简单逻辑电路, 在最高位选通 电路后端设置最高位积累单元。
本发明公开了一种用于维特比译码器的加比选单元电路还具有下述附 加技术特征: 所述进位处理逻辑电路 A的输入有三个, 分别是网格图中上一列相应 状态的进位输出 c—out、 本状态的加法器 A的进位输出 add— Cl和上一列的 溢出控制位 over— bit, 输出有两个, 分别为本加法器 A的最高位输出(^和 该状态 PM值溢出标志位 ove , 其输入输出的逻辑关系为:
cfc— out& over
overi= c_out& over _ bit & add_ci;
所述进位处理逻辑电路 B ( 45B )的输入有三个, 分别是网格图中上一列另 一个相应状态的进位输出 c— out、 本状态的加法器 B的进位输出 add__c2和 上一列的溢出控制位 over_bit, 输出有两个, 分别为本加法器 B 的最高位 输出 c2和该状态 PM值溢出标志位 over2, 其输入输出的逻辑关系为:
C2=C_OUt& over—bit+ add— ;
over2= c_out& over _ bit & add— c2; 所述筒单逻辑电路的输入有所述两个加法器 、 B的进位位 、 c2, 溢 出标志位 overi、 over2和所述比较器 CMP的输出结果 X; 输出有所述选择 器 MU 的选择信号 和最高位的选择结果 a2,其输入输出的逻辑关系为: ax = overx + over2cxx + over2cx c2 + over2xc2; a2 = overx + over2cxc2 所述最高位的选择结果 a2输入所述最高位积累单元, 在将上一列的所 有 2111-1个状态的最高位搜集全之后从所述最高位积累单元输出本列溢出控 制位 over— bit;
所述的最高位积累单元用来进行网格图中每一列的所有 2"^个节点
PM值的最高位与操作,将上一列的所有 2^个状态的最高位都搜集全之后 将本列的 over bit位输出。

Claims

权 利 要 求
1、 一种维特比译码器, 包括顺序处理接收到的数据的分支度量单元 BMU (21)、 加比选单元 ACS (22)、 幸存路径存储器(24)、 和回溯单元 TBU ( 23 ), 以及将所述加比选单元 ACS ( 22 )选出的路径度量 PM值在后 继的步骤中再送回加比选单元 ACS ( 22 )的路径度量存储单元( 25 ), 其特 征在于, 所述维特比译码器的输入是(nQ, 1, m) 卷积码, 每个输入数据 的位宽用 width表示, 所述加比选单元 ACS(22)的数据位宽 i由公式一、 公 式二和公式三同时决定, 所述公式一如下:
S_PM≤n0-(m-l)-(2width -l); 所述公式二如下: 2≤ S ΡΜ<2 所述公式三如下:
(21_1-1) +S ΡΜ + (2、' —1) <2[
2
2、 根据权利要求 1所述的一种维特比译码器, 其特征在于, 如果满足 所述公式一和公式二的所述 i值全部不满足所述公式三, 则所述加比选单 元的最小数据位宽为 (i+1 ) 比特。
3、 一种维特比译码器, 包括顺序处理接收到的数据的分支度量单元 BMU (21)、 加比选单元 ACS (22)、 幸存路径存储器(24)、 和回溯单元 TBU ( 23 ), 以及将所述加比选单元 ACS ( 22 )选出的路径度量 PM值再送 回加比选单元 ACS (22)的路径度量存储单元(25), 其特征在于, 所述维 特比译码器的输入是(nQ, 1, m)卷积码, 每个输入数据的位宽用 width 表示,所述加比选单元 ACS(22)的数据位宽 i由公式一、公式二和公式三同 时决定, 所述公式一如下: width
S_PMgs S_PM≤nQ-(m-l)- (2 一 1)
所迷公式二如下-
Figure imgf000021_0001
所述公式三如下:
S_PMgs < H_PMM)-{2wdth-\) ,
其中, H__PM(gs,(X))指用于硬判决时, 向 Viterbi译码器输入全 0数据时 的最大 PM跨度; S_PMgs为网格图中的每一列 PM跨度。
4、 根据权利要求 3所述的一种维特比译码器, 其特征在于, 将所有状 态的 PM值清 0, 向 Viterbi译码器输入全 0的数据流, 然后考察所述加比 选单元输出的全部度量值获得度量跨度 PMc
5、 一种维特比译码器中决定加比选单元数据位宽的方法, 用于确定所 述加比选单元的最小数据位宽, 所述维特比译码器的输入是(nQ, 1, m) 卷积码, 每个输入数据的位宽用 width表示, 其特征在于, 包括下述步骤: 第一步, 根据公式一计算网格图中的每一列的路径度量值 PM的跨度
S_PM, 所述公式一如下:
S_PM≤nQ-(m-l)'(2width-l); 第二步, 再根据公式二确定 i值, 所述公式二如下: 2[-2≤ S ΡΜ<2"; 第三步, 验证所述 i值是否满足公式三, 所述公式三如下:
"0
(2 -1) +S PM + (2width-l) <2[
2 如果所述 i值满足所述公式三, 则所述加比选单元的最小数据位宽为 i 比特; 如果所述 i值不满足所述公式三, 则所述加比选单元的最小数据位 宽为 (i+1) 比特。
6、根据权利要求 5所述的一种维特比译码器中决定加比选单元数据位 宽的方法, 其特征在于, 按照下述步骤实现所述第一步、 第二步和第三步: 第一步, 根据所述(nQ, 1, m)卷积码的生成序列, 计算网格图中的 每一列 PM跨度 S_PMgs如下:
S_PMgs < H__PM(gsM-(riAh-l) ,
其中 H— PMfeoo)指用于硬判决时, 向 Viterbi译码器输入全 0数据时的最大 PM跨度;
第二步, 再根据公式二确定 i值, 所述公式二如下: 2i_2< S_PMgs<2i-1; 第三步, 验证所述 i值是否满足公式三, 所述公式三如下:
(2 -1) +S PMes + (2wid"'-l) <2j
2
7、根据权利要求 6所述的一种维特比译码器中决定加比选单元数据位 宽的方法, 其特征在于, 确定 H— PM(gs,。Q)的步骤包括: 将所有状态的 PM值 清 0, 向 Viterbi译码器输入全 0的数据流, 然后通过 Matlab或其它软件考 察所述维特比译码器中所述加比选单元输出的全部度量值获得度量跨度。
PCT/CN2006/001989 2005-08-08 2006-08-07 Decodeur viterbi et procede pour determiner la largeur de bits de donnees de l'unite ajout-comparaison-selection du decodeur WO2007016871A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200510036378.8 2005-08-08
CNB2005100363788A CN100429870C (zh) 2005-08-08 2005-08-08 一种维特比译码器以及决定其中加比选单元数据位宽的方法

Publications (1)

Publication Number Publication Date
WO2007016871A1 true WO2007016871A1 (fr) 2007-02-15

Family

ID=35963998

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2006/001989 WO2007016871A1 (fr) 2005-08-08 2006-08-07 Decodeur viterbi et procede pour determiner la largeur de bits de donnees de l'unite ajout-comparaison-selection du decodeur

Country Status (2)

Country Link
CN (1) CN100429870C (zh)
WO (1) WO2007016871A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060340B (zh) * 2007-04-04 2011-05-11 中兴通讯股份有限公司 选择幸存路径累计度量位宽并防止该度量溢出的方法
CN101321035B (zh) * 2008-07-09 2012-03-21 上海华为技术有限公司 差值上限获取方法、定点方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001003308A1 (en) * 1999-07-06 2001-01-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Viterbi decoder
CN1409899A (zh) * 2000-03-14 2003-04-09 夏普公司 维特比译码器
US20030188142A1 (en) * 2002-03-28 2003-10-02 Intel Corporation N-wide add-compare-select instruction

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881075A (en) * 1996-03-18 1999-03-09 Samsung Electronics Co., Ltd. Viterbi decoder
CN1159933C (zh) * 2002-05-29 2004-07-28 信息产业部电信传输研究所 通用的卷积编码器和维特比译码器
TWI224432B (en) * 2003-10-28 2004-11-21 Ind Tech Res Inst A re-configurable Viterbi decoder
US7117426B2 (en) * 2003-12-01 2006-10-03 Mediatek Inc. Branch metric computation and add-compare-select operation in viterbi decoders

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001003308A1 (en) * 1999-07-06 2001-01-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Viterbi decoder
CN1409899A (zh) * 2000-03-14 2003-04-09 夏普公司 维特比译码器
US20030188142A1 (en) * 2002-03-28 2003-10-02 Intel Corporation N-wide add-compare-select instruction

Also Published As

Publication number Publication date
CN1731687A (zh) 2006-02-08
CN100429870C (zh) 2008-10-29

Similar Documents

Publication Publication Date Title
US7765459B2 (en) Viterbi decoder and viterbi decoding method
JP2003511895A (ja) 移動通信システムにおける構成復号装置及び方法
EP1130789A2 (en) Soft-decision decoding of convolutionally encoded codeword
US7131055B2 (en) Fast bit-parallel Viterbi decoder add-compare-select circuit
US6070263A (en) Circuit for use in a Viterbi decoder
US8904266B2 (en) Multi-standard viterbi processor
EP2339757B1 (en) Power-reduced preliminary decoded bits in viterbi decoder
US20070113161A1 (en) Cascaded radix architecture for high-speed viterbi decoder
US7234100B1 (en) Decoder for trellis-based channel encoding
US8055986B2 (en) Viterbi decoder and method thereof
JP5116677B2 (ja) 軟出力復号器、反復復号装置、及び軟判定値算出方法
WO2007016871A1 (fr) Decodeur viterbi et procede pour determiner la largeur de bits de donnees de l&#39;unite ajout-comparaison-selection du decodeur
CN106209117B (zh) 一种低资源消耗的多参数可配置Viterbi译码器
CN1129257C (zh) 串行回溯的最大似然解码方法及其使用该方法的解码器
Surya et al. Design of a low power and high-speed Viterbi decoder using T-algorithm with normalization
CN111030711B (zh) 一种维特比译码器并行加比选处理方法
KR101134806B1 (ko) 부호 복호 방법
US20050138535A1 (en) Method and system for branch metric calculation in a viterbi decoder
US7020831B2 (en) Pipelined add-compare-select circuits and methods, and applications thereof
Rashid et al. Pruning the algorithm complexity of the Add-Compare Select Unit (ACSU) for the Viterbi Decoder-A Review
US20100185925A1 (en) Differential Locally Updating Viterbi Decoder
Véstias High-Speed Viterbi Decoder
Reddy et al. An Efficient Low Power Viterbi Decoder Design using T-algorithm
YASMINE et al. RTL Design and Implementation of TCM Decoders using Viterbi Decoder
Laddha et al. Implementation of Adaptive Viterbi Decoder through FPGA

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06775307

Country of ref document: EP

Kind code of ref document: A1