FEC란 무엇이며 어떻게 사용합니까?
통신 시스템, 정보 이론 및 코딩 이론에서 FEC(순방향 오류 수정)는 신뢰할 수 없거나 잡음이 많은 통신 채널을 통한 데이터 전송의 오류를 제어하는 데 사용되는 기술입니다. FEC의 시작은 1948년 Claude Shannon의 잡음이 있는 전송 채널을 통한 안정적인 통신에 대한 선구적인 작업 덕분입니다. Shannon의 중심 주제는 시스템의 신호 속도가 채널 용량보다 낮을 경우 적절한 인코딩 및 디코딩 기술을 선택하면 안정적인 통신을 달성할 수 있다는 것이었습니다.
그림 1은 코딩된 시스템의 단순화된 모델을 보여줍니다. 원시 전송 데이터는 메시지 시퀀스로 표시됩니다.u. FEC 인코더는 메시지를 변환합니다.u코드워드로v 신뢰할 수 없거나 잡음이 많은 채널에 들어가기 전에 중복 데이터를 추가합니다. 추가된 중복성을 통해 수신기 디코더는 메시지에서 발생할 수 있는 제한된 수의 오류를 감지하고 종종 원래 메시지 시퀀스를 목표로 재전송 없이 이러한 오류를 수정할 수 있습니다.u디코더의 출력에서 성공적으로 복구됩니다.
FEC 코드의 종류
구조적으로 다른 두 가지 유형의 코드가 오늘날 일반적으로 사용됩니다. 블록 코드와 컨볼루션 코드입니다. 블록 코드에 대한 인코더는 정보 시퀀스를 나눕니다.u의 메시지 블록으로k정보 비트(기호) 각각 및 각 메시지 변환u코드워드로 독립적으로,n-비트(기호)v. 비율R = k/n코드율이라고 합니다. 중복 비트(기호),n-k, 채널 노이즈를 방지할 수 있는 기능을 코드에 제공합니다.
블록 코드의 중요한 매개변수는 최소 거리이며,d분, 이것은 하나의 유효한 코드워드를 다른 코드워드로 변경하는 데 필요한 데이터 변경의 최소 수를 나타내는 가장 가까운 두 코드워드 사이의 거리입니다. 이 매개변수는 코드의 오류 감지 및 수정 기능을 결정합니다. 일반적으로 FEC 코드는d분코드워드당 -1 오류 및 최대 (d분-1)/2개 코드워드당 오류. 예를 들어, 리드 솔로몬 코드, RS(544, 514,t=15, m=10)는 514개의 정보 기호와 30개의 중복 기호가 있는 블록 코드입니다. 각 기호에는 10비트가 있습니다. 그것의 최소 거리는d분=31 최대 (d분-1)/2=15 코드워드당 기호 오류.
컨볼루션 코드용 인코더도 다음을 받아들입니다. k-정보 시퀀스의 비트 블록u인코딩된 시퀀스를 생성합니다.v의n- 기호 블록. 그러나 각 인코딩된 블록은 해당 블록에 의존할 뿐만 아니라k-비트 메시지 블록은 동시에 단위이지만 onm이전 메시지 블록. 중복 비트 외에도n-k, 메모리 순서를 늘려 더 많은 중복성이 추가됩니다.m잡음이 있는 채널을 통해 안정적인 전송을 달성하기 위한 코드.
Shannon 이론[1]에 따르면 코드워드가 길수록 더 강력한 오류 수정 기능이 제공됩니다. 그러나 코딩 복잡도는 코드워드 길이와 함께 증가합니다. 복잡성과 코딩 성능 간의 더 나은 균형을 달성하기 위해 제품 코드, 연결 코드 및 인터리브 코드와 같은 짧은 구성 요소 코드에서 길고 강력한 코드를 구성하는 몇 가지 기술이 있습니다.
그림 2는 두 개의 코드 C로 구성된 2차원 제품 코드를 보여줍니다.1(n1, k1) 및 C2(n2, k2) 최소 거리d분1그리고d분2, 각각. 제품 코드 C의 각 행1 x C2C의 코드워드입니다.1각 열은 C의 코드워드입니다.2. 제품 코드는 (d분1d분2-1)/2개의 오류.
그림 3은 외부 코드 C가 있는 1레벨 연결 코드를 보여줍니다.1(n1, k1) 최소 거리d분1내부 코드 C2(n2, k2) 최소 거리d분2. 연결의 최소 거리는 최소한d분1d분2.
그림 4는 인터리브된 코드의 전송을 보여줍니다. (n,k) 블록 코드 C가 주어지면 인터리빙을 통해 (λn, λk) 블록 코드를 구성할 수 있습니다. 즉, C의 λ 코드워드를 직사각형 배열의 λ 행으로 배열한 다음 열. 인터리브 코드의 최소 거리는 여전히d분개별 코드 C로 긴 버스트 오류를 λ개의 다른 코드워드로 나눌 수 있습니다.
터보 코드 및 저밀도 패리티 검사(LDPC) 코드와 같은 고급 FEC 코드는 지난 수십 년 동안 학자들이 발명하고 업계에서 채택하여 Shannon 한계(또는 채널 용량)에 접근했습니다. 그러나 우수한 성능 향상은 일반적으로 큰 인코딩/디코딩 복잡성과 대기 시간으로 인해 발생합니다.
특정 통신 시스템에 적합한 FEC 코드 및 코딩 방식을 선택할 때 고려해야 할 4가지 중요한 요소가 있습니다. 높은 처리량을 유지하거나 링크 속도가 크게 증가하는 것을 방지하기 위해코드율높아야 합니다. 수신기의 결정 슬라이서에서 채널 손실을 보상하거나 신호 대 잡음비(SNR) 또는 비트 오류율(BER) 요구 사항을 완화하려면코딩 이득바람직하다. 그러나 FEC의 단점은코딩 지연그리고코딩 복잡성전송 시간과 시스템 전력/비용이 증가합니다.
직렬 링크 시스템에 대한 FEC 애플리케이션
유선 통신 시스템을 위한 FEC 기술의 환경은 그림 5에 나와 있으며 전기 링크와 광 링크를 모두 포함합니다. 전기 링크의 경우 업계에서는 최근 25Gb/s에서 50Gb/s 링크 데이터 속도로 전환하는 동안 2레벨 신호 형식(NRZ)에서 4레벨 신호 형식(PAM4)으로 신호 형식 업데이트를 통합했습니다.
PAM4 SerDes의 주요 설계 과제 중 하나는 다중 레벨 신호 교차로 인한 수평 마진 저하를 고려할 경우 약 9.54dB 이상인 NRZ에 대한 PAM4의 감지 패널티입니다. 따라서 FEC는 이러한 탐지 패널티를 상쇄하기 위한 PAM4 시스템 솔루션의 중요한 부분이 됩니다. RS(544, 514, 15) FEC(KP4 FEC라고도 함)는 PAM 링크에서 널리 채택되었습니다. 200/400G 이더넷 시스템에 최대 7dB 코딩 이득을 제공하는 동시에 비용으로 수백 나노초(ns)의 대기 시간 패널티를 추가합니다. LDPC(Low Density Parity Check) 코드 및 TPC(Turbo Product Code)와 같은 고이득 FEC 코드는 일반적으로 더 긴 코딩 대기 시간과 복잡성의 비용이 드는 장거리 광 전송 시스템에 대해 고려됩니다. 대기 시간이 짧은 응용 프로그램의 경우 적당한 코딩 이득과 복잡성을 가진 짧은 단순 블록 코드를 사용할 수 있습니다.