[WiFi] OFDM기반 Wi-FI PHY 기초
OFDM의 핵심 구성 요소인 OFDM Symbol, Subcarrier, CP/GI, MCS를 통해 Wi-Fi가 데이터를 효율적이고 안정적으로 전송하는 기본 원리를 간단히 정리
프롤로그
오랜만에 나도 와이파이 실험 연구 들어가면서 개념이 가물가물한 것들, 조금 더 확실하게 하기 위해 쉽게 간단간단하게 정리하려고 한다.
OFDM Symbol
OFDM에 대한 개념은 바로 직전 글에서 데이터를 여러 개의 Subcarrier에 나누어 전송하는 기술이라고 설명하였다.
OFDM은 하나의 사용자가 여러 개의 Subcarrier를 동시에 사용하여 데이터를 전송하는 방식이며, 마치 여러 음을 동시에 연주하는 피아노 화음과 비슷하다고 볼 수 있다.
https://smjgallery.kr/blog/post/wi-fi-ofdm-mimo-mu-mimo-ofdma%EB%A1%9C-%EB%B3%B4%EB%8A%94-wi-fi-%EA%B8%B0%EC%88%A0%EC%9D%98-%EC%A7%84%ED%99%94/
https://smjgallery.kr/blog/post/wi-fi-ofdm-mimo-mu-mimo-ofdma%EB%A1%9C-%EB%B3%B4%EB%8A%94-wi-fi-%EA%B8%B0%EC%88%A0%EC%9D%98-%EC%A7%84%ED%99%94/
그렇다면 실제로 무선 채널을 통해 전송되는 데이터의 단위는 무엇일까?
이게 바로 OFDM Symbol이다.
OFDM Symbol은 여러 서브캐리어에 매핑된 데이터를 하나의 시간 영역 신호로 변환한 결과이다.
각 서브캐리어에 데이터가 할당되었을 때, 주파수 영역의 데이터만 존재하게 된다. 그래서 송신기는 IFFT(Inverse Fast Fourier Transform)을 수행하여 여러 서브캐리어의 데이터를 하나의 시간 영역 신호로 변환한다.
피아노로 예시를 든다면, 도에는 “A”, 미에는 “B”, 솔에는 “C” 데이터를 실어 보내기로 결정한 상태가 바로 주파수 영역의 데이터이다.
하지만 이 상태만으로는 실제 무선 채널을 통해 전송할 수 없다. 따라서 IFFT를 수행하여 여러 음(서브캐리어)에 담긴 데이터를 하나의 시간 영역 신호로 합치게 된다.
즉, 여러 음을 동시에 연주한 결과가 하나의 OFDM Symbol이 되는 것이다.
즉, OFDM Symbol은 여러 개의 Subcarrier에 실린 데이터를 하나로 합쳐 만든 하나의 전송 단위라고 이해하면 된다.
Wi-Fi에서는 수많은 OFDM Symbol들이 연속적으로 전송되면서 하나의 프레임(Frame)을 구성하게 된다.
Wi-Fi 6/7에서는 하나의 OFDM Symbol 길이가 12.8 μs이며, 이후 설명할 Guard Interval(GI)이 추가되어 실제 전송 길이가 결정된다.
반대로 수신기에서는 여러 음이 동시에 연주된 화음이 들어왔을 때 FFT(Fast Fourier Transform)를 수행하여 화음을 구성하는 각각의 음(도, 미, 솔)을 분리한다.
이를 통해 각 Subcarrier에 실려 있던 데이터를 다시 복원할 수 있다.
따라서 OFDM은 IFFT와 FFT를 이용해 주파수 영역의 데이터를 시간 영역 신호로 변환하여 전송하고, 다시 원래 데이터로 복원하는 방식으로 동작한다.
Subcarrier
OFDM에서는 전체 대역폭을 여러 개의 Subcarrier로 나누어 데이터를 전송한다. 여기서 Subcarrier란 하나의 작은 주파수 구간을 의미한다.
20 MHz 채널이 존재한다고 가정했을 때, OFDM은 이 20 MHz 전체를 하나의 신호로 사용하는 것이 아니라 여러 개의 작은 주파수 조각으로 나누어 각각에 데이터를 실어 전송한다.
피아노로 비유하면 도, 레, 미, 파, 솔, 라, 시 각각의 음이 하나의 Subcarrier라고 생각할 수 있다.
초기 802.11a/g OFDM에서는 20 MHz 채널을 기준으로 총 64개의 Subcarrier를 사용하였다.
다만 이 64개가 모두 데이터 전송에 사용되는 것은 아니다.
- Data Subcarrier : 약 48개
- Pilot Subcarrier : 4개
- Guard Band 및 DC Subcarrier : 나머지
즉 실제 사용자 데이터는 약 52개의 Subcarrier를 통해 전송된다.
Wi-Fi 6(802.11ax)부터는 OFDMA를 지원하기 위해 FFT 크기가 기존 64에서 256으로 증가하였다.
즉 동일한 20 MHz 대역폭을 더욱 세밀하게 나누게 된 것이다. 피아노에 비유하면 기존에는 흰 건반만 사용했다면, 이제는 검은 건반까지 모두 사용하여 더욱 촘촘하게 음을 구분하는 것과 비슷하다.
결과적으로 Subcarrier 간격(Subcarrier Spacing)은 기존보다 더 좁아지게 된다.
이렇게 Subcarrier 수를 증가시키면 다음과 같은 장점이 있다.
- OFDMA(Resource Unit) 할당 가능
- 다수 사용자 동시 전송 가능
- 주파수 자원 활용도 증가
- 긴 OFDM Symbol 사용 가능
반면
- OFDM Symbol 길이 증가
- 주파수 오차(Frequency Offset)에 민감
해지는 특징도 있다.
참고로 Wi-Fi 논문이나 표준 문서에서는 Subcarrier 대신 Tone이라는 용어를 사용하는 경우도 많다.
예를 들어
- 26-tone RU
- 52-tone RU
- 106-tone RU
- 242-tone RU
와 같이 표현하는데, 여기서 Tone은 사실상 Subcarrier와 동일한 의미로 이해하면 된다.
CP(Cyclic Prefix) & GI(Guard Interval)
OFDM Symbol은 여러 Subcarrier의 데이터를 하나의 시간 영역 신호로 변환한 결과이다. 하지만 실제 무선 환경에서는 건물, 벽, 천장 등에 의해 신호가 반사되면서 동일한 신호가 여러 경로를 통해 수신기에 도달하게 된다.
이를 다중경로(Multipath) 라고 한다.
예를 들어 송신기가 하나의 OFDM Symbol을 전송했을 때 수신기에서는 다음과 같이 동일한 신호가 서로 다른 시간에 도착할 수 있다.
문제는 이전 OFDM Symbol의 늦게 도착한 반사 신호가 다음 OFDM Symbol에 영향을 줄 수 있다는 것이다. 이를 ISI(Inter-Symbol Interference) 라고 한다.
이를 해결하기 위해 OFDM에서는 OFDM Symbol 앞에 보호 구간을 추가하는데, 이를 Guard Interval(GI) 이라고 한다.
이 GI를 구현하는 방식 중에 일반적으로 CP(Cyclic Prefix)를 이용한다.
CP는 OFDM Symbol의 뒷부분 일부를 복사하여 앞에 붙인 구간이다.
예를 들어 아래와 같은 OFDM Symbol이 있다고 가정해보자.
ABCDEFGH 라는 OFDM 심볼이 있으면 뒷부분 4구간을 복사해서 앞에 붙이면
EFGHABCDEFGH가 되는데, 이 앞의 EFGH가 바로 CP가 되는 것이다.
[CP] [OFDM Symbol]
만약 수신기가 신호를 받자마자 데이터를 해석한다면 아직 일부 분신들이 도착하지 않은 상태에서 FFT를 수행하게 될 수 있다.
CP는 이러한 반사 신호들이 모두 도착할 수 있도록 시간을 확보해주는 완충 구간(Buffer) 역할을 한다.
수신기는 CP 구간을 제거한 후 실제 OFDM Symbol 구간만 FFT를 수행하여 데이터를 복원한다.
물론 CP는 실제 데이터를 전송하지 않는 구간이기 때문에 길어질수록 전송 효율은 감소한다.
따라서 Wi-Fi에서는 채널 환경에 따라 적절한 GI 길이를 선택한다.
GI가 길수록 반사파에 대한 내성은 증가하지만, 실제 데이터가 아닌 CP 구간이 길어지므로 전송 효율은 감소하게 된다.
따라서 환경에 따라 적절한 GI를 선택하는 것이 중요하다. 특히 Wi-Fi 7과 같은 고속 무선 환경에서는 채널 상태와 전송 목적에 따라 GI 설정이 성능에 영향을 줄 수 있다.
MCS
Wi-Fi에서 데이터를 전송할 때는 단순히 “얼마나 많은 데이터를 보낼 것인가”만 결정하는 것이 아니라, 어떤 변조 방식(Modulation)과 어떤 채널 코딩(Channel Coding)을 사용할 것인가도 함께 결정해야 한다.
이를 하나의 값으로 정의한 것이 MCS(Modulation and Coding Scheme) 이다.
즉, MCS = 변조방식(Modulation) + 코딩율(Coding Rate) 이라고 생각하면 된다.
| MCS | Modulation | Dual Carrier Modulation | Coding Rate |
|---|---|---|---|
| 0 | Binary phase-shift keying (BPSK) | Not applicable | 1/2 |
| 1 | Quadrature phase-shift keying (QPSK) | Not applicable | 1/2 |
| 2 | Not applicable | 3/4 | |
| 3 | 16-point quadrature amplitude modulation (16-QAM) | Not applicable | 1/2 |
| 4 | 3/4 | ||
| 5 | 64-QAM | Not applicable | 2/3 |
| 6 | 3/4 | ||
| 7 | 5/6 | ||
| 8 | 256-QAM | 3/4 | |
| 9 | 5/6 | ||
| 10 | 1024-QAM | 3/4 | |
| 11 | 5/6 | ||
| 12 | 4096-QAM | 3/4 | |
| 13 | 5/6 | ||
| 15 | BPSK-DCM | 0 or 1 | 1/2 |
일반적으로 MCS 번호가 높을수록 더 많은 데이터를 한 번에 전송할 수 있다.
- MCS ↑ → 전송 속도 증가
- MCS ↑ → 오류 발생 가능성 증가
에필로그
어째 대충대충 빨리 적는 거 같지만, 이전에 종이, 펜 등으로 정리했던 거 말만 이쁘게 다시 해서 정리하는 거라서...
다음부터 실제 티스토리 적었던 것처럼 다시 꼼꼼하게 글 적을 거 같다.
댓글 0
내 생각을 남겨주세요로그인 후 글 작성합니다
로그인하기아직 댓글이 없습니다.