2012-12-06 8 views
0

버스트 오류가있는 잡음이있는 채널에서 작동하는 장치의 인코딩 및 디코딩을 구현하는 방법을 모색 중입니다. 계단식 임베디드 환경에서 버스트 오류 (블록 코드)의 계산 시간 측면에서 가장 빠른 알고리즘은 무엇입니까?

  • 병합
  • 을 인터리브

    1. 리드 - 솔로몬 (RS) 코드
    2. 화재 코드
    3. 을 : 나는 버스트 오류를 ​​극복하는 가장 일반적인 방법은 다음과 같은 것을 발견했다

      임베디드 시스템에서, 다항식 기반 기술을 구현하여 룩업 테이블에 관련 다항식을 저장하는 가장 효율적인 방법을 가정합니다. 그러나 인코딩 및 디코딩에는 상당한 양의 계산이 필요하며 이들이 얼마나 오래 걸릴지 궁금합니다.

      도움을 주시면 감사하겠습니다.

      ==========

      P.S : 검출 및 정정 모두가 필요하다.

  • +0

    오류를 감지하는 것뿐만 아니라 앞으로 오류 수정을 원한다고 생각하십니까? 그렇게 명시 적으로 말해야합니다. – starblue

    답변

    1

    I 블록의 오류를 수정하는 RS에 대한 대체가 있다고 생각하지 않습니다. 컨벌루션 코드는 매우 빠르며 (viterbi의 경우 디코딩 된 비트 당 ~ 15 개의 상환 된 명령어), 산발적 인 비트 변경에만 적합합니다. BCH (이진) 코드 (31,5)에 대한 증후군은 더 빨리 계산 될 수 있지만 2 비트 만 복구 할 수 있습니다. 말할 수있다, (아마도 룩업 테이블을 사용하여)이 오류 증후군은 166MHz 펜티엄 12Mbps를 속도를 달성 위치를 오류

    RS(255,251) - 12 Mbps 
    RS(255,239) - 2.7 Mbps 
    RS(255,223) - 1.1 Mbps 
    

    매핑 :

    이 페이지는 디코딩 긴 RS의 full software implementations의 복잡성을 설명합니다 오늘날 일반적인 임베디드 프로세서보다 5 ~ 10 % 더 효율적입니다. 더 큰 다항식의 복잡성은 O (M * N)에 관한 것이며, M = 블록 길이, N = 증후군 계산 및 Berlekamp-Massey 알고리즘의 코드 길이입니다. Chien 검색은 가능한 모든 (255) 뿌리에 대한 무차별 대입 루핑을 수행하고 오류 위치 다항식에 하나씩 대입합니다. M은 블록 크기와 같이 O (M * N) 정도의 복잡도를가집니다. = 255는 코드 워드 (256)의 수와 거의 같습니다.

    +0

    버스트 오류의 경우에 사용할 수있는 다른 기술이 있습니다. 나는 [여기] (http://cwww.ee.nctu.edu.tw/course/channel_coding/CC07.pdf)에서 어떤 것을 얻었다. 귀하의 링크가 유용했습니다. 당신의 대답에 건배. –