드론

DJI drone IDs are not encrypted 분석 - 4

He110 2024. 10. 15. 12:33

QPSK를 비트로 양자화하기

알고리즘 7 QPSK를 별자리 매핑(비트)으로 복조하는 과정을 보여준다. 이 알고리즘은 주파수 영역을 데이터 캐리어만 포함하도록 동등화하고, 샘플을 이전에 계산된 phaseOffset에 맞춰 조정한다. 절대 위상 오프셋은 phaseOffset OFDM 심볼이 동등화에 사용된 심볼로부터 떨어진 거리를 곱하여 계산된다. phaseOffset OFDM 심볼 4 6에 있는 ZC 시퀀스 사이에서 계산되었기 때문에, OFDM 심볼 5에 직접 적용된다.

그 다음 알고리즘은 dataCarriers를 순회하면서 QPSK 별자리 점을 나타내는 복소 샘플을 비트로 변환한다.

간단히 말해, 이 알고리즘은 QPSK 신호를 비트로 복조하는 과정을 설명한다. 이 과정은 주파수 영역에서 데이터 캐리어만을 골라내고, 계산된 phaseOffset을 적용하여 신호를 조정한 다음, 이 신호를 비트로 변환한다. 이 변환은 QPSK 신호의 복잡한 별자리 점들을 이해하기 쉬운 디지털 데이터로 바꾸는 데 필요한 단계다. 이러한 복조 과정은 드론 신호의 정확한 정보를 디코딩하는 데 중요하다.

표 3.  QPSK 변조 매핑

QPSK(Quadrature Phase Shift Keying) 변조 매핑은 디지털 신호를 복소 평면상의 점들로 표현하는 방법이다. 이 매핑에서 각 점은 특정 위상 각도를 가지며, 이를 통해 비트 패턴을 나타낸다. 예를 들어, QPSK에서는 보통 4개의 점이 사용되며, 각각은 00, 01, 10, 11과 같은 2비트의 조합을 나타낸다. 이 점들은 90도 간격으로 배치되어 있어, 각 점이 고유한 데이터 값을 표현한다. QPSK 변조 매핑은 고주파수 통신 시스템에서 효율적인 데이터 전송을 가능하게 해 주는 중요한 기술이다.

 비트 복원하기

알고리즘 8은 복조된 드론 ID 비트를 복소 값으로 복원한다. 복원을 위한 초기값은 하드코드된 다항식 값인 lsfrX1(3GPP 36.211 7.2에서 설명된 값) lsfrX2(드론 ID용으로 0x12345678)이다. 변수 nc LTE 표준에서 1600으로 정의된다. 첫 번째 루프는 lsfrX1에 대한 m-시퀀스를 생성한다. 두 번째 루프는 lsfrX2에 대한 m-시퀀스를 생성한다. 세 번째 루프는 결과적인 골드 시퀀스(goldSeq)를 생성한다. 마지막 연산은 OFDM 심볼(2, 3, 5, 7, 8, 9) goldSeq 간의 비트별 XOR(배타적 논리합) 연산을 수행한다.

간단히 말하면, 이 알고리즘은 드론 ID의 복조된 비트를 원래의 데이터 형태로 복원하는 과정을 나타낸다. 여기서 골드 시퀀스는 특정한 패턴을 가진 비트 시퀀스로, 원래의 데이터와 XOR 연산을 통해 원래 신호를 복원하는 데 사용된다. 이 복원 과정은 드론 통신 신호에서 데이터를 정확하게 추출하고 해석하는 데 필요하다.

터보 디코더와 비율 매칭

터보 디코더는 turbofec 라이브러리를 사용하여 구현된다. 알고리즘 8에서 복원된 7200개의 비트는 dji_droneid GitHub 저장소에서 제공된 터보 코드 제거 C++ 프로그램에 전달된다. 이 프로그램은 터보 디코딩과 비율 매칭 로직을 위해 turbofec과 인터페이스하는 데 필요한 구조와 버퍼를 설정한다. 프로그램은 CRC-24 체크가 0x00을 반환할 때 디코딩된 데이터를 출력한다. 그렇지 않으면 계산된 CRC-24 오류를 출력한다. 부실한 SDR 녹음, 간섭, 주파수 오프셋은 종종 디코딩 계산의 실패 원인이 된다.

간단히 설명하면, 이 과정은 드론 ID의 복원된 비트를 터보 디코딩과 비율 매칭을 통해 최종적으로 해석할 수 있는 데이터로 변환하는 것이다. CRC-24 체크는 데이터의 정확성을 확인하는데 사용되며, 이를 통과하지 못하면 오류를 출력한다. 터보 디코더와 비율 매칭은 복잡한 드론 통신 신호를 정확하고 효율적으로 해석하는데 중요한 역할을 한다.

.

자세한 내용은 5편에서 이어진다.