MJ GALLERY
← 목록으로
조회 34 좋아요 0
MJ

No cover image

Tech Published

[wifi] MATLAB wlanTGaxChannel 이해하기

작성자 서민재 · 2026.09.01 16:48 (수정됨) · 댓글 1

프롤로그

이제 IEEE 802.11 ax 이상에서 MATLAB으로 시뮬레이션 하기 위해 채널 설정하는 법을 알아보자

기존에 원래

y(t) = x(t)

로 들어와지면 좋겠지만 무선 채널 환경으로 인하여

y(t) = h(t) * x(t) + n(t)

로 들어와진다고 했다.

여기서 이 h(t)를 만드는 과정이라고 보면 된다. 

wlanTGaxChannel

앞에서 무선 채널과 Multipath, Channel Impulse Response(CIR)에 대한 기본적인 개념을 살펴보았다. 이제 MATLAB에서 IEEE 802.11 무선 채널을 어떻게 모델링하는지 살펴보자.

MATLAB WLAN Toolbox에서는 wlanTGaxChannel이라는 System object를 제공한다.

tgax = wlanTGaxChannel;

이렇게 하면 기본 설정을 사용하는 TGax 채널 객체가 생성된다.

wlanTGaxChannel은 IEEE 802.11ax의 TGax 채널 모델을 기반으로 한 실내 MIMO multipath fading channel을 구현한다.

쉽게 생각하면 우리가 앞에서

y(t) = h(t) * x(t) + n(t)

라고 표현했던 것에서, 실제 Wi-Fi 환경을 가정한 (h(t))를 만들어 입력 waveform에 적용하는 역할을 한다고 볼 수 있다.

다만 채널의 대역폭, Delay Profile, 송수신 거리, 안테나 수 등 원하는 환경이 있다면 wlanTGaxChannel의 Property를 직접 설정해야 한다.

대표적인 Property로는 다음과 같은 것들이 있다.

  • SampleRate
  • ChannelBandwidth
  • DelayProfile
  • CarrierFrequency
  • EnvironmentalSpeed
  • TransmitReceiveDistance
  • LargeScaleFadingEffect
  • NumTransmitAntennas
  • NumReceiveAntennas

이제 중요한 Property부터 하나씩 살펴보자.

SampleRate

SampleRate는 TGax 채널에 입력되는 waveform이 시간축에서 초당 몇 개의 sample로 표현되어 있는지를 나타낸다.

우리가 수식에서 사용하는 (x(t))는 연속시간 신호이지만, MATLAB과 같은 디지털 시스템에서는 신호를 연속적인 값으로 저장할 수 없다.

따라서 일정한 시간 간격마다 신호의 값을 sampling하여 처리한다.

이때 1초 동안 몇 개의 sample을 사용하는지를 나타내는 값이 Sampling Rate (F_s)이다.

예를 들어

F_{s} = 80MHz

라면 1초 동안 80,000,000개의 sample로 신호를 표현한다는 의미이다.

따라서 sample 하나 사이의 시간 간격 (T_s)는

T_{s} = 1/F_{s}

이므로,

T_{s} = 1/(80*10^{6}) = 12.5 ns

가 된다.

즉, 시간축에서 12.5 ns 간격으로 waveform의 값을 표현하고 있는 것이다.

그렇다면 TGax 채널은 왜 입력 waveform의 Sample Rate를 알아야 할까?

앞에서 Multipath를 공부하면서 하나의 송신 신호가 서로 다른 경로를 통해 서로 다른 Delay를 가지고 수신기에 도착할 수 있다는 것을 살펴보았다.

TGax 채널 역시 이러한 Multipath Delay를 시간축에서 구현해야 한다.

따라서 TGax 채널이 입력 waveform을 올바르게 처리하려면 입력 waveform이 어떠한 시간 간격의 sample들로 구성되어 있는지 알아야 한다.

이것이 SampleRate Property가 필요한 이유이다.

따라서 입력 waveform의 Sample Rate와 wlanTGaxChannel에 설정된 Sample Rate는 서로 일치해야 한다.

ChannelBandwidth

ChannelBandwidth

ChannelBandwidth는 TGax 채널 모델에서 사용하는 채널 대역폭(Channel Bandwidth)을 설정하는 Property이다.

CBW20   →  20 MHz
CBW40   →  40 MHz
CBW80   →  80 MHz
CBW160  → 160 MHz
CBW320  → 320 MHz

여기서 주의해야 할 점이 있다.

여기서 주의해야 할 점이 있다.

ChannelBandwidth = 'CBW80'이라고 설정한다고 해서 wlanTGaxChannel이 80 MHz Wi-Fi waveform을 생성해주는 것은 아니다.

wlanTGaxChannel은 waveform을 생성하는 객체가 아니라, 이미 생성된 waveform에 전파 채널의 영향을 적용하는 객체이기 때문이다.

따라서 ChannelBandwidth는 “몇 MHz짜리 waveform을 생성할 것인가?“를 지정하는 옵션이 아니라, TGax 채널 모델이 어떠한 채널 대역폭 조건에서 동작하는지를 지정하는 Property라고 이해해야 한다.

  • ChannelBandwidth : 주파수축에서 사용하는 채널의 대역폭
  • SampleRate : 시간축에서 1초 동안 사용하는 sample의 개수

두 값은 서로 관련되어 있지만 동일한 개념은 아니다.

두 값은 서로 관련되어 있지만 동일한 개념은 아니다.

MATLAB에서는 WLAN 채널 대역폭에 대응하는 Sampling Rate를 wlanSampleRate를 이용하여 구할 수 있다.

tgax.ChannelBandwidth = 'CBW80';
tgax.SampleRate = wlanSampleRate(tgax.ChannelBandwidth);

이렇게 하면 설정한 WLAN Channel Bandwidth에 대응하도록 TGax의 Sample Rate도 함께 설정할 수 있다.

이렇게 하면 설정한 WLAN Channel Bandwidth에 대응하도록 TGax의 Sample Rate도 함께 설정할 수 있다.

DelayProfile

'Model-A'
'Model-B'
'Model-C'
'Model-D'
'Model-E'
'Model-F'
'None'

로 나뉘는데, 이게 TGax의 핵심이다. 앞에서 멀티패스에 대해서 배우지 않았는가? 이 속성이 바로 어떤 multipath 구조를 갖는 h(t)를 만들 것이냐를 여기서 결정한다. 

Model RMS Delay Spread Max Delay Taps Clusters 대표 환경
A 0 ns 0 ns 1 1 Flat fading
B 15 ns 80 ns 9 2 Indoor residential
C 30 ns 200 ns 14 2 Residential / small office
D 50 ns 390 ns 18 3 Office
E 100 ns 730 ns 18 4 Large office / warehouse
F 150 ns 1050 ns 18 6 Large indoor / pseudo-outdoor

그래서 만약에 우리가 코드를

    %TGax Channel 생성
    tgax = wlanTGaxChannel;

    % Channel Model 설정
    tgax.DelayProfile = environment.delayProfile;

이렇게 짠다라고 한다는 의미는 RMS delay spread 15 ns를 갖는 indoor residential 성격의 multipath environment를 선택한 것과 다름없다.

CarrierFrequency

CarrierFrequency는 말 그대로 **통신에 사용하는 RF Carrier Frequency(반송파 주파수)**를 의미한다.

tgax.CarrierFrequency = 5.25e9;

wlanTGaxChannel의 기본값은 다음과 같다.

f_{c} = 5.25GHz

즉,

여기서 ChannelBandwidth와 CarrierFrequency를 혼동하면 안 된다.

를 의미한다.

tgax.CarrierFrequency = 5.25e9;
tgax.ChannelBandwidth = 'CBW80';

예를 들어,

CarrierFrequency는 어느 주파수 부근에서 통신하고 있는가를 나타내고, ChannelBandwidth는 그 중심 주파수를 기준으로 어느 정도의 주파수 대역폭을 사용하는가를 나타낸다.

이라고 설정했다고 해보자.

\lambda=\frac{c}{f_{c}}

대표적으로 전파의 파장(Wavelength)은

따라서 Carrier Frequency가 달라지면 파장이 달라지고, 이는 Doppler나 안테나의 공간적 특성, Path Loss 등의 채널 특성과도 연결된다.

로 결정된다.

EnvironmentalSpeed

EnvironmentalSpeed

즉 CarrierFrequency는 단순히 “5 GHz Wi-Fi를 사용한다”는 표시만을 위한 값이 아니라, TGax가 실제 전파 채널의 특성을 계산할 때 사용하는 중요한 물리적 파라미터이다.

tgax.EnvironmentalSpeed = 0.089;

EnvironmentalSpeed는 채널 환경에 존재하는 Scatterer의 이동 속도를 나타낸다.

EnvironmentalSpeed는 채널 환경에 존재하는 Scatterer의 이동 속도를 나타낸다.

기본값은 다음과 같다.

Scatterer가 움직이면 Multipath를 통해 들어오는 신호의 위상과 채널 상태도 시간에 따라 변할 수 있다.

h(\tau)

무선 환경에서는 사람이나 주변 물체 등 전파를 반사하거나 산란시키는 물체들이 움직일 수 있다. 이러한 물체들을 Scatterer라고 한다.

[ h(t,\tau) ]

즉 지금까지 Channel Impulse Response를 단순히

즉 지금까지 Channel Impulse Response를 단순히

여기서 (t)는 채널 자체가 시간에 따라 변화하는 것을 나타내고, T는 각 Multipath Component의 Delay를 나타낸다.

라고 표현했지만, 채널이 시간에 따라 변하는 것까지 고려하면

즉, 주변 환경이 움직이면서 채널이 시간에 따라 얼마나 변화하는지를 모델링하기 위한 속도 파라미터 라고 이해할 수 있다.

EnvironmentalSpeed는 이러한 시간에 따른 채널 변화와 Doppler 특성을 결정하는 데 사용된다.

tgax.TransmitReceiveDistance = 3;

EnvironmentalSpeed는 이러한 시간에 따른 채널 변화와 Doppler 특성을 결정하는 데 사용된다.

단위는 meter이다.

즉 Tx와 Rx 사이의 거리가 3 m라고 설정되어 있는 것이다.

단위는 meter이다.

기본값은 다음과 같다.

tgax.TransmitReceiveDistance = 10;

TransmitReceiveDistance는 송신기(Tx)와 수신기(Rx) 사이의 거리를 의미한다.

기본값은 다음과 같다.

일반적으로 송신기와 수신기 사이의 거리가 증가하면 수신되는 신호의 평균적인 세기는 감소한다.

즉 Tx와 Rx 사이의 거리가 3 m라고 설정되어 있는 것이다.

단위는 meter이다.

일반적으로 송신기와 수신기 사이의 거리가 증가하면 수신되는 신호의 평균적인 세기는 감소한다.

'None'
'Pathloss'
'Shadowing'
'Pathloss and shadowing'

wlanTGaxChannel에서는 이러한 Large-Scale Fading Effect를 실제 채널 출력에 적용할 것인지 설정할 수 있다.

tgax.LargeScaleFadingEffect = 'None';

이다.

바로 다음에서 살펴볼 LargeScaleFadingEffect이다.

앞에서 전파 채널에서 발생하는 현상을 공부하면서 Path Loss와 Shadowing을 살펴보았다.

tgax.LargeScaleFadingEffect = 'Pathloss';

LargeScaleFadingEffect

앞에서 전파 채널에서 발생하는 현상을 공부하면서 Path Loss와 Shadowing을 살펴보았다.

tgax.LargeScaleFadingEffect = ...
    'Pathloss and shadowing';

설정 가능한 값은 다음과 같다.

Path Loss와 Shadowing을 모두 적용하고 싶다면

Wireless Channel
       │
       ├── Large-Scale Effect
       │       │
       │       ├── Path Loss
       │       └── Shadowing
       │
       └── Small-Scale Effect
               │
               └── Multipath Fading

으로 설정할 수 있다.

이다.

어떠한 Large-Scale Fading Effect를 사용할 것인지 함께 확인해야 한다.

예를 들어 Path Loss만 적용하고 싶다면

따라서 wlanTGaxChannel을 사용할 때 단순히 Tx-Rx 거리를 설정했다고 해서 자동으로 모든 거리 기반 감쇄 효과가 적용된다고 생각하면 안 된다.

어떠한 Large-Scale Fading Effect를 사용할 것인지 함께 확인해야 한다.

따라서 실험의 재현성을 위해 Random Number Generator를 제어할 필요가 있다.

이를 위한 Property가 RandomStream과 Seed이다.

RandomStream / Seed

tgax.RandomStream = 'mt19937ar with seed';
tgax.Seed = 73;

동일한 Model-B를 사용한다고 해서 모든 시뮬레이션에서 완전히 동일한 Channel Realization이 생성되는 것은 아니다.

따라서 실험의 재현성을 위해 Random Number Generator를 제어할 필요가 있다.

이를 위한 Property가 RandomStream과 Seed이다.

댓글 1

내 생각을 남겨주세요

로그인 후 글 작성합니다

로그인하기
서

아 버그때문에 이전 글 자꾸 사라지고 줄이 두 줄씩 생기네

서민재 · 2026.09.01 16:49

🤍 0