카테고리
산업계측제어기술사

convolutional code

convolutional coding(94page)

https://blog.naver.com/moja3000/221389033387

“`html

Convolutional Code

Convolutional Coding · Shift Register · Delay Element · XOR · State Diagram · Channel Coding

1. Convolutional Coding

일반 이미지와 NeoStudio에서는 2개의 Delay Element를 갖는 Convolutional Encoder를 다룬다.

      Input x
         │
         ▼
        D1 ───── D2
         │        │
         ├────────┼──── XOR → y1
         │        │
         └───────────── XOR → y2

                       ↓
                    Output c
    
현재 입력 x와 Shift Register의 이전 상태를 XOR하여 여러 개의 출력 비트를 생성한다.

2. Encoder 구조

일반 이미지의 그림 4.3에는 입력 x가 두 개의 Delay Element D1, D2를 순서대로 통과하는 구조가 있다.

x → D1 → D2

두 XOR 경로에서 출력 y1, y2를 생성한다.

3. 출력식 y1

NeoStudio에 기록된 첫 번째 출력식은 다음과 같다.

y1 = x ⊕ D1 ⊕ D2

즉 현재 입력 x와 두 Delay State를 모두 XOR한다.

4. 출력식 y2

두 번째 출력은 다음과 같이 기록되어 있다.

y2 = x ⊕ D2
하나의 입력 x에 대해 y1, y2 두 비트가 생성된다.

5. Shift Register 상태

상태는 두 Delay Element D1, D2의 값으로 정의한다.

State = (D1, D2)

각 Delay는 0 또는 1이므로 가능한 상태는 4개이다.

00,\; 01,\; 10,\; 11
Number of States = 2² = 4

6. 상태 00에서 출력

NeoStudio에서는 먼저 D1=0, D2=0인 상태를 계산한다.

x = 0

y1 = 0
y2 = 0
Output = 00

다음 상태는 Shift 결과에 따라 00으로 기록되어 있다.

x = 1

y1 = 1
y2 = 1
Output = 11

다음 상태는 10으로 기록되어 있다.

7. 상태천이 표기

일반 이미지의 상태천이도는 각 Transition에 입력 / 출력 형식을 사용한다.

Input / Output

예를 들어 NeoStudio에서는 상태 00에서 다음과 같이 기록한다.

00 ── 0/00 ──→ 00
00 ── 1/11 ──→ 10

8. 상태천이도

일반 이미지의 그림 4.4는 4개의 상태를 이용한 State Diagram을 보여준다.

                     11
                  ↗      ↘
                /          \
              10 ---------- 01
                \          /
                  ↘      ↙
                     00
    

각 화살표에는 입력비트와 출력비트가 함께 표시된다.

9. 4개 상태

State D1 D2
00 0 0
01 0 1
10 1 0
11 1 1

10. State Diagram을 이용한 Encoding

NeoStudio 2페이지에서는 State Diagram을 이용하여 입력열을 직접 Encoding한다.

x = { 1\;0\;0\;1\;1 }

초기 상태는

D1 = 0,\quad D2 = 0
Initial State = 00

11. 첫 번째 입력 x=1

초기 상태 00에서 첫 입력은 1이다.

00 ── 1/11 ──→ 10
Output₁ = 11

12. 두 번째 입력 x=0

다음 상태 10에서 두 번째 입력 0을 적용한다.

NeoStudio에는 다음 출력이 기록되어 있다.

Output₂ = 10

13. 세 번째 입력 x=0

세 번째 입력도 0이다.

NeoStudio의 Encoding 결과에는 다음 출력이 기록되어 있다.

Output₃ = 11

14. 네 번째 입력 x=1

네 번째 입력은 1이고 원본 Encoding 결과는 다음과 같다.

Output₄ = 11

15. 다섯 번째 입력 x=1

마지막 입력은 1이다.

Output₅ = 01

16. 최종 출력열

NeoStudio 마지막 줄에 기록된 최종 출력열은 다음과 같다.

11,\;10,\;11,\;11,\;01

하나의 입력비트마다 2개의 출력비트가 생성되므로 5개의 입력비트는 총 10개의 출력비트로 변환된다.

Input : 1 0 0 1 1

Output : 11 10 11 11 01

17. Code Rate

원본 구조는 입력 1비트에 대해 출력 2비트를 생성한다.

1 Input Bit → 2 Output Bits
Code Rate = 1 / 2
Code Rate = 1/2는 이미지에 직접 숫자로 적혀 있지는 않지만, 입력 1개에서 y1, y2 두 출력이 생성되는 원본 구조에서 바로 읽히는 관계이다.

18. Convolutional Encoder의 기억성

현재 출력은 현재 입력 x만으로 결정되지 않고 D1, D2의 상태에도 영향을 받는다.

y1 = f(x,D1,D2)
y2 = f(x,D2)
현재 입력과 과거 입력의 상태를 함께 사용하여 출력코드를 생성하는 구조이다.

19. 전체 동작 흐름

             Input x
                │
                ▼
         Shift Register
           D1 → D2
                │
        ┌───────┴────────┐
        ▼                ▼
      XOR               XOR
    x⊕D1⊕D2           x⊕D2
        │                │
        ▼                ▼
       y1               y2
        └───────┬────────┘
                ▼
          2-bit Output
                │
                ▼
        State Transition
                │
                ▼
         Next D1,D2 State
    

20. 이미지 · NeoStudio 핵심 정리

항목 원본 내용
입력 x
Memory D1, D2
상태 수 00, 01, 10, 11 → 4개
y1 x ⊕ D1 ⊕ D2
y2 x ⊕ D2
Transition 표시 입력 / 출력
예제 입력 10011
초기 상태 D1=0, D2=0 → 00
출력 11, 10, 11, 11, 01
구조상 Code Rate 1/2
이 HTML은 페이지 본문과 외부 Naver Blog 자료를 사용하지 않고, 일반 이미지 1장과 NeoStudio PDF 1개(총 2페이지)만 OCR/시각 판독하여 작성했다. 일반 이미지는 그림 4.3 길쌈 부호기와 그림 4.4 상태천이도를 보여준다. NeoStudio 1페이지에는 y1 = x ⊕ D1 ⊕ D2, y2 = x ⊕ D2, D1/D2의 4개 상태와 00 상태에서의 출력 계산이 기록되어 있다. NeoStudio 2페이지에는 입력 x={10011}, 초기 상태 D1=D2=0을 사용하여 상태천이도를 따라 Encoding한 결과 11, 10, 11, 11, 01이 기록되어 있다. 일반 이미지의 상태천이 화살표와 NeoStudio 손글씨 일부는 화살표 방향이나 상태 표기가 흐린 부분이 있으므로 외부 Convolutional Code 이론으로 임의 수정하지 않았다. Viterbi Algorithm, Trellis Diagram, Free Distance, Constraint Length 등의 외부 개념은 원본 이미지와 NeoStudio에 직접 설명되어 있지 않아 추가하지 않았다.
Convolutional Code, Convolutional Coding, Channel Coding, Shift Register, Delay Element, XOR, Generator, State Diagram, State Transition, Code Rate, D1, D2, Encoder
“`

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.