TECH 으로 돌아가기
TECH HACKER NEWS 어제 6분 읽기 28 READS

AM 항공 무전을 코드로 재현하기: 잡음과 스퀄치까지 시뮬레이션한 이야기

AM 항공 무전을 코드로 재현하기: 잡음과 스퀄치까지 시뮬레이션한 이야기
SOURCE IMAGE · HACKER NEWS

전투 비행 시뮬레이터는 겉보기엔 게임이지만, 그 안에서 벌어지는 통신은 놀라울 만큼 현실을 닮아 있다. 개발자이자 시뮬레이터 애호가인 글쓴이는 여러 해 동안 F-16 협동 시뮬레이터 BMS를 즐겨 왔다. 30명 넘는 인원이 각본 없이 팀을 이뤄 공중전을 벌이는 이 게임에서는 무전이 곧 생명줄이다. BMS에 딸린 음성 채팅 앱 IVC는 채팅방이 아니라 실제 주파수에 '튜닝'하는 방식으로 동작하며, 항공기가 멀어지거나 저고도에서 지형에 가리면 신호가 약해지도록 구현돼 있다.

흥미로운 사실은 민항기는 물론 상당수 군용기의 무전조차 여전히 VHF·UHF 대역의 단순한 AM 방식이라는 점이다. 수십 년간 기술이 발전했는데도 AM이 살아남은 이유 중 하나는 이른바 '캡처 효과'가 없기 때문이다. FM에서는 같은 주파수에 두 사람이 송신하면 강한 신호가 약한 신호를 덮어버리지만, AM에서는 두 목소리가 (어느 정도) 겹쳐서 들린다. 문제는 기존 IVC가 두 사람이 동시에 말할 때 이 상황을 그저 하나의 인위적인 소리로 처리한다는 것이었다. 글쓴이는 더 나은 UX와 현대적 코덱을 갖춘 IVC 대체 앱을 만드는 지인에게 '진짜 AM 무전다운' 동작을 붙이고 싶어 이 작업에 뛰어들었다.

신호와 잡음, 그리고 로그 스케일

전파는 다른 모든 파동과 마찬가지로 거리의 제곱에 반비례해 약해진다. 이렇게 넓은 범위의 세기를 다루려니 인간의 감각이 로그 스케일로 작동하듯, 무선 세계도 신호 세기를 데시벨(dB)로 표현한다. 여기서 핵심 지표가 신호 대 잡음비(SNR)다. 잡음은 인공적 원인, 뇌우 같은 대기 현상, 우주, 부품의 결함에서 오며, 그 모든 것을 제거해도 수신기 전자의 열운동에서 비롯되는 열잡음이 이론적 최소치로 남는다. 즉 잡음은 결코 사라지지 않고, 우리가 바랄 수 있는 것은 신호가 잡음보다 충분히 큰 상태뿐이다.

사람 목소리는 20~20,000Hz에 걸쳐 있는데, 낮은 주파수일수록 파장이 길어 안테나가 커져야 한다. 10kHz 신호를 그대로 받으려면 7km가 넘는 전선이 필요하다. 그래서 목소리를 전송 가능한 높은 반송파에 실어 보내는데, 반송파의 진폭을 목소리 진폭에 맞춰 변조하는 방식이 바로 진폭 변조(AM)다. 이렇게 만들어진 신호의 외곽선, 즉 '포락선'은 원래 목소리를 그대로 비춘 형태가 된다.

필터로 다시 만드는 무전의 질감

수신 측에서는 원하는 대역만 통과시키고, 약해진 신호를 증폭하고, 포락선 검출기로 목소리를 복조한다. 이 모든 것의 기초에 RC 회로가 있다. 저항과 커패시터를 조합하면 저주파를 통과시키는 저역통과 필터가 되고, 둘의 위치를 바꾸면 고역통과 필터가 된다. 아날로그에서 교과서 한 권 분량인 필터 설계가 디지털 영역에서는 의외로 간단해진다는 점이 이 작업의 출발점이다.

증폭량을 자동으로 조절하는 자동이득제어(AGC)도 결국 필터의 응용이다. 신호의 크기를 취해 저역통과시키면 대략적인 음량 곡선이 나오는데, 말이 시작될 때는 빠르게(어택) 반응하고 숨을 고를 때는 천천히(디케이) 떨어지도록 비대칭 필터를 설계하면 사람이 듣기에 일정한 음량을 유지할 수 있다. 이 음량 측정값은 스퀄치, 즉 신호가 일정 크기 아래로 떨어지면 스피커를 음소거하는 기능에도 그대로 쓰인다. 항공 무전 특유의 시작 '클릭'과 종료 '크쉬' 소리는 인위적 효과음이 아니라 AGC와 스퀄치가 상호작용하며 생기는 자연스러운 산물이라는 설명이 특히 인상적이다.

여러 명이 겹쳐 말할 때 생기는 소리

글쓴이가 정작 재현하고 싶었던 것은 여러 명이 동시에 송신할 때의 그 기묘한 잡음이다. 발진기는 온도 변화에 따라 미세하게 흔들리고, 수백 노트로 나는 전투기에서는 도플러 효과까지 주파수를 밀어낸다. AM 수신기는 이런 작은 오차에 대체로 무관심해 121.5MHz를 겨냥했는데 실제로는 조금 어긋나도 같은 포락선을 복조해낸다. 하지만 두 송신이 겹치는 순간, 두 주파수 차이만큼의 맥놀이(beat) 주파수가 생긴다. 121.499MHz와 121.501MHz가 만나면 귀에 거슬리는 2kHz의 휘파람 소리가 되는 식이다. 이 맥놀이는 목소리를 링 변조해 마치 SF의 달렉 같은 음색을 만들고, 큰 목소리가 약한 목소리를 변조하며, 심하면 AGC가 음량을 급격히 '펌핑'하게 만든다.

실무자 입장에서 이 글의 가치는 물리 현상을 하나하나 디지털 신호처리 블록으로 분해해 보여준다는 데 있다. 안테나와 전파의 물리에서 출발해 필터, 이득 제어, 복조를 실시간 오디오 파이프라인으로 옮기는 사고 과정은 게임 오디오뿐 아니라 통신 시뮬레이션, 몰입형 애플리케이션 설계 전반에 참고가 된다. 다만 이 글은 원리 설명에 집중한 전반부로, 실제 이 모든 동작을 코드로 구현하는 단계는 다음 이야기로 미뤄져 있다는 점은 감안하고 읽어야 한다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://bitbashing.io/am-radio.html
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...