Dreamhack/Dreamhack Wargame (Challenge)

[130] IT 비전공자 [dreamhack]산타 할아버지도 힘들어요문제 풀기

imaginefuture-1 2025. 1. 18. 12:28

그 유튜브 영상 중에 그거 있었는데

https://www.youtube.com/watch?v=CVfksjKuaPQ

 

다들 보는거 추천 겁나 웃김ㅋㅋㅋㅋㅋ거실에 돌아다니면, 선물 받고 몸이 뚫려요~

 


 

 

문제 파일을 받으니..

아니 알수없는 음성 두개가..?

 

 

심지어 뭔가..우주에서 보내는..신호같은.,.그런 느낌적인 느낌의.....wav 파일이었다....

이게...이게 산타할아버지의 우주 선물,,,? 화성에서 온 일런머스크 산타할아버지 뭐 그런건가?

 

noaa 15 루돌프 친구다...루돌프..맞지? ㅋㅋㅋㅋㅋ

 

 

구글이 자동으로 decode를 띄워준다 클릭해보자

 

홈페이지부터 뭔가 심상치 않다

 

 

 

https://noaa-apt.mbernardi.com.ar/how-it-works.html

 

How it works

Contents How it works General Load samples from WAV. Resample to a intermediate sample rate: 20800Hz. Get L (interpolation factor) and M (decimation factor) by looking at the greatest common divisor (GCD) between input and output sample rates. Get interpol

noaa-apt.mbernardi.com.ar

 

 

어떻게 동작하는지 알려주는데...어..엄청난...숫자와..최신(?) 과학기술로 하는듯;;; 쩐다

 

 

NOAA-15 위성에서 수신한 APT(Automatic Picture Transmission) 신호를 디코딩하는 과정은 위성의 아날로그 무선 신호를 디지털 이미지로 변환하는 과정을 포함합니다. 이 과정은 크게 신호 처리, 디코딩, 그리고 이미지 생성의 세 단계로 나눌 수 있습니다.


1. 원리 요약

  1. WAV 파일로 샘플 로드:
    • 위성에서 수신한 RF 신호를 녹음한 WAV 파일로 작업을 시작합니다.
    • 일반적으로 11025Hz, 44100Hz 또는 48000Hz로 샘플링된 오디오 파일이 사용됩니다.
  2. 리샘플링:
    • WAV 파일에서 추출된 데이터를 NOAA APT 신호의 표준 샘플 속도인 20800Hz로 리샘플링합니다.
    • 리샘플링 과정:
      • 입력 샘플 속도와 출력 샘플 속도의 최대 공약수(GCD)를 계산.
      • Interpolation (L): 입력 샘플 속도에서 초과 샘플을 생성.
      • Decimation (M): 필요 없는 샘플을 제거.
      • 저역 통과 필터를 적용하여 리샘플링 시 발생하는 앨리어싱(왜곡)을 제거.
  3. AM 디모듈레이션:
    • APT 신호는 AM 변조(Amplitude Modulation) 방식으로 전송됩니다.
    • 디모듈레이션을 통해 신호의 진폭 정보를 추출하고 이를 APT 신호로 변환합니다.
  4. APT 신호 분석:
    • APT 신호는 밝고 어두운 **동기 프레임(sync frame)**으로 시작하며, 이 프레임은 이미지의 스캔 라인을 정렬하는 데 사용됩니다.
    • 동기 프레임의 위치를 확인하기 위해 **교차 상관 분석(Cross-Correlation)**을 사용합니다.
    • 동기 프레임 위치를 찾으면, 각 샘플을 스캔 라인으로 매핑합니다.
  5. 이미지 생성:
    • 디코딩된 APT 신호를 밝기 값(0~255)으로 매핑합니다.
    • 각 동기 프레임에서 새로운 스캔 라인을 시작하며, 이를 통해 2D 이미지가 생성됩니다.
  6. 지도 오버레이 추가:
    • 이미지 위에 지리적 위치를 기반으로 하는 지도(Overlay)를 추가합니다.

2. 단계별 설명

1) 샘플 로드

APT 신호는 일반적으로 FM 변조된 RF 신호로 수신됩니다. SDR(Software-Defined Radio)을 사용해 이 신호를 캡처하고 WAV 파일로 저장합니다.

  • 샘플 속도: 44100Hz 또는 48000Hz.
  • 저장된 WAV 파일은 NOAA-15에서 전송된 원시 데이터를 포함합니다.

2) 리샘플링

APT 신호의 표준 샘플 속도는 20800Hz입니다. 따라서 입력 WAV 파일을 이 속도로 리샘플링해야 합니다.

  • 리샘플링 과정:
    1. 최대 공약수(GCD) 계산:
      • 입력 샘플 속도와 출력 샘플 속도의 GCD를 사용하여 L(interpolation factor)와 M(decimation factor)을 계산합니다.
    2. Interpolation:
      • 각 샘플 사이에 L-1개의 0을 삽입하여 샘플 속도를 증가시킵니다.
    3. Lowpass Filtering:
      • 저역 통과 필터를 적용하여 샘플 간의 매끄러운 연결을 보장하고 앨리어싱을 방지합니다.
    4. Decimation:
      • 필요 없는 샘플을 M 간격으로 제거하여 최종 샘플 속도를 20800Hz로 맞춥니다.

3) AM 디모듈레이션

APT 신호는 AM 변조 방식으로 전송됩니다.

  • 디모듈레이션 과정:
    1. 각 샘플의 진폭을 계산합니다.
    2. 신호의 진폭 변화가 이미지의 밝기 정보를 나타냅니다.

4) 동기 프레임 탐지

APT 신호는 주기적으로 나타나는 밝은 흰색과 검은색 동기 프레임이 포함됩니다.

  • 동기 프레임 탐지 방법:
    1. APT 신호와 하드코딩된 동기 프레임 패턴 간의 교차 상관 분석을 수행합니다.
    2. 교차 상관 값이 최대값을 나타내는 위치를 찾아 동기 프레임의 시작 지점을 결정합니다.

5) 이미지 생성

  • **각 샘플을 밝기 값(0~255)**으로 매핑합니다.
  • 동기 프레임마다 새로운 스캔 라인을 시작하여 이미지를 생성합니다.

6) 지도 오버레이 추가

  • 위성의 궤도 데이터를 사용해 이미지에 지리적 위치를 계산하고 지도 오버레이를 추가합니다.
  • 궤도 데이터를 기반으로 이미지를 회전하여 올바른 방향으로 정렬합니다.

3. 요약

NOAA-15 APT 디코딩은 다음과 같은 과정을 따릅니다:

  1. WAV 파일 로드: SDR로 수신한 RF 신호를 WAV 파일로 로드.
  2. 리샘플링: 20800Hz로 샘플링 속도 조정.
  3. AM 디모듈레이션: 진폭 정보를 추출하여 밝기 값으로 변환.
  4. 동기 프레임 탐지: 교차 상관 분석을 통해 스캔 라인 정렬.
  5. 이미지 생성: 밝기 값을 매핑해 이미지 생성.
  6. 지도 오버레이: 지리적 데이터를 기반으로 지도 추가.

이 원리를 기반으로 Python 라이브러리(numpy, scipy)나 APT 전용 디코더를 구현할 수 있습니다. 궁금한 점이 있으면 더 자세히 설명해드릴게요! 😊

 

 

쩐다...이게..universe..?

 


 

app은 요런 모습이다

 

 

 

 

 

캬 one은 디코드해서 이미지로 뽑아내니 낭만 지린다 it's a beautiful day

 

요거 two.wav 파일

 

 

아름다운 날이군..이런날엔 볼링 치러가야지 ㄹㅇㅋㅋ