Chapter 03

비트를 전파에 싣기: GFSK와 PHY

무선 이어폰 광고에는 “블루투스 5.3”이, 분실물 태그 광고에는 “최대 4배 먼 거리”가 적혀 있다. 그런데 2장에서 본 것처럼 송신 전력은 법과 배터리가 정하는 한계가 있다. 같은 전력으로 더 멀리 가려면 무엇을 바꿔야 할까? 답은 비트를 전파에 싣는 방식, 즉 물리 계층(PHY)에 있다. 이 장에서는 블루투스가 주파수를 아주 조금 올리고 내리는 것만으로 0과 1을 보내는 방법(GFSK)부터, 같은 방식을 느리고 꼼꼼하게 바꿔 거리를 늘리는 LE Coded PHY까지 따라간다.

주파수를 살짝 흔들어 0과 1을 보내기

전파는 일정한 주파수로 진동하는 파동, 반송파(carrier)다. 여기에 정보를 실으려면 무언가를 바꿔야 한다. 세기를 바꾸면 AM, 위상을 바꾸면 PSK, 주파수를 바꾸면 FSK다. 블루투스는 주파수를 바꾼다. 1을 보낼 때는 채널 중심보다 조금 높은 주파수, 0을 보낼 때는 조금 낮은 주파수를 낸다. 이것이 주파수 편이 변조(FSK, Frequency Shift Keying)다.

FSK는 단순해서 좋다. 신호의 세기가 일정하므로 송신기의 전력 증폭기를 효율이 가장 좋은 포화 상태로 돌릴 수 있고, 수신기는 세기가 출렁여도 “지금 주파수가 높은가 낮은가”만 보면 된다. 작은 칩과 코인 전지에 딱 맞는 성질이다. 문제는 주파수를 0과 1 사이에서 갑자기 바꾸면 그 순간 넓은 주파수 범위로 에너지가 튀어 옆 채널을 방해한다는 것이다. 그래서 비트 열을 먼저 종 모양의 가우시안 필터(Gaussian filter)로 부드럽게 다듬은 뒤 주파수를 바꾼다. 이것이 블루투스 클래식과 LE가 모두 쓰는 GFSK(Gaussian FSK)다.

GFSK를 정하는 숫자는 두 개다.

LE GFSK BT = 0.5, h = 0.45~0.55, 1은 양의 편이: [Vol 6] Part A §3.1 · BR GFSK BT = 0.5, h = 0.28~0.35, 최소 편이 115 kHz: [Vol 2] Part A §3.1.1

SIMULATOR

GFSK 만들기: 비트 → 부드러운 주파수 곡선

방식
가우시안 필터 BT
 
최대 편이 Δf—
1010에서 최소 편이—
점유 대역폭(근사)—
위: 보낼 비트(NRZ, ±1). 아래: 가우시안 필터를 거친 뒤의 주파수 편이(kHz). 해볼 것: ① “필터 없음”이면 주파수가 계단처럼 꺾이고, 0.3이면 1010처럼 자주 바뀌는 곳에서 곡선이 최대 편이에 다 닿지 못한다(ISI). 사양이 0.5를 고른 이유가 이 둘 사이의 타협이다. ② “1010… 패턴”으로 바꾸고 BT를 바꿔 보자. 클래식 사양은 1010 패턴의 최소 편이가 00001111 패턴 편이의 80% 이상, 그리고 115 kHz 이상이길 요구한다. 점유 대역폭은 카슨 규칙 2(Δf + R/2)로 어림했다.

잡음 속에서 0과 1 판정하기

수신기는 들어온 신호의 주파수를 재서(주파수 판별기) 중심보다 높으면 1, 낮으면 0으로 판정한다. 신호가 강하면 쉽다. 하지만 2장의 링크 버짓에서 마진이 줄어들수록 신호는 잡음에 묻히고, 잡음이 판정선을 넘기는 순간 비트가 뒤집힌다. 신호 대 잡음비(SNR)가 몇 dB 떨어지면 비트 오류율(BER, Bit Error Rate)은 몇 배가 아니라 몇 자릿수씩 뛴다.

블루투스 패킷에는 오류를 찾는 24비트 CRC가 붙어 있다(6장). 비트가 하나라도 틀리면 CRC 검사에 걸려 패킷 전체를 버리고 다시 보낸다. 그래서 중요한 것은 BER 자체보다 패킷 오류율이다. 패킷이 길수록 그 안에 틀린 비트가 하나라도 있을 확률이 커진다.

패킷 오류율 ≈ 1 − (1 − BER)비트 수
예: BER 0.1%, 47바이트 패킷(376비트)이면 1 − 0.999376 ≈ 31%. 사양은 수신 감도를 “BER이 0.1%가 되는 세기”로 정의하되, 긴 패킷을 지원하는 기기는 같은 패킷 오류율이 되도록 더 엄격한 BER(최대 255바이트 지원 시 0.017%)을 적용한다.

감도 측정 BER(Table 4.1: 페이로드 1~37바이트 0.1%, 38~63 0.064%, 64~127 0.034%, 128~255 0.017%): [Vol 6] Part A §4.1

SIMULATOR

잡음 속 판정: SNR → 비트 오류 → 패킷 오류

 
측정 BER (4,000비트)—
이론 BER—
패킷 오류율—
왼쪽: 비트 중앙에서 잰 판별기 출력(점 하나가 비트 하나). 판정선(0)을 넘어간 점이 오류(빨강)다. 오른쪽: SNR에 따른 이론 BER 곡선(로그 눈금)과 현재 위치. 해볼 것: ① SNR을 11 dB에서 9 dB로 2 dB만 내려 보자. BER은 열 배 가까이 뛴다. 무선 링크가 “조금 나빠지다가 갑자기 끊기는” 이유다. ② 같은 SNR에서 페이로드를 27 → 251바이트로 늘리면 패킷 오류율이 크게 오른다. 모델: 비동기 FSK 판정의 이론식 BER = ½·exp(−SNR/2)를 쓰고, 측정값은 같은 BER이 나오도록 만든 가우시안 잡음 판정 실험이다. 실제 GFSK 수신기는 구현에 따라 이보다 수 dB 좋거나 나쁘다.

클래식의 가속 장치: EDR과 위상 변조

클래식 블루투스의 기본(Basic Rate)은 1 Msym/s의 GFSK로, 심볼 하나에 1비트, 공중 속도 1 Mb/s다. 2004년의 2.0+EDR은 심볼 속도는 그대로 두고 심볼 하나에 더 많은 비트를 싣는 방법으로 속도를 올렸다. 주파수 대신 반송파의 위상(파동이 어느 각도에 있는가)을 바꾸고, 그 변화량에 비트를 대응시킨다.

“D”(Differential)는 절대 위상이 아니라 직전 심볼과의 차이에 비트를 싣는다는 뜻이다. 수신기가 송신기의 위상을 정확히 맞출 필요가 없어 회로가 단순해진다. 대가는 잡음 내성이다. 성좌도에서 점들의 간격이 좁아질수록 같은 잡음에도 옆 점으로 잘못 읽히기 쉽다. 그래서 EDR 패킷은 앞부분(접근 코드와 헤더)을 여전히 튼튼한 GFSK로 보내고, 약 5 µs의 보호 시간과 11 µs의 동기 신호 뒤에 페이로드만 DPSK로 보낸다. 링크가 나빠지면 기기는 3 Mb/s → 2 Mb/s → 1 Mb/s 패킷으로 스스로 낮춘다.

SIMULATOR

성좌도: 한 심볼에 몇 비트를 실을 수 있나

변조
공중 속도—
이웃 점 간격—
심볼 오류 (600개 중)—
원 위의 큰 점이 이상적인 위상 위치(위상 변화의 종류), 작은 점이 잡음을 겪은 수신 심볼이다. 가장 가까운 큰 점과 다른 영역에 떨어지면 오류(빨강). 해볼 것: SNR 14 dB에서 변조를 바꿔 보자. 2비트까지는 거의 오류가 없지만 8DPSK는 눈에 띄게 틀린다. 8DPSK로 같은 오류율을 내려면 약 5 dB 더 강한 신호가 필요하다. 단순화: 차동 검출의 추가 손실은 빼고 위상 판정만 그렸다.

표의 이름은 규칙대로 읽으면 된다. D는 데이터(ACL) 패킷, H는 오류 정정 부호 없이 꽉 채워 싣는 “High rate”(같은 자리에 2/3 FEC를 씌운 것은 M, Medium rate), 끝의 숫자는 패킷이 차지하는 슬롯 수(1·3·5, 한 슬롯 625 µs)다. 앞에 붙은 2-·3-는 페이로드를 EDR 2 Mb/s·3 Mb/s로 보낸다는 뜻이다. 그래서 3-DH5는 “3 Mb/s EDR로, FEC 없이, 5슬롯 동안 보내는 데이터 패킷”이다. 패킷 종류 전체와 처리량 계산은 심화편 12장 · 패킷 종류에 있다.

가장 긴 ACL 패킷변조페이로드 최대최대 속도(한쪽 방향)대칭 속도
DH5GFSK339바이트723.2 kb/s433.9 kb/s
2-DH5π/4-DQPSK679바이트1,448.5 kb/s869.1 kb/s
3-DH58DPSK1,021바이트2,178.1 kb/s1,306.9 kb/s

EDR 변조와 심볼 속도 1 Msym/s: [Vol 2] Part A §1·§3.2 · EDR 패킷 구성: [Vol 2] Part B §6.1.2 · 보호 시간 4.75~5.25 µs, 동기 신호 11 µs: [Vol 2] Part B §6.6.1 · ACL 패킷 표(Table 6.8): [Vol 2] Part B §6.7

공중 속도 3 Mb/s가 실제로는 2.18 Mb/s가 되는 이유는 5슬롯 패킷 뒤에 상대가 1슬롯 응답을 보내야 하고, 패킷마다 접근 코드·헤더·보호 시간이 붙기 때문이다. 6장의 LE에서도 같은 계산을 한다. 무선 이어폰의 음악(수백 kb/s)은 이 범위에 넉넉히 들어간다(10장).

LE의 PHY 넷: 1M, 2M, Coded S=2, Coded S=8

LE는 4.0에서 LE 1M 하나로 시작했다. 1 Msym/s GFSK, 1 Mb/s. 모든 LE 기기가 반드시 지원해야 하는 기본이다. 5.0에서 두 가지 선택 PHY가 더해졌다.

사양이 요구하는 감도도 PHY마다 다르다. LE 1M·2M은 −70 dBm 이하, Coded S=2는 −75 dBm 이하, S=8은 −82 dBm 이하다. 실제 칩에서 S=8은 1M보다 대략 8~12 dB 좋은 감도를 낸다. 트인 곳(거리 2배당 6 dB)이라면 12 dB는 거리 4배다. “블루투스 5는 4배 멀리”라는 문구의 근거다. 실내에서는 경로 손실 지수가 커서 2~3배 정도로 줄어든다.

PHY 정의(LE 1M 필수, LE Coded 선택, LE 2M·LE 2M 2BT): [Vol 6] Part A §1 · 감도 Table 4.2: [Vol 6] Part A §4.1 · FEC 부호기(부호율 ½, K=4, G0 = 1+x+x²+x³, G1 = 1+x²+x³)와 패턴 매퍼(S=8: 0 → 0011, 1 → 1100): [Vol 6] Part B §3.3

LE 1M1 Msym/s 프리앰블1 B · 8 µs 접근 주소4 B · 32 µs PDU2~258 B · 16~2,064 µs CRC3 B · 24 µs CTE (선택)16~160 µs LE 2M2 Msym/s 프리앰블2 B · 8 µs 접근 주소4 B · 16 µs PDU2~258 B · 8~1,032 µs CRC3 B · 12 µs CTE (선택)16~160 µs LE Coded1 Msym/s 프리앰블80 µs 접근 주소256 µs CI16 TERM124 PDUS=8: 128~16,448 µs CRCS=8: 192 TERM2S=8: 24 FEC 블록 1: 언제나 S=8 FEC 블록 2: CI가 정한 S=2 또는 S=8 S=2이면 PDU 32~4,112 µs · CRC 48 · TERM2 6 칸 너비는 시간에 비례하지 않는다 · 시간 →
그림 3-1. LE 패킷의 모양. 1M과 2M은 같은 필드를 같은 순서로 보내고, 2M은 모든 필드를 두 배 빠르게 보낸다(프리앰블만 2바이트로 늘려 길이를 8 µs로 맞춘다). Coded는 프리앰블 뒤를 두 FEC 블록으로 나눈다. 접근 주소와 CI는 늘 S=8로 튼튼하게 보내고, 본문은 CI가 고른 S=2 또는 S=8로 보낸다. 그래서 같은 PDU라도 Coded S=8에서는 1M보다 8배 오래 걸린다. CTE는 1M·2M에만 붙는다.
SIMULATOR

LE Coded 부호기 들여다보기: 비트 하나가 심볼 8개가 되기까지

부호화 방식
입력 비트—
부호 비트 (×2)—
공중 심볼—
걸리는 시간—
위의 비트를 눌러 0/1을 바꿔 보자. 아래 첫 줄은 컨볼루션 부호기의 출력(입력 비트마다 a0 a1 두 비트, 파랑 = G0, 청록 = G1), 둘째 줄은 패턴 매퍼를 거친 공중 심볼이다. 해볼 것: ① 입력 비트 하나만 바꿔도 부호 비트가 최대 4쌍(구속장 K=4)에 걸쳐 바뀐다. 이 “퍼짐” 덕분에 공중에서 심볼 몇 개가 깨져도 전후 관계로 복원할 수 있다. ② S=8에서 1은 1100, 0은 0011이 된다. 공중 심볼은 1 µs마다 하나이므로 입력 비트 하나가 8 µs를 차지한다. 이 계산은 사양 §3.3의 부호기를 그대로 구현한 것이다.
CALCULATOR

PHY 비교: 같은 데이터, 다른 시간과 거리

경로 손실 지수 (2장)
LE 1M 패킷 시간—
LE 2M—
Coded S=2—
Coded S=8—
왼쪽 막대: 패킷 하나를 보내는 데 걸리는 시간(무선부가 켜져 있는 시간, 즉 전력에 비례). 오른쪽 막대: LE 1M 대비 도달 거리 배수. 해볼 것: ① 페이로드 251바이트에서 S=8은 1M보다 약 8배 오래 걸린다. 같은 정보를 보내는 데 전력도 대략 8배, 다른 신호와 부딪힐 기회도 8배다. ② 경로 손실 지수를 바꾸면 Coded의 거리 이득이 줄어든다. 패킷 시간은 사양 §2.1·§2.2의 필드 길이로 계산했다(LE 1M: 프리앰블 1 + 접근 주소 4 + 헤더 2 + 페이로드 + CRC 3바이트, 1 µs/비트. LE 2M: 프리앰블 2바이트, 0.5 µs/비트. Coded: 프리앰블 80 µs + FEC 블록1 296 µs + (헤더·페이로드·CRC 비트 + TERM2 3비트) × S µs). 거리 배수는 칩 감도 대표값(1M −97, 2M −94, S=2 −100, S=8 −104 dBm)의 차이를 10·n·log₁₀으로 환산했다.
예측해 보기

이어폰과 휴대폰이 30 cm 거리에서 LE로 많은 데이터를 주고받는다. 배터리를 가장 아끼려면 어떤 PHY가 좋을까?

PHY 비교 계산기에서 페이로드 251바이트의 패킷 시간을 보자. 가까운 거리에서는 감도 차이가 문제 되지 않는다.

무선부가 쓰는 전류는 PHY와 거의 무관하게 비슷하므로 에너지는 “켜져 있는 시간”에 비례한다. 마진이 넉넉한 가까운 거리에서는 2M이 가장 경제적이다. Coded는 멀리 가야 할 때만 쓴다. 연결 중에도 PHY 업데이트 절차로 상황에 맞게 바꿀 수 있다(6장).

곧 올 PHY: HDT (공개 초안)

이 절은 Core 6.3 밖의 내용이다

HDT는 이 책의 기준인 Core 6.3에도 들어 있지 않다. Bluetooth SIG가 Core 6.2를 바탕으로 만든 공개 초안(Change Request)과 SIG의 소개 글(2026년 7월)을 근거로 쓴다. SIG는 다음 Core 사양에 넣을 예정이라고 밝혔다. 정식 사양이 나오면 수치와 이름이 바뀔 수 있다.

LE 2M의 2 Mb/s는 6장에서 계산해 보면 앱 처리량 약 1.4 Mb/s가 상한이다. 무손실 오디오나 수백 MB 펌웨어에는 모자란다. HDT(High Data Throughput)는 LE에 새 PHY를 더해 최대 7.5 Mb/s까지 올리려는 기능이다. 지금까지 이 장에서 본 생각들이 그대로 다시 쓰인다.

PREVIEW

HDT 미리 보기: 같은 파일을 보내는 공중 시간

LE 2M (공중 속도만)—
HDT 7.5 Mb/s (초안)—
LE 2M 실제 상한 (6장, 약 1.4 Mb/s)—
막대는 데이터를 공중 속도로 보내는 데 걸리는 시간의 하한이다. 패킷 머리, 응답, 틈, 재전송은 넣지 않았다(HDT 초안의 패킷 형식은 정식 사양에서 확인해 반영할 예정). 맨 아래 막대는 6장 계산기로 구한 LE 2M의 실제 상한이다. 해볼 것: 1 MB 펌웨어를 보내면 LE 2M 실제 상한으로 약 6초, HDT 7.5 Mb/s 공중 속도로 1초 남짓이다. 실제 HDT 처리량은 오버헤드만큼 이보다 낮다. 속도 단계(2·3·4·6·7.5 Mb/s)는 SIG 공개 자료 기준이다.
예측해 보기

HDT가 정식 사양이 되면, 지금 쓰는 블루투스 6.0 이어폰도 펌웨어 업데이트로 7.5 Mb/s를 쓸 수 있을까?

HDT가 바꾸는 것이 소프트웨어(호스트)인지 무선 회로(PHY)인지 생각해 보자(1장의 스택).

HDT는 PHY, 즉 컨트롤러의 무선 회로를 바꾸는 기능이다. 1장에서 본 것처럼 선택 기능은 양쪽 기기가 모두 지원해야 쓸 수 있다. 첫 제품은 정식 채택 뒤 새 칩을 넣은 기기부터 나온다.

Core 6.3에도 없음 · Bluetooth SIG, “Introducing Bluetooth High Data Throughput (HDT)” (2026-07-28)과 공개 초안 HDT Change Request(Core 6.2 기반) · 채택 예정: 다음 Core 사양

PHY 고르기: 속도·거리·전력·충돌

PHY 선택은 결국 2장의 링크 버짓과 9장의 전력 예산 사이의 교환이다. 같은 마진을 확보하는 방법이 “전력을 올리기”, “더 민감한(느린) PHY 쓰기”, “가까이 두기” 셋뿐이기 때문이다.

PHY데이터 속도사양 최소 감도좋은 곳대가
LE 1M1 Mb/s≤ −70 dBm광고·호환성(모든 기기가 지원)—
LE 2M2 Mb/s≤ −70 dBm펌웨어 업데이트, 오디오, 가까운 대용량감도 몇 dB 손해, 선택 기능
LE Coded S=2500 kb/s≤ −75 dBm집 전체를 덮는 센서패킷 시간 약 2배
LE Coded S=8125 kb/s≤ −82 dBm마당·주차장·창고, 장거리 비콘패킷 시간 약 8배, 전력·충돌 증가
카페에서 또박또박 말하기

시끄러운 카페에서 멀리 앉은 친구에게 말을 전하는 방법은 세 가지다. 더 크게 외치거나(송신 전력), 더 가까이 가거나(거리), 한 글자씩 천천히 여러 번 반복해서 말하는 것이다(Coded PHY). 마지막 방법은 목소리를 키우지 않아도 되지만 한 문장에 시간이 오래 걸리고, 그동안 다른 손님의 말과 겹칠 가능성도 커진다. 바로 옆자리 친구에게는 빠르게 말하는 편이 낫다(2M).

한 가지 더. LE 2M과 Coded는 선택 기능이고 상대도 지원해야 쓸 수 있다. 그래서 처음 만날 때는 모든 기기가 아는 LE 1M을 쓰고(광고 채널의 레거시 광고는 1M만 쓴다), 연결된 뒤 서로의 기능을 확인하고 바꾸는 것이 일반적이다. 처음부터 장거리로 찾게 하려면 5.0의 확장 광고로 광고 채널에서도 Coded PHY를 쓴다(5장).

핵심 정리

  1. 블루투스는 주파수를 살짝 올리고 내려 1과 0을 보내는 GFSK를 쓴다. 신호 세기가 일정해 증폭기 효율이 좋고 수신기가 단순하다. 가우시안 필터(BT = 0.5)가 급한 변화를 다듬어 옆 채널 간섭을 줄인다.
  2. 변조 지수는 클래식 h = 0.28~0.35, LE h = 0.45~0.55. 최대 편이 Δf = h × 심볼 속도 ÷ 2(LE 1M에서 약 ±250 kHz).
  3. SNR이 몇 dB만 떨어져도 BER은 자릿수로 뛴다. 패킷 오류율은 길이에 따라 커지며, 사양은 감도를 BER 0.1%(긴 패킷은 더 엄격)로 정의한다.
  4. 클래식 EDR은 1 Msym/s에 위상 변조로 2 Mb/s(π/4-DQPSK), 3 Mb/s(8DPSK)를 싣는다. 점 간격이 좁아 더 강한 신호가 필요하다. 3-DH5의 최대 처리량은 2,178.1 kb/s다.
  5. LE PHY는 넷: 1M(필수), 2M(시간 절반), Coded S=2(500 kb/s), S=8(125 kb/s). Coded는 부호율 ½·K=4 컨볼루션 부호와 패턴 매퍼로 비트를 퍼뜨려 감도를 높인다(사양 최소 −75/−82 dBm).
  6. 가까우면 2M이 가장 경제적이고, 멀면 Coded가 닿는다. 느린 PHY는 전력과 충돌 기회를 늘린다.
  7. HDT(공개 초안, Core 6.3에도 없음)는 2 Msym/s에 QPSK·QAM 계열 변조와 FEC를 더해 2~7.5 Mb/s를 패킷마다 골라 쓰는 새 LE PHY다. 새 무선 회로가 필요하다.

확인 퀴즈

블루투스가 진폭 변조 대신 FSK 계열을 쓰는 이유로 가장 적절한 것은?

일정한 포락선 덕분에 저렴하고 효율적인 송신기와 단순한 수신기를 만들 수 있다. 작은 배터리 기기에 맞는 선택이다.

LE 1M에서 변조 지수 h = 0.5일 때 최대 주파수 편이는?

Δf = h × 심볼 속도 ÷ 2 = 0.5 × 1 MHz ÷ 2 = 250 kHz. LE 2M에서는 같은 h로 ±500 kHz다.

가우시안 필터의 BT를 0.5에서 0.3으로 낮추면?

필터가 부드러울수록 주파수 변화가 완만해져 스펙트럼이 좁아지지만, 1010처럼 빠르게 바뀌는 비트에서 편이가 끝까지 닿지 못한다.

LE Coded S=8이 125 kb/s인 이유는?

1 Msym/s ÷ 8 = 125 kb/s. S=2는 부호화만 하고 패턴 매핑은 1:1이라 500 kb/s다.

EDR 3 Mb/s 패킷을 쓰던 링크가 거리가 멀어지자 2 Mb/s 패킷으로 바뀌었다. 이유는?

심볼당 비트를 늘리면 점 사이 간격이 줄어 잡음 여유가 줄어든다. 링크가 나빠지면 더 튼튼한 변조로 내려간다.

Core 6.3 사양이 LE Coded S=8 수신기에 요구하는 최소 감도는?

[Vol 6] Part A Table 4.2: 비부호화 −70, S=2 −75, S=8 −82 dBm. −104 dBm 같은 값은 좋은 상용 칩의 실제 성능이다.