KR100487365B1 - viterbi decoding method - Google Patents

viterbi decoding method Download PDF

Info

Publication number
KR100487365B1
KR100487365B1 KR10-2000-0011121A KR20000011121A KR100487365B1 KR 100487365 B1 KR100487365 B1 KR 100487365B1 KR 20000011121 A KR20000011121 A KR 20000011121A KR 100487365 B1 KR100487365 B1 KR 100487365B1
Authority
KR
South Korea
Prior art keywords
rate
decoding
current frame
result
crc
Prior art date
Application number
KR10-2000-0011121A
Other languages
Korean (ko)
Other versions
KR20010087051A (en
Inventor
피재식
Original Assignee
엘지전자 주식회사
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 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR10-2000-0011121A priority Critical patent/KR100487365B1/en
Publication of KR20010087051A publication Critical patent/KR20010087051A/en
Application granted granted Critical
Publication of KR100487365B1 publication Critical patent/KR100487365B1/en

Links

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D25/00Pumping installations or systems
    • F04D25/02Units comprising pumps and their driving means
    • F04D25/08Units comprising pumps and their driving means the working fluid being air, e.g. for ventilation

Abstract

본 발명은 이동통신에 있어서, 특히 가변 데이터 레이트(variable data rate)를 가지는 통신 채널을 위한 비터비 디코딩 방법에 관한 것으로, 이전 프레임에서 판정된 레이트를 현재 프레임에 대한 디코딩 레이트로 로드(load)하는 단계와, 상기 로드된 디코딩 레이트로 상기 현재 프레임에 대한 디코딩을 실시하는 단계와, 상기 디코딩 결과에서 발생된 상기 현재 프레임의 순환중복코드(CRC) 검사 결과 및 비트 에러수를 정해진 기준과 비교하는 단계와, 상기 비교 결과에서 상기 현재 프레임의 순환중복코드(CRC) 검사 결과 및 비트 에러수가 기준에 미달일 경우 상기 로드된 현재 프레임에 대한 디코딩 레이트를 정해진 다음 레이트로 재로드(reload)시키는 단계와, 상기 재로드된 레이트로 상기 현재 프레임에 대한 디코딩을 재실시하는 단계로 이루어지는 비터비 디코딩 방법을 제공한다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a Viterbi decoding method, particularly for a communication channel having a variable data rate in mobile communications, wherein the rate determined in the previous frame is loaded at the decoding rate for the current frame. Decoding the current frame at the loaded decoding rate, and comparing a cyclic redundancy code (CRC) check result and the number of bit errors of the current frame generated from the decoding result with a predetermined criterion; And reloading the decoding rate for the loaded current frame at a predetermined next rate when the result of the cyclic redundancy code (CRC) check of the current frame and the number of bit errors in the comparison result do not meet the criteria. Viterbi consisting of re-decoding the current frame at the reloaded rate Provide a decoding method.

Description

비터비 디코딩 방법{viterbi decoding method}Viterbi decoding method

본 발명은 이동통신에 관한 것으로, 특히 가변 데이터 레이트(variable data rate)를 가지는 통신 채널을 위한 비터비 디코딩 방법에 관한 것이다.TECHNICAL FIELD The present invention relates to mobile communications, and in particular, to a Viterbi decoding method for a communication channel having a variable data rate.

일반적으로 데이터를 전송할 때는 에러가 발생한다. 이러한 에러를 수행하기 위해 에러 정정 부호(Error Correction Code)가 사용된다.In general, errors occur when transferring data. An Error Correction Code is used to perform this error.

에러 정정 부호로는 컨벌루셔널 코드(Convolutional code)가 있으며, 이 컨벌루셔널 코드를 사용하는 컨벌루셔널 코딩(Convolutional coding)은 일정 길이의 메모리를 이용하여 이전 데이터와 현재 데이터를 비교한 후 그들의 상호 연관성을 통해 부호화 하는 부호화 기법이다.The error correction code is a convolutional code. Convolutional coding using the convolutional code uses a certain length of memory to compare previous data with the current data, and then Coding technique that encodes through correlation.

컨벌루셔널 코드(Convolutional code)에는 비터비 코드(Viterbi code)와 터보 코드(Turbo code)가 있으며, 현재 통신 시스템(예로써, CDMA 통신 시스템)에는 비터비 코드(Viterbi code)가 이용되고 있다. Convolutional codes include Viterbi codes and Turbo codes. Viterbi codes are currently used in communication systems (eg, CDMA communication systems).

다음은 비터비 코드를 사용한 종래의 비터비 디코더의 구성 및 동작에 대해 설명한다. The following describes the configuration and operation of a conventional Viterbi decoder using Viterbi code.

도 1은 종래 기술에 따른 비터비 디코더의 구조를 나타낸 블록도이다.1 is a block diagram showing the structure of a Viterbi decoder according to the prior art.

도 1을 참조하면, 비터비 디코더는 입력 버퍼(1)와, 입력 버퍼(1)로부터 출력된 브렌치 메트릭(branch metric) 값과 이전 경로 메트릭(path metric) 값을 이용하여 가산(add), 비교(compare) 및 선택(select) 절차를 수행하는 가산/비교/선택 블록(2)과, 가산/비교/선택 블록(2)에서 출력된 결정비트 정보를 저장하고, 일정 길이를 역추적(trace-back)한 후에 데이터를 출력하는 역추적 블록(trace-back block)(3)과, 상기한 입력 버퍼(1)와 가산/비교/선택 블록(2)과 역추적 블록(3)의 일련의 동작을 제어하는 제어기(4)와, 역추적 블록(3)에서 추출된 데이터를 저장하는 출력 버터(5)와, 각 데이터 레이트에 대한 순환 중복 코드(Cyclic Redundancy Code ; 이하, CRC 라 약칭함)를 검사하는 CRC 검사블록(6)과, 각 데이터 레이트에 대한 경판정(Hard decision) 값과 상기한 구성요소들(1,2,3)에 의해 디코딩된 데이터의 재부호화(re-encoding) 값을 비교하여 비트당 에러 확률(Bit Error Rate ; 이하, BER 이라 약칭함)을 계산하고, 그에 따른 비트 에러수를 출력하는 BER 블록(7)으로 구성된다.Referring to FIG. 1, the Viterbi decoder adds and compares an input buffer 1 with a branch metric value output from the input buffer 1 and a previous path metric value. add / compare / select block (2) for performing a compare and select procedure, and decision bit information output from the add / compare / select block (2), and trace-trace a predetermined length. a trace-back block 3 that outputs data after being backed up, and a series of operations of the input buffer 1, the addition / compare / selection block 2, and the traceback block 3 described above. The controller 4 for controlling the control, the output butter 5 for storing the data extracted from the traceback block 3, and the cyclic redundancy code (hereinafter abbreviated as CRC) for each data rate The CRC check block 6 to check, the hard decision value for each data rate and the decoded by the components 1, 2 and 3 described above. Re-encoding (re-encoding) the error probability per bit as compared to the value of the data; calculating (Bit Error Rate hereinafter abbreviated as BER hereinafter), and consists of a BER block 7 which outputs the number of bit errors thereof.

상기한 구성에 따른 비터비 디코더의 동작은 다음과 같다.The operation of the Viterbi decoder according to the above configuration is as follows.

일단 입력비트를 두 개의 심볼(symbol)을 만들고, 이 만들어진 두 개의 심볼로부터 구해진 브렌치 메트릭(branch metric) 값이 입력 버퍼(1)에 저장된다. 또한 입력 버퍼(1)에는 이전 입력 심볼에 의해 생성된 경로 메트릭(path metric) 값이 저장되어 있다.Once the input bits are made two symbols, the branch metric values obtained from these two symbols are stored in the input buffer 1. In addition, the input buffer 1 stores path metric values generated by previous input symbols.

가산/비교/선택 블록(2)은 입력 버퍼(1)로부터 출력된 브렌치 메트릭(branch metric) 값과 경로 메트릭(path metric) 값을 가산하고(add), 같은 상태로 천이하는 두 값을 비교한다. 이 후 보다 작은 값을 가지는 부분을 선택하고, 그때의 상태 천이 정보(결정비트 정보)를 역추적 블록(trace-back block)(3)에 제공한다. The add / compare / select block 2 adds a branch metric value and a path metric value output from the input buffer 1, and compares two values that transition to the same state. . Thereafter, a portion having a smaller value is selected, and the state transition information (decision bit information) at that time is provided to the trace-back block 3.

역추적 블록(trace-back block)(3)은 가산/비교/선택 블록(2)으로부터 전달받은 결정비트 정보를 저장하고, 부호화된 데이터를 복원하기 위해 정해진 일정 길이만큼을 역추적(trace-back)한다. The trace-back block 3 stores decision bit information received from the addition / comparison / selection block 2 and traces back a predetermined length to restore the encoded data. )do.

역추적 블록(3)에서 출력된 데이터는 출력 버퍼(5)에 저장된다. 참고로 가변 레이트 전송을 위해, 풀레이트(Full rate), 하프레이트(Half rate), 쿼터레이트(Quarter rate) 그리고 1/8레이트(1/8 rate)와 같이 네 가지 레이트를 사용하는 경우에는, 각 레이트에 따라 디코딩된 데이터가 그 출력 버퍼(5)에 저장된다. 여기서, 풀레이트(Full rate)는 36kbps, 하프레이트(Half rate)는 18kbps, 쿼터레이트(Quarter rate)는 9kbps 그리고 1/8레이트(1/8 rate)는 4.5kbps이다.The data output from the backtracking block 3 is stored in the output buffer 5. For reference, in case of using four rates such as full rate, half rate, quarter rate and 1/8 rate for variable rate transmission, The decoded data according to each rate is stored in the output buffer 5. Here, the full rate is 36kbps, the half rate is 18kbps, the quarter rate is 9kbps and the 1/8 rate is 4.5kbps.

이렇게 각 가변 레이트에 따라 디코딩된 데이터가 출력 버퍼(5)에 저장될 때, CRC 검사블록(6)은 그 레이트들에 대한 각 CRC를 검사한다. 그 CRC 검사 결과에서 그 레이트의 CRC가 일치하면 CRC 검사 결과를 알리는 신호(crc_ok)의 값으로 "True"가 출력되며, 그 반대인 경우에는 "False"가 출력된다.When data decoded according to each variable rate is stored in the output buffer 5, the CRC check block 6 checks each CRC for those rates. If the CRC of the rate matches in the CRC test result, "True" is output as the value of the signal (crc_ok) indicating the CRC test result, and "False" is output in the opposite case.

또한 각 가변 레이트에 따라 디코딩된 데이터가 출력 버퍼(5)에 저장될 때, BER 블록(7)은 그 레이트들에 대한 경판정(Hard decision)과 재부호화(re-encoding)를 실시한다. 이후 각 레이트에 대한 경판정(Hard decision) 값과 디코딩된 데이터의 재부호화(re-encoding) 값을 비교하여 BER을 계산하고, 그에 따른 비트 에러수를 출력한다. Also, when data decoded according to each variable rate is stored in the output buffer 5, the BER block 7 performs hard decision and re-encoding on those rates. The BER is then calculated by comparing the hard decision value for each rate with the re-encoding value of the decoded data, and outputs the number of bit errors accordingly.

다음은 상기한 종래의 비터비 디코더에 대한 각 레이트에 따른 동작을 보다 상세히 설명하기 위해 하나의 예를 든다.The following is an example to describe in detail the operation according to each rate for the conventional Viterbi decoder.

그에 앞서 먼저 마이크로 프로세서(미도시)에 의해 디코딩될 데이터가 입력 버퍼(1)에 쓰여진다.Prior to this, data to be decoded by a microprocessor (not shown) is first written to the input buffer 1.

도 2는 종래 기술에 따른 비터비 디코딩 절차를 설명하기 위한 일 예를 나타낸 도면이다.2 is a diagram illustrating an example for explaining a Viterbi decoding procedure according to the prior art.

도 2를 참조하면, 먼저 A-시간 동안에 풀레이트(Full rate)에 대한 디코딩 동작이 실행된다. 이 때는 먼저 가산/비교/선택 블록(2)을 통해 역추적 블록(3)에 필요한 데이터(결정비트 정보)를 만들고, 이를 역추적 블록(3)의 메모리(미도시)에 저장하며, 역추적 블록(3)의 내부 회로에 의해 디코딩이 실행된다. 이러한 동작을 통해 만들어진 디코딩 데이터는 출력 버퍼(5)에 저장된다. Referring to FIG. 2, first, a decoding operation on a full rate is performed during A-time. In this case, first, data (decision bit information) necessary for the backtracking block 3 is created through the addition / comparison / selection block 2, and stored in the memory (not shown) of the backtracking block 3, and the backtracking is performed. Decoding is performed by the internal circuit of block 3. The decoded data produced through this operation is stored in the output buffer 5.

다음 B-시간 동안에는 하프레이트(Half rate)에 대한 디코딩 동작이 실행된다. 이 때는 상기 설명된 풀레이트(Full rate)에 대한 디코딩 동작과 동일한 절차를 거치며, B-시간 동안의 동작을 통해 만들어진 디코딩 데이터는 출력 버퍼(5)에 저장된다.During the next B-time, the decoding operation for half rate is performed. In this case, the same procedure as the decoding operation for the full rate described above is performed, and the decoded data generated through the operation during the B-time is stored in the output buffer 5.

다음 C-시간 동안에는 쿼터레이트(Quarter rate)에 대한 디코딩 동작이 실행되며, 다음 D-시간 동안에는 1/8레이트(1/8 rate)에 대한 디코딩 동작이 실행된다. 이들 동작도 상기 설명된 풀레이트에 대한 디코딩 동작과 동일한 절차를 거치며, 각각 C-시간과 D-시간 동안 만들어진 디코딩 데이터도 출력 버퍼(5)에 저장된다.During the next C-time, the decoding operation for the quarter rate is performed, and during the next D-time, the decoding operation for the 1/8 rate is performed. These operations also go through the same procedure as the decoding operation for the full rate described above, and the decoded data produced during C-time and D-time, respectively, is also stored in the output buffer 5.

도 2에서 A-지점(10)은 풀레이트(Full rate)에 대한 디코딩 동작을 통해 디코딩된 데이터가 출력 버퍼(5)에 쓰여지는 시점이고, B-지점(11)은 하프레이트(Half rate), C-지점(12)은 쿼터레이트(Quarter rate), 그리고 D-지점(13)은 1/8레이트(1/8 rate)에 대한 각 디코딩 동작을 통해 디코딩된 데이터가 출력 버퍼(5)에 각각 쓰여지는 시점이다.In FIG. 2, A-point 10 is a point at which decoded data is written to the output buffer 5 through a decoding operation for full rate, and B-point 11 is a half rate. Decoded data is output to output buffer 5 through each decoding operation at C-point 12 at quarter rate and D-13 at 1/8 rate. Each is written at a time.

지금까지 설명된 일련의 작업들이 끝나면, 마이크로 프로세서(미도시)는 CRC 검사 블록(6)과 BER 블록(7)으로부터 제공된 CRC 검사 정보와 BER 정보를 가지고 각 디코딩 절차 이후에 결정된 각 레이트의 데이터를 출력 버퍼(5)로부터 읽어온다.After the series of operations described so far, the microprocessor (not shown) carries data of each rate determined after each decoding procedure with the CRC check information and the BER information provided from the CRC check block 6 and the BER block 7. Read from output buffer (5).

그러나 상기한 종래의 비터비 디코더는 다음과 같은 단점이 있다. 그것은 보코더의 모든 가능한 데이터 레이트에 대해, 다시 말하면 가변 데이터 레이트를 가지는 통신 채널에 대해, 디코딩이 매 프레임마다 이루어지고, 그 중에서 판정(Decision)된 레이트의 결과만을 사용한다.However, the conventional Viterbi decoder has the following disadvantages. It uses all the possible data rates of the vocoder, ie for communication channels with variable data rates, where the decoding is done every frame, of which only the result of the determined rate is used.

결국 종래의 비터비 디코더에서는 레이트 판정을 위한 처리 시간이 필요하다는 문제가 있다.As a result, the conventional Viterbi decoder has a problem in that processing time for rate determination is required.

본 발명의 목적은 상기한 점들을 감안하여 안출한 것으로, 특히 레이트 판정을 위한 처리 시간을 줄이기 위해 현재 프레임의 레이트 판정을 이전 프레임에서 판정된 데이터 레이트부터 단계적으로 변화시키도록 한 비터비 디코딩 방법을 제공하는 것이다.SUMMARY OF THE INVENTION An object of the present invention has been made in view of the above points, and in particular, to reduce the processing time for rate determination, a Viterbi decoding method for changing the rate determination of the current frame step by step from the data rate determined in the previous frame is provided. To provide.

상기한 목적을 달성하기 위한 본 발명에 따른 비터비 디코더의 특징은, 디코딩을 실시하는 디코딩 블록과, 상기 디코딩 블록을 제어하는 제어기와, 상기 디코딩 블록에서 디코딩된 현재 프레임에 대한 순환중복코드(CRC) 검사를 실시하여 그 정보를 출력하는 순환중복코드(CRC) 검사블록과, 상기 디코딩 블록에서 디코딩된 현재 프레임에 대한 비트 에러수를 출력하는 비트당 에러 확률(BER) 블록과, 상기 순환중복코드(CRC) 검사블록과 상기 비트당 에러 확률(BER) 블록의 각 출력값들을 미리 정해진 기준값과 비교하여, 그 비교 결과에 따라 상기 현재 프레임에 대한 디코딩 레이트를 결정하는 레이트 제어기로 구성된다. A feature of the Viterbi decoder according to the present invention for achieving the above object is a decoding block for decoding, a controller for controlling the decoding block, and a cyclic redundancy code (CRC) for the current frame decoded in the decoding block. A cyclic redundancy code (CRC) check block that performs a check and outputs the information, an error probability per bit block that outputs the number of bit errors for the current frame decoded by the decoding block, and the cyclic redundancy code And a rate controller for comparing the respective output values of the (CRC) check block and the error probability per bit (BER) block with a predetermined reference value and determining a decoding rate for the current frame according to the comparison result.

여기서, 상기 레이트 제어기는 그 결정된 디코딩 레이트를 상기 제어기에 알려주어, 상기 제어기의 제어에 의해 상기 디코딩 블록이 상기 결정된 디코딩 레이트로 변경한 후 상기 현재 프레임에 대한 디코딩을 실시토록 해 준다. In this case, the rate controller informs the controller of the determined decoding rate so that the decoding block can be decoded to the determined decoding rate and then decoded for the current frame.

상기한 목적을 달성하기 위한 본 발명에 따른 비터비 디코딩 방법의 특징은, 이전 프레임에서 판정된 레이트를 현재 프레임에 대한 디코딩 레이트로 로드(load)하는 단계와, 상기 로드된 디코딩 레이트로 상기 현재 프레임에 대한 디코딩을 실시하는 단계와, 상기 디코딩 결과에서 발생된 상기 현재 프레임의 순환중복코드(CRC) 검사 결과 및 비트 에러수를 정해진 기준과 비교하는 단계와, 상기 비교 결과에서 상기 현재 프레임의 순환중복코드(CRC) 검사 결과 및 비트 에러수가 기준에 미달일 경우 상기 로드된 현재 프레임에 대한 디코딩 레이트를 정해진 다음 레이트로 재로드(reload)시키는 단계와, 상기 재로드된 레이트로 상기 현재 프레임에 대한 디코딩을 재실시하는 단계로 이루어진다. A feature of the Viterbi decoding method according to the present invention for achieving the above object is the step of loading the rate determined in the previous frame to the decoding rate for the current frame, and the current frame at the loaded decoding rate Performing a decoding process, comparing a CRC test result and a number of bit errors of the current frame generated from the decoding result with a predetermined criterion, and performing a cyclic redundancy of the current frame in the comparison result. Reloading the decoding rate for the loaded current frame at a predetermined next rate if a code (CRC) check result and the number of bit errors do not meet the criteria, and decoding the current frame at the reloaded rate. It is made to re-execute.

바람직하게는, 상기 현재 프레임이 첫 프레임일 경우에 상기 디코딩 레이트로 풀레이트(Full rate)가 로딩된다. Preferably, the full rate is loaded at the decoding rate when the current frame is the first frame.

또한 상기 비교 결과 상기 현재 프레임의 순환중복코드(CRC) 검사 결과 및 비트 에러수가 기준에 만족되는 경우 현재 프레임에 대한 디코딩이 중지된다. If the comparison result indicates that the CRC test result and the number of bit errors of the current frame are satisfied, decoding of the current frame is stopped.

마지막으로, 상기 디코딩 재실시 단계 이후 상기 재실시된 디코딩 결과에서 발생된 상기 현재 프레임의 순환중복코드(CRC) 검사 결과 및 비트 에러수를 정해진 기준과 비교한 결과에서 상기 현재 프레임의 순환중복코드(CRC) 검사 결과 및 비트 에러수가 기준에 미달일 경우에는, 상기 프레임에 대해 지원 가능한 레이트까지 계속 레이트를 재로딩하여 상기 디코딩을 실시한다. Finally, the cyclic redundancy code of the current frame is obtained from a result of comparing a cyclic redundancy code (CRC) test result of the current frame generated from the re-executed decoding result and the number of bit errors with If the CRC) check result and the number of bit errors do not meet the criteria, the decoding is performed by continuously reloading the rate to a supportable rate for the frame.

이하, 본 발명에 따른 비터비 디코딩 방법의 바람직한 일 실시 예를 첨부된 도면을 참조하여 설명한다.Hereinafter, a preferred embodiment of the Viterbi decoding method according to the present invention will be described with reference to the accompanying drawings.

본 발명에서는 현재 프레임의 레이트 판정을 이전 프레임에서 판정된 데이터 레이트부터 단계적으로 변화시키도록 한다. 이를 위해 가변 레이트 보코더(vocoder)의 레이트 판정 알고리즘에 순응하는 비터비 디코딩 절차 및 그를 실행하기 위한 비터비 디코더를 제안한다. 이로써 레이트 판정의 적중 확률을 높일 수 있도록 한다.In the present invention, the rate determination of the current frame is changed step by step from the data rate determined in the previous frame. To this end, we propose a Viterbi decoding procedure that conforms to the rate determination algorithm of a variable rate vocoder and a Viterbi decoder for executing the same. This makes it possible to increase the probability of hitting the rate determination.

본 발명의 비터비 디코더에 대한 설명에 앞서 본 발명에 관련된 음성 통화의 특성을 간단히 언급한다.Prior to the description of the Viterbi decoder of the present invention, the characteristics of the voice call related to the present invention are briefly mentioned.

음성 통화시 일반적으로 음성이 실제 송수신되는 것은 약 40% 이내의 시간동안이다. 또한 말하는 사람으로부터 전송되는 연속적인 각 프레임의 데이터 레이트 변화는 모든 가능한 데이터 레이트에서 이루어지는 것이 아니라, 이전 프레임의 데이터 레이트에서 단계적으로 변화한다(그 변화는 상대적으로 느리다). 듣는 사람으로부터 전송되는 프레임의 데이터 레이트는 쿼터레이트(Quarter rate) 또는 1/8레이트(1/8 rate)일 가능성이 높으며, 데이터 레이트가 바뀔 가능성은 말하는 사람으로부터 전송되는 프레임의 데이터 레이트 변화 가능성보다 낮다. 본 발명은 이러한 음성 통신의 특성을 이용한다.In the case of a voice call, it is generally within about 40% of the time that the voice is actually transmitted and received. Also, the data rate change of each successive frame transmitted from the speaker does not occur at all possible data rates, but changes step by step at the data rate of the previous frame (the change is relatively slow). The data rate of a frame transmitted from the listener is likely to be a quarter rate or 1/8 rate, and the likelihood of the data rate changing is greater than the possibility of a change in the data rate of a frame transmitted from the speaker. low. The present invention takes advantage of this feature of voice communication.

도 3은 본 발명에 따른 비터비 디코더의 구조를 나타낸 블록도이다.3 is a block diagram showing the structure of a Viterbi decoder according to the present invention.

도 3을 참조하면, 본 발명의 비터비 디코더는 입력 버퍼(100)와, 입력 버퍼(100)로부터 출력된 브렌치 메트릭(branch metric) 값과 이전 경로 메트릭(path metric) 값을 이용하여 가산(add), 비교(compare) 및 선택(select) 절차를 수행하는 가산/비교/선택 블록(110)과, 가산/비교/선택 블록(110)에서 출력된 결정비트 정보를 저장하고, 일정 길이를 역추적(trace-back)한 후에 데이터를 출력하는 역추적 블록(trace-back block)(120)과, 상기한 입력 버퍼(100)와 가산/비교/선택 블록(110)과 역추적 블록(120)으로 하여금 미리 설정된 레이트로 디코딩 동작을 실시하도록 제어하는 제어기(130)와, 역추적 블록(120)에서 추출된 데이터를 저장하는 출력 버터(140)와, 각 데이터 레이트에 대한 CRC를 검사하는 CRC 검사블록(150)과, 각 데이터 레이트에 대한 경판정(Hard decision) 값과 상기한 구성요소들(100,110,120)에 의해 디코딩된 데이터의 재부호화(re-encoding) 값을 비교하여 BER을 계산하고, 그에 따른 비트 에러수를 출력하는 BER 블록(160)과, 마지막으로 이전 프레임에서 판정된 레이트에서 디코딩을 시작하도록 디코딩을 위한 블록들(100,110,120)을 제어하는 제어기(130)에게 레이트 선택을 의한 제어신호(Rate_sel)를 제공하며, 상기한 CRC 검사블록(150)과 BER 블록(160)으로부터 출력된 CRC 검사 정보 및 BER 정보를 가지고 현재 디코딩이 진행 중인 프레임의 레이트를 결정해 주는 레이트 제어기(170)로 구성된다.Referring to FIG. 3, the Viterbi decoder of the present invention adds using an input buffer 100, a branch metric value output from the input buffer 100, and a previous path metric value. Add / compare / select block 110 for performing a compare and select procedure, and decision bit information output from the add / compare / select block 110, and backtrack a predetermined length. the trace-back block 120 for outputting data after the trace-back, the input buffer 100, the add / compare / selection block 110, and the traceback block 120. A controller 130 for controlling the decoding operation to be performed at a preset rate, an output butter 140 storing data extracted from the backtracking block 120, and a CRC check block for checking a CRC for each data rate. 150, a hard decision value for each data rate and the components 100, Comparing the re-encoding value of the data decoded by the 110, 120 to calculate the BER, and outputs the number of bit errors according to the BER block 160, and finally decoding at the rate determined in the previous frame The controller 130 controlling the blocks 100, 110 and 120 for decoding to start is provided to the control signal Rate_sel by the rate selection, and the CRC check output from the CRC check block 150 and the BER block 160 described above. It consists of a rate controller 170 having information and BER information to determine the rate of the frame currently decoding.

본 발명에서는 상기한 레이트 제어기(170)를 구비하여 현재 디코딩이 진행 중인 프레임의 레이트를 결정하므로, CRC 검사 정보 및 BER 정보를 가지고 각 디코딩 절차 이후에 프레임의 레이트를 결정하는 기존에 비해 디코딩 처리 시간이 단축된다.In the present invention, since the rate controller 170 is used to determine the rate of the frame currently being decoded, the decoding processing time compared to the conventional method of determining the rate of the frame after each decoding procedure with CRC check information and BER information. This is shortened.

상기한 구성에 따른 본 발명의 비터비 디코더 동작은 다음과 같다.The Viterbi decoder of the present invention according to the above configuration is as follows.

일단 입력비트를 두 개의 심볼(symbol)을 만들고, 이 만들어진 두 개의 심볼로부터 구해진 브렌치 메트릭(branch metric) 값이 입력 버퍼(100)에 저장된다. 또한 입력 버퍼(100)에는 이전 입력 심볼에 의해 생성된 경로 메트릭(path metric) 값이 저장되어 있다.Once the input bit is made two symbols, the branch metric value obtained from the two created symbols is stored in the input buffer 100. In addition, the input buffer 100 stores path metric values generated by previous input symbols.

가산/비교/선택 블록(110)은 입력 버퍼(100)로부터 출력된 브렌치 메트릭(branch metric) 값과 경로 메트릭(path metric) 값을 가산하고(add), 같은 상태로 천이하는 두 값을 비교한다. 이 후 보다 작은 값을 가지는 부분을 선택하고, 그때의 상태 천이 정보(결정비트 정보)를 역추적 블록(trace-back block)(120)에 제공한다. The add / compare / select block 110 adds a branch metric value and a path metric value output from the input buffer 100 and compares two values that transition to the same state. . Thereafter, a portion having a smaller value is selected and the state transition information (decision bit information) at that time is provided to the trace-back block 120.

역추적 블록(trace-back block)(120)은 가산/비교/선택 블록(110)으로부터 전달받은 결정비트 정보를 저장하고, 부호화된 데이터를 복원하기 위해 정해진 일정 길이만큼을 역추적(trace-back)한다. The trace-back block 120 stores decision bit information received from the addition / comparison / selection block 110 and trace-backs a predetermined length to restore the coded data. )do.

역추적 블록(120)에서 출력된 데이터는 출력 버퍼(140)에 저장되는데, 각 레이트에 따라 디코딩된 데이터가 그 출력 버퍼(140)에 저장된다. The data output from the backtracking block 120 is stored in the output buffer 140, and the decoded data according to each rate is stored in the output buffer 140.

이렇게 각 가변 레이트에 따라 디코딩된 데이터가 출력 버퍼(140)에 저장될 때, CRC 검사블록(150)은 그 레이트들에 대한 각 CRC를 검사한다. 그 CRC 검사 결과에서 그 레이트의 CRC가 일치하면 CRC 검사 결과를 알리는 신호(crc_ok)의 값으로 "True"가 출력되며, 그 반대인 경우에는 "False"가 출력된다.When data decoded according to each variable rate is stored in the output buffer 140, the CRC check block 150 checks each CRC for those rates. If the CRC of the rate matches in the CRC test result, "True" is output as the value of the signal (crc_ok) indicating the CRC test result, and "False" is output in the opposite case.

또한 각 가변 레이트에 따라 디코딩된 데이터가 출력 버퍼(140)에 저장될 때, BER 블록(160)은 그 레이트들에 대한 경판정(Hard decision)과 재부호화(re-encoding)를 실시한다. 이후 각 레이트에 대한 경판정(Hard decision) 값과 디코딩된 데이터의 재부호화(re-encoding) 값을 비교하여 BER을 계산하고, 그에 따른 비트 에러수를 알림 신호(ber_num)를 통해 출력한다. In addition, when data decoded according to each variable rate is stored in the output buffer 140, the BER block 160 performs hard decision and re-encoding on those rates. Then, BER is calculated by comparing a hard decision value for each rate and a re-encoding value of decoded data, and the number of bit errors corresponding thereto is output through a notification signal ber_num.

다음 레이트 제어기(170)는 이전 프레임에서 판정된 레이트에서 디코딩을 시작하도록 디코딩을 위한 블록들(100,110,120)을 제어하는 제어기(130)에게 레이트 선택을 의한 제어신호(Rate_sel)를 제공한다. 또한 상기한 CRC 검사블록(150)과 BER 블록(160)으로부터 출력된 신호들(crc_ok, ber_num)을 참조하여 현재 디코딩이 진행 중인 프레임의 레이트를 결정하도록 해 주는 신호(Rate_sel)를 제어기(130)에 출력시킨다. 덧붙여 현재 디코딩한 레이트가 미리 정해진 기준에 맞는다면, 레이트 제어기(170)는 현재 프레임에 대한 더 이상의 디코딩 절차를 중지시키기 위한 신호(Oper_stop)를 제어기(130)에 전달한다.The next rate controller 170 provides a control signal Rate_sel by selecting a rate to the controller 130 that controls the blocks 100, 110, and 120 for decoding to start decoding at the rate determined in the previous frame. The controller 130 may also determine a signal Rate_sel that determines the rate of the frame currently being decoded by referring to the signals crc_ok and ber_num output from the CRC check block 150 and the BER block 160. Output to. In addition, if the current decoded rate meets a predetermined criterion, the rate controller 170 transmits a signal (Oper_stop) to the controller 130 to stop the further decoding procedure for the current frame.

본 발명의 특이한 점은, 현재 프레임이 시작될 때 레이트 제어기(170)의 레이트 선택 신호(Rate_sel)에 의해 설정된 레이트로 먼저 디코딩을 실시하도록, 제어기(130)가 디코딩 관련 블록(100,110,120)들을 제어한다. 이는 레이트 제어기(170)의 중지 신호(Oper_stop)가 인에이블(enable) 되지 않는 경우이다.The peculiarity of the present invention is that the controller 130 controls the decoding related blocks 100, 110, 120 so as to perform decoding first at the rate set by the rate select signal Rate_sel of the rate controller 170 when the current frame starts. This is a case where the stop signal Opera_stop of the rate controller 170 is not enabled.

그런데 만약 레이트 제어기(170)의 중지 신호(Oper_stop)가 인에이블(enable) 되면, 더 이상 다음 레이트에 대한 디코딩을 실시하지 않도록 제어기(130)가 디코딩 관련 블록(100,110,120)들을 제어하며, 그 때의 결정된 레이트가 저장된다.However, if the stop signal Opera_stop of the rate controller 170 is enabled, the controller 130 controls the decoding related blocks 100, 110, and 120 so that the decoding of the next rate is no longer performed. The determined rate is stored.

다음은 상기한 본 발명의 비터비 디코더에 대한 각 레이트에 따른 동작을 보다 상세히 설명하기 위해 하나의 예를 든다.The following is an example to explain in more detail the operation according to each rate for the Viterbi decoder of the present invention described above.

도 4는 본 발명에 따른 비터비 디코딩 절차를 설명하기 위한 일 예를 나타낸 도면이다.4 is a diagram illustrating an example for explaining a Viterbi decoding procedure according to the present invention.

도 4를 참조하면, 먼저 A-시간, B-시간, C-시간, 그리고 D-시간의 각 구간들은 차례로 풀레이트(Full rate), 하프레이트(Half rate), 쿼터레이트(Quarter rate), 그리고 1/8레이트(1/8 rate) 각각에 대한 디코딩 소요시간들이며, D-시간의 끝 지점(D-지점)(13)에서 디코딩이 종료된다.Referring to FIG. 4, first, the intervals of A-time, B-time, C-time, and D-time are in turn full rate, half rate, quarter rate, and Decoding times for each 1/8 rate (1/8 rate), and decoding ends at the end point (D-point) 13 of the D-time.

먼저 이전 프레임에 대한 정보가 없는 첫 번째 프레임의 경우는 기존의 디코딩 절차와 동일하게 진행된다.First, in the case of the first frame having no information on the previous frame, it proceeds in the same manner as the conventional decoding procedure.

다음 첫 번째 경우(Case-1-1)의 동작을 설명한다.Next, the operation of the first case (Case-1-1) will be described.

먼저 이전 프레임의 데이터가 풀레이트(Full rate)일 경우로써, 현재 프레임에 대한 디코딩을 풀레이트로 실시한다. 그 결과 발생된 CRC 검사 정보와 BER 정보를 레이트 제어기(170)로 전달한다. 이후 이들 정보들을 전달받은 레이트 제어기(170)는 CRC 검사 결과와 비트 에러수가 적정한 값 이내일 경우, 다음 레이트에 대한 디코딩을 중지시키는 신호(Oper_stop)를 인에이블(enable) 시킨다. 제어기(130)는 중지 신호(Oper_stop)가 인에이블 됨에 따라 디코딩 관련 블록들(100,110,120)로 하여금 더 이상 디코딩을 실시하지 않도록 제어한다. First, when data of a previous frame is full rate, decoding of the current frame is performed at full rate. As a result, the generated CRC check information and BER information are transmitted to the rate controller 170. After receiving the information, the rate controller 170 enables a signal (Oper_stop) to stop decoding for the next rate when the CRC check result and the number of bit errors are within an appropriate value. The controller 130 controls the decoding related blocks 100, 110, and 120 to no longer perform decoding as the stop signal Op_stop is enabled.

이로써, A-지점(10)에서 디코딩이 완료되며, 이후 B-시간, C-시간, 그리고 D-시간 동안의 디코딩 절차는 생략된다.As a result, the decoding is completed at the A-point 10, and then the decoding procedure for the B-time, C-time, and D-time is omitted.

다음 두 번째 경우(Case-1-2)의 동작을 설명한다.The following describes the operation of the second case (Case-1-2).

이는 상기한 첫 번째 경우에서, 풀레이트의 디코딩에 의한 CRC 검사 결과와 비트 에러수가 적정한 값 이상일 경우에 대한 것이다. This is for the case where the CRC check result and the number of bit errors by the decoding of the full rate are more than an appropriate value in the first case described above.

이 후 레이트 제어기(170)는 현재 프레임의 레이트를 하프레이트(Half rate)로 정하고, 현재 프레임에 대한 디코딩을 하프레이트(Half rate)로 실시한다. 이후 하프레이트로 디코딩한 결과에서 발생된 CRC 검사 정보와 BER 정보가 레이트 제어기(170)로 전달되며, 이들 정보들을 전달받은 레이트 제어기(170)는 CRC 검사 결과와 비트 에러수가 적정한 값 이내일 경우, 다음 레이트에 대한 디코딩을 중지시키는 신호(Oper_stop)를 인에이블(enable) 시킨다.Thereafter, the rate controller 170 determines the rate of the current frame as half rate, and performs decoding on the current frame at half rate. After that, the CRC check information and the BER information generated from the half-rate decoding result are transferred to the rate controller 170. When the rate controller 170 receives these information, the CRC check result and the number of bit errors are within an appropriate value, Enable signal Op_stop to stop decoding for the next rate.

이로써, B-지점(11)에서 디코딩이 완료되며, 이후 C-시간 그리고 D-시간 동안의 디코딩 절차는 생략된다.As a result, the decoding is completed at the B-point 11, and then the decoding procedure for the C-time and the D-time is omitted.

다음 세 번째 경우(Case-2-1)의 동작을 설명한다.Next, operation of the third case (Case-2-1) will be described.

먼저 이전 프레임의 데이터가 하프레이트(Half rate)일 경우로써, 현재 프레임에 대한 디코딩을 하프레이트로 실시한다. 그 결과 발생된 CRC 검사 정보와 BER 정보를 레이트 제어기(170)로 전달한다. 이후 이들 정보들을 전달받은 레이트 제어기(170)는 CRC 검사 결과와 비트 에러수가 적정한 값 이내일 경우, 다음 레이트에 대한 디코딩을 중지시키는 신호(Oper_stop)를 인에이블(enable) 시킨다. 제어기(130)는 중지 신호(Oper_stop)가 인에이블 됨에 따라 디코딩 관련 블록들(100,110,120)로 하여금 더 이상 디코딩을 실시하지 않도록 제어한다. First, when the data of the previous frame is half rate, the decoding of the current frame is performed at half rate. As a result, the generated CRC check information and BER information are transmitted to the rate controller 170. After receiving the information, the rate controller 170 enables a signal (Oper_stop) to stop decoding for the next rate when the CRC check result and the number of bit errors are within an appropriate value. The controller 130 controls the decoding related blocks 100, 110, and 120 to no longer perform decoding as the stop signal Op_stop is enabled.

이로써, E-지점(14)에서 디코딩이 완료되며, 이후 E-지점(14)에서 D-지점(13)까지 시간 동안 디코딩 절차가 생략된다. As a result, the decoding is completed at the E-point 14, and then the decoding procedure is omitted for a time from the E-point 14 to the D-point 13.

다음 네 번째 경우(Case-2-2)의 동작을 설명한다.Next, operation of the fourth case (Case-2-2) will be described.

이는 상기한 세 번째 경우(Case-2-1)에서, 하프레이트의 디코딩에 의한 CRC 검사 결과와 비트 에러수가 적정한 값 이상일 경우에 대한 것이다. This is the case in the third case (Case-2-1) described above, when the CRC check result and the number of bit errors by the decoding of the half rate are more than an appropriate value.

이 후 레이트 제어기(170)는 현재 프레임의 레이트를 쿼터레이트(Quarter rate)로 정하고, 현재 프레임에 대한 디코딩을 쿼터레이트(Quarter rate)로 실시한다. 이후 쿼터레이트로 디코딩한 결과에서 발생된 CRC 검사 정보와 BER 정보가 레이트 제어기(170)로 전달되며, 이들 정보들을 전달받은 레이트 제어기(170)는 CRC 검사 결과와 비트 에러수가 적정한 값 이내일 경우, 다음 레이트에 대한 디코딩을 중지시키는 신호(Oper_stop)를 인에이블(enable) 시킨다.Thereafter, the rate controller 170 determines a rate of the current frame as a quarter rate, and performs decoding on the current frame at a quarter rate. After that, the CRC check information and the BER information generated from the decoded result by the quaternate are transmitted to the rate controller 170. When the rate controller 170 receives these information, the CRC check result and the number of bit errors are within an appropriate value, Enable signal Op_stop to stop decoding for the next rate.

이로써, F-지점(15)에서 디코딩이 완료되며, 이후 F-지점(15)에서 D-지점(13)까지 시간 동안 디코딩 절차가 생략된다. As a result, the decoding is completed at the F-point 15, and then the decoding procedure is omitted for a time from the F-point 15 to the D-point 13.

다음 다섯 번째 경우(Case-2-3)의 동작을 설명한다.Next, operation of the fifth case (Case-2-3) will be described.

이때도 상기한 세 번째 경우(Case-2-1)에서, 하프레이트의 디코딩에 의한 CRC 검사 결과와 비트 에러수가 적정한 값 이상일 경우에 대한 것이다. In this case also in the third case (Case-2-1), the CRC test result and the number of bit errors by decoding the half rate is more than an appropriate value.

이 후 레이트 제어기(170)는 현재 프레임의 레이트를 쿼터레이트(Quarter rate)로 정하고, 현재 프레임에 대한 디코딩을 쿼터레이트(Quarter rate)로 실시한다. 이후 쿼터레이트로 디코딩한 결과에서 발생된 CRC 검사 정보와 BER 정보가 레이트 제어기(170)로 전달되며, 이들 정보들을 전달받은 레이트 제어기(170)는 CRC 검사 결과와 비트 에러수가 다시 적정한 값 이상일 경우에는, 현재 프레임의 레이트를 풀레이트(Full rate)로 정하고, 현재 프레임에 대한 디코딩을 풀레이트(Full rate)로 실시한다. 이후 B-지점(11)에서 디코딩을 중지시키는 신호(Oper_stop)를 인에이블(enable) 시킨다.Thereafter, the rate controller 170 determines a rate of the current frame as a quarter rate, and performs decoding on the current frame at a quarter rate. After that, the CRC check information and the BER information generated from the result of decoded by the quarter are transmitted to the rate controller 170. When the rate controller 170 receives the information, the CRC check result and the number of bit errors are again higher than appropriate values. The rate of the current frame is set to the full rate, and the decoding of the current frame is performed at the full rate. Thereafter, the signal Op_stop, which stops decoding at the B-point 11, is enabled.

이로써, B-지점(11)에서 디코딩이 완료되며, 이후 C-시간 그리고 D-시간 동안의 디코딩 절차는 생략된다.As a result, the decoding is completed at the B-point 11, and then the decoding procedure for the C-time and the D-time is omitted.

다음 여섯 번째 경우(Case-3-1)의 동작을 설명한다.Next, operation of the sixth case (Case-3-1) is explained.

먼저 이전 프레임의 데이터가 쿼터레이트(Quarter rate)일 경우로써, 현재 프레임에 대한 디코딩을 쿼터레이트로 실시한다. 그 결과 발생된 CRC 검사 정보와 BER 정보를 레이트 제어기(170)로 전달한다. 이후 이들 정보들을 전달받은 레이트 제어기(170)는 CRC 검사 결과와 비트 에러수가 적정한 값 이내일 경우, 다음 레이트에 대한 디코딩을 중지시키는 신호(Oper_stop)를 인에이블(enable) 시킨다. 제어기(130)는 중지 신호(Oper_stop)가 인에이블 됨에 따라 디코딩 관련 블록들(100,110,120)로 하여금 더 이상 디코딩을 실시하지 않도록 제어한다. First, when the data of the previous frame is a quarter rate, the decoding of the current frame is performed in the quarter rate. As a result, the generated CRC check information and BER information are transmitted to the rate controller 170. After receiving the information, the rate controller 170 enables a signal (Oper_stop) to stop decoding for the next rate when the CRC check result and the number of bit errors are within an appropriate value. The controller 130 controls the decoding related blocks 100, 110, and 120 to no longer perform decoding as the stop signal Op_stop is enabled.

이로써, G-지점(16)에서 디코딩이 완료되며, 이후 G-지점(16)에서 D-지점(13)까지 시간 동안 디코딩 절차가 생략된다. As a result, the decoding is completed at the G-point 16, and then the decoding procedure is omitted for a time from the G-point 16 to the D-point 13.

다음 일곱 번째 경우(Case-3-2)의 동작을 설명한다.The following describes the operation of the seventh case (Case-3-2).

이는 상기한 여섯 번째 경우(Case-3-1)에서, 쿼터레이트의 디코딩에 의한 CRC 검사 결과와 비트 에러수가 적정한 값 이상일 경우에 대한 것이다. This is the case in the sixth case (Case-3-1), the CRC check result and the number of bit errors by the decoding of the quarter rate is more than an appropriate value.

이 후 레이트 제어기(170)는 현재 프레임의 레이트를 1/8레이트(1/8 rate)로 정하고, 현재 프레임에 대한 디코딩을 1/8레이트(1/8 rate)로 실시한다. 이후 1/8레이트로 디코딩한 결과에서 발생된 CRC 검사 정보와 BER 정보가 레이트 제어기(170)로 전달되며, 이들 정보들을 전달받은 레이트 제어기(170)는 CRC 검사 결과와 비트 에러수가 적정한 값 이내일 경우, 다음 레이트에 대한 디코딩을 중지시키는 신호(Oper_stop)를 인에이블(enable) 시킨다.Thereafter, the rate controller 170 sets the rate of the current frame at 1/8 rate, and performs decoding on the current frame at 1/8 rate. After that, the CRC check information and the BER information generated from the decoding result of 1/8 rate are transmitted to the rate controller 170, and the rate controller 170 receiving these information has a CRC check result and the number of bit errors within an appropriate value. In this case, the signal Op_stop, which stops decoding for the next rate, is enabled.

이로써, H-지점(17)에서 디코딩이 완료되며, 이후 H-지점(17)에서 D-지점(13)까지 시간 동안 디코딩 절차가 생략된다. As a result, the decoding is completed at the H-point 17, and then the decoding procedure is omitted for a time from the H-point 17 to the D-point 13.

다음 여덟 번째 경우(Case-3-3)의 동작을 설명한다.Next, the operation of the eighth case (Case-3-3) is explained.

이 때도 상기한 여섯 번째 경우(Case-3-1)에서, 쿼터레이트의 디코딩에 의한 CRC 검사 결과와 비트 에러수가 적정한 값 이상일 경우에 대한 것이다. In this case, too, in the sixth case (Case-3-1), the CRC check result and the number of bit errors due to the decoding of the quarter rate are more than appropriate values.

이 후 레이트 제어기(170)는 현재 프레임의 레이트를 1/8레이트(1/8 rate)로 정하고, 현재 프레임에 대한 디코딩을 1/8레이트(1/8 rate)로 실시한다. 이후 1/8레이트로 디코딩한 결과에서 발생된 CRC 검사 정보와 BER 정보가 레이트 제어기(170)로 전달되며, 이들 정보들을 전달받은 레이트 제어기(170)는 CRC 검사 결과와 비트 에러수가 다시 적정한 값 이상일 경우에는, 현재 프레임의 레이트를 하프레이트(Half rate)로 정하고, 현재 프레임에 대한 디코딩을 하프레이트(Half rate)로 실시한다. 이후 F-지점(15)에서 디코딩을 중지시키는 신호(Oper_stop)를 인에이블(enable) 시킨다.Thereafter, the rate controller 170 sets the rate of the current frame at 1/8 rate, and performs decoding on the current frame at 1/8 rate. After that, the CRC check information and the BER information generated from the decoding result at 1/8 rate are transmitted to the rate controller 170, and the rate controller 170 receiving these information has a CRC check result and the number of bit errors again more than an appropriate value. In this case, the rate of the current frame is set to half rate, and the decoding of the current frame is performed at half rate. Thereafter, the signal Op_stop, which stops decoding at the F-point 15, is enabled.

이로써, F-지점(15)에서 디코딩이 완료되며, 이후 F-지점(15)에서 D-지점(13)까지 시간 동안 디코딩 절차가 생략된다. As a result, the decoding is completed at the F-point 15, and then the decoding procedure is omitted for a time from the F-point 15 to the D-point 13.

도 4를 통한 모든 동작 예를 요약하면 다음 도 5와 같이 표현할 수 있다.A summary of all operation examples through FIG. 4 may be expressed as follows in FIG. 5.

도 5는 본 발명에 따른 비터비 디코더의 동작을 위한 알고리즘을 나타낸 플로우챠트로써, 상기한 도 4의 각 경우에 따른 동작 예를 나타낸 플로우챠트이다.5 is a flowchart illustrating an algorithm for the operation of the Viterbi decoder according to the present invention, and is a flowchart illustrating an operation example according to each case of FIG. 4.

먼저 시작하는 시점에서, 이번 프레임에 대한 디코딩이 시작될 레이트를 로드한다(S1). 그런데 만약 이번 프레임이 첫 프레임일 경우에는 풀레이트(Full rate)로 시작된다. 반면에 첫 프레임이 아닐 경우에는 이전 프레임에서 판정된 레이트로 디코딩을 시작한다. At the first starting point, the rate at which decoding for this frame is to be started is loaded (S1). However, if this frame is the first frame, it starts at full rate. On the other hand, if it is not the first frame, decoding starts at the rate determined in the previous frame.

이렇게 함으로써, 본 발명에서는 매 프레임의 연속성을 이용한 디코딩 시간을 감소시킬 수 있다. By doing so, the present invention can reduce the decoding time using the continuity of every frame.

이후 상기한 도 4의 각 경우에서 행해진 것처럼, 이전 프레임에 대한 레이트로 디코딩된 결과에서 발생된 CRC 검사 결과와 비트 에러수가 레이트 제어기(170)에 의해 로딩된다(S2).Then, as is done in each case of FIG. 4 described above, the CRC check result and the number of bit errors generated in the result decoded at the rate for the previous frame are loaded by the rate controller 170 (S2).

이후 CRC 검사 결과를 알리는 신호(crc_ok)의 값이 "True"이면, 다시 비트 에러수(ber_num)를 미리 정해놓은 임계치(BER_LIMIT)와 비교한다(S3∼S4). 이 때 비트 에러수(ber_num)가 정해놓은 임계치(BER_LIMIT)보다 작은 경우에는 현재 디코딩된 레이트를 저장하고, 다음 프레임이 시작될 때 그 저장된 레이트로 먼저 디코딩을 실시하도록 제어기(130)에게 알려준다. 이는 레이트 제어기(170)가 수행한다.After that, when the value of the signal crc_ok indicating the CRC test result is "True", the bit error number ber_num is again compared with a predetermined threshold value BER_LIMIT (S3 to S4). At this time, if the number of bit errors ber_num is smaller than the predetermined threshold BER_LIMIT, the controller 130 stores the current decoded rate and informs the controller 130 to decode at the stored rate first when the next frame starts. This is done by the rate controller 170.

그런데 상기에서 CRC 검사 결과를 알리는 신호(crc_ok)의 값이 "True"가 아니면, 이번 프레임에 대해 다음 레이트로 디코딩을 실시하도록 제어기(130)에게 알려주며, 비트 에러수(ber_num)가 정해놓은 임계치(BER_LIMIT)보다 클 경우에도 이번 프레임에 대해 다음 레이트로 디코딩을 실시하도록 제어기(130)에게 알려준다. 이 또한 레이트 제어기(170)가 수행한다. However, if the value of the signal (crc_ok) indicating the CRC test result is not "True", the controller 130 is notified to decode at the next rate for this frame, and the threshold value determined by the number of bit errors (ber_num) ( BER_LIMIT), the controller 130 is instructed to perform decoding at the next rate for this frame. This is also done by the rate controller 170.

이상에서 설명한 바와 같이 본 발명에 따른 비터비 디코딩 방법에 의하면 다음과 같은 효과가 있게 된다.As described above, the Viterbi decoding method according to the present invention has the following effects.

본 발명에서는 현재 프레임의 레이트 판정을 이전 프레임에서 판정된 데이터 레이트부터 단계적으로 변화시키므로, 레이트 판정을 위한 처리 시간을 줄일 수 있다. 따라서 가변 데이터 레이트를 가지는 통신 채널에 보다 효과적으로 적용시킬 수 있다.In the present invention, since the rate determination of the current frame is changed step by step from the data rate determined in the previous frame, the processing time for the rate determination can be reduced. Therefore, the present invention can be more effectively applied to communication channels having variable data rates.

보다 구체적으로 설명하면, 한 프레임 시간 동안에 4번의 디코딩이 이루어졌던 기존과 달리 본 발명에서는 현재 프레임의 데이터 레이트가 이전 프레임의 데이터 레이트와 동일한 확률이 높다는 특성을 이용하여 현재 프레임에 대한 디코딩을 이전 프레임의 디코딩 레이트부터 시작토록 함으로써, 연속되는 프레임을 위한 불필요한 디코딩 절차를 제거시켰다.In more detail, unlike the conventional method in which four decodings are performed in one frame time, the present invention uses the characteristic that the data rate of the current frame has the same probability as the data rate of the previous frame. By starting with the decoding rate of, we eliminated the unnecessary decoding procedure for successive frames.

결국에는 비터비 디코딩을 위한 회로의 전력 소비를 현저히 줄일 수 있게 된다. As a result, the power consumption of the circuit for Viterbi decoding can be significantly reduced.

도 1은 종래 기술에 따른 비터비 디코더의 구조를 나타낸 블록도이다.1 is a block diagram showing the structure of a Viterbi decoder according to the prior art.

도 2는 종래 기술에 따른 비터비 디코딩 절차를 설명하기 위한 일 예를 나타낸 도면.2 is a diagram illustrating an example for explaining a Viterbi decoding procedure according to the prior art.

도 3은 본 발명에 따른 비터비 디코더의 구조를 나타낸 블록도이다.3 is a block diagram showing the structure of a Viterbi decoder according to the present invention.

도 4는 본 발명에 따른 비터비 디코딩 절차를 설명하기 위한 일 예를 나타낸 도면.4 is a diagram illustrating an example for explaining a Viterbi decoding procedure according to the present invention.

도 5는 본 발명에 따른 비터비 디코더의 동작을 위한 알고리즘을 나타낸 플로우챠트.5 is a flowchart illustrating an algorithm for operation of a Viterbi decoder according to the present invention.

*도면의 주요부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

100 : 입력 버퍼 110 : 가산/비교/선택 블록100: input buffer 110: addition / comparison / selection block

120 : 역추적 블록 130 : 제어기120: backtracking block 130: controller

140 : 출력 버퍼 150 : CRC 검사 블록140: output buffer 150: CRC check block

160 : BER 블록 170 : 레이트 제어기 160: BER block 170: rate controller

Claims (6)

이전 프레임에서 판정된 레이트를 현재 프레임에 대한 디코딩 레이트로 로드(load)하는 단계와;Loading the rate determined in the previous frame at the decoding rate for the current frame; 상기 로드된 디코딩 레이트로 상기 현재 프레임에 대한 디코딩을 실시하는 단계와; Performing decoding on the current frame at the loaded decoding rate; 상기 디코딩 결과에서 발생된 상기 현재 프레임의 순환중복코드(CRC) 검사 결과 및 비트 에러수를 정해진 기준과 비교하는 단계와;Comparing a cyclic redundancy code (CRC) check result and a number of bit errors of the current frame generated from the decoding result with a predetermined criterion; 상기 비교 결과에서 상기 현재 프레임의 순환중복코드(CRC) 검사 결과 및 비트 에러수가 기준에 미달일 경우 상기 로드된 현재 프레임에 대한 디코딩 레이트를 정해진 다음 레이트로 재로드(reload)시키는 단계와; Reloading the decoding rate for the loaded current frame at a predetermined next rate when the result of the cyclic redundancy code (CRC) check of the current frame and the number of bit errors in the comparison result do not meet the criteria; 상기 재로드된 레이트로 상기 현재 프레임에 대한 디코딩을 재실시하는 단계로 이루어지는 것을 특징으로 하는 비터비 디코딩 방법. And re-decoding the current frame at the reloaded rate. 제 1 항에 있어서, 상기 현재 프레임이 첫 프레임일 경우에는 상기 디코딩 레이트로 풀레이트(Full rate)가 로딩되는 것을 특징으로 하는 비터비 디코딩 방법.The Viterbi decoding method of claim 1, wherein when the current frame is the first frame, a full rate is loaded at the decoding rate. 제 1 항에 있어서, 상기 비교 결과 상기 현재 프레임의 순환중복코드(CRC) 검사 결과 및 비트 에러수가 기준에 만족되는 경우 현재 프레임에 대한 디코딩이 중지되는 것을 특징으로 하는 비터비 디코딩 방법.The Viterbi decoding method of claim 1, wherein the decoding of the current frame is stopped when the comparison result of the CRC test and the number of bit errors of the current frame are satisfied. 제 1 항에 있어서, 상기 디코딩 재실시 단계 이후 상기 재실시된 디코딩 결과에서 발생된 상기 현재 프레임의 순환중복코드(CRC) 검사 결과 및 비트 에러수를 정해진 기준과 비교한 결과에서 상기 현재 프레임의 순환중복코드(CRC) 검사 결과 및 비트 에러수가 기준에 미달일 경우에는, 상기 프레임에 대해 지원 가능한 레이트까지 계속 레이트를 재로딩하여 상기 디코딩을 실시하는 것을 특징으로 하는 비터비 디코딩 방법.2. The method of claim 1, wherein after the decoding re-executing step, the cyclic redundancy code (CRC) check result of the current frame generated from the re-executed decoding result and the number of bit errors are compared with a predetermined criterion. And if the duplicated code (CRC) check result and the number of bit errors do not meet the criteria, the decoding is continued by reloading the rate to a rate that can be supported for the frame. 삭제delete 삭제delete
KR10-2000-0011121A 2000-03-06 2000-03-06 viterbi decoding method KR100487365B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0011121A KR100487365B1 (en) 2000-03-06 2000-03-06 viterbi decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0011121A KR100487365B1 (en) 2000-03-06 2000-03-06 viterbi decoding method

Publications (2)

Publication Number Publication Date
KR20010087051A KR20010087051A (en) 2001-09-15
KR100487365B1 true KR100487365B1 (en) 2005-05-03

Family

ID=19652640

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0011121A KR100487365B1 (en) 2000-03-06 2000-03-06 viterbi decoding method

Country Status (1)

Country Link
KR (1) KR100487365B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980078495A (en) * 1997-04-29 1998-11-16 문정환 Decoding Method of Viterbi Decoder
US5912907A (en) * 1993-11-22 1999-06-15 Thomson Consumer Electronics, Inc. Satellite receiver code rate switching apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5912907A (en) * 1993-11-22 1999-06-15 Thomson Consumer Electronics, Inc. Satellite receiver code rate switching apparatus
KR19980078495A (en) * 1997-04-29 1998-11-16 문정환 Decoding Method of Viterbi Decoder

Also Published As

Publication number Publication date
KR20010087051A (en) 2001-09-15

Similar Documents

Publication Publication Date Title
US8359523B2 (en) Method and system for decoding video, voice, and speech data using redundancy
US20030135809A1 (en) Decoding device having a turbo decoder and an RS decoder concatenated serially and a method of decoding performed by the same
WO2001058025A2 (en) Tailbiting decoder and method
JPH0555932A (en) Error correction coding and decoding device
EP0973266A1 (en) Viterbi decoding method and apparatus therefor
JP4758765B2 (en) Transport format detection apparatus and transport format detection method
CN111224676B (en) Self-adaptive serial offset list polarization code decoding method and system
US7644346B2 (en) Format detection
KR101462211B1 (en) Apparatus and method for decoding in portable communication system
US7085992B2 (en) Method and device for decoding a sequence of physical signals, reliability detection unit and viterbi decoding unit
KR100487365B1 (en) viterbi decoding method
JP3512176B2 (en) Turbo decoding device and method of controlling number of decoding repetitions in turbo decoding
US6310887B1 (en) Transmission speed predicting apparatus and transmission speed predicting method
US20070201586A1 (en) Multi-rate viterbi decoder
WO1997013327A1 (en) Viterbi co-processor and method of operation therefor
KR100564757B1 (en) Low power Viterbi decoder and trace-back method
JP3236979B2 (en) Viterbi decoding device
KR100217042B1 (en) Decoding processing method of viterbi decoder
JP2004260391A (en) Maximum likelihood decoder and maximum likelihood decoding method for convolution coding
KR100893053B1 (en) The frame format and the error-detection method with convolutional codes
JP3117757B2 (en) Convolutional code / Viterbi decoded data decision system
JP3120342B2 (en) Viterbi decoder
US8503585B2 (en) Decoding method and associated apparatus
JPH04329026A (en) Viterbi decoder
JP2003264468A (en) Viterbi decoder

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment
FPAY Annual fee payment

Payment date: 20140414

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160324

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee