Gnuradio로
디지털 변조방식이 적용된 신호의 생성과 Symbol rate, raised cosine filter, 생성된 신호의 bandwidth에 대해 알아보고자 본 글을 썼다.
Gnuradio에서 사용한 블록은 다음과 같다.
Random Source는 Sample을 생성하는 모듈
Throttle 모듈은 Sample rate를 결정하는 모듈
모듈 구성하다가 막혔던 부분이 Ouput Type이다. Constellation Modulator block의 input type이 byte이므로, Throttle과 Random Source 의 output Type을 byte로 해야함.
또한 위 블록을 구성할 때 헷갈렸던 부분은 Constellation Modulator, Constellation object였다. 상세 설정사항은 다음 그림과 같다.
constellation modulator block에서 constellation 칸은 constellation object block의 Id를 쓰면 된다. constellation object의 constellation type에 따라 constellation modulator의 디지털 변조 방식이 변경된다.
Samples per symbol
: bits per symbol와 같은 말로 IQ로 표현되는 Symbol을 몇비트 or 몇샘플로 표시할지를 정한다.
ex) sample rate가 50k이고 Saples per symbol이 4이면, 위 시뮬레이션에서 Symbol rate는 12.5k symbol/sec 임.
Excess BW(=roll off factor) :Pulse Shaping filter의 alpha 값을 의미함. Constellation modulator block의 Pulse shaping filter는 RRC filter로 고정되어 있으며, RRC filter의 alpha 값을 Excess BW에서 정할 수 있다.
송신 측에서는 Constellation 방법에 따라 데이터를 Symbol로 만들고 이것을 I,Q로 만든 다음, RF carrier 주파수에 싣는다. I,Q 데이터는 펄스 형태인데 이것을 그대로 RF carrier 신호와 mixing하면, 0->1, 1->0 과 같이 신호의 크기가 급격하게 변하는 부분으로 인해, mixing하면서 출력신호에 원하지 않는 고주파가 생긴다.
RF carrier에 mixing하기 전에 I,Q 데이터를 pulse shaping하는 것이 필요하다. 즉 I,Q 데이터에 Root Raised Cosine, Raised Cosine 필터 같은 것을 곱하여 I,Q 신호의 파형을 변화시켜, 신호의 크기가 급격하게 변하는 부분이 생기지 않도록 한다.
I, Q에 pulse shaping이 적용되고, 그 다음 RF carrier 신호와 mixing이 된다.
다음은 pulse shaping filter 중 한개인 Raised cosine filter의 alpha 값에 따른 시간축과 주파수축 특성을 그린 것이다.
참고로 alpha가 0인 경우는 pulse shaping filter의 이상적인 filter인 sinc함수(또는 brick wall filter)를 의미함.
디지털 변조가 끝난 신호의 주파수 대역(채널대역폭)은 얼마를 차지 하고 있을까? 이 주파수 대역의 크기에 관여하는 것이 Symbol rate와 pulse shaping filter의 roll off factor이다.
Symbol rate(Rs)와 채널대역폭(Bw)의 관계는 위와 같다.
그래서 Gnuradio 프로젝트를 보면
Sampling rate는 50K이고 constellation modulator block의 Samples per symbol = 4 이다.
그렇다면 Symbol rate는 50k/4 = 12.5K symbol/sec 임.
constellation modulator의 Excess bandwidth(=Roll off factor)가 1이면
이 신호의 채널 대역폭은 12.5K * ( 1 + 1) = 25 K 임
Excess bandwidth(=Roll off factor)가 0.5이면
이 신호의 채널 대역폭은 12.5K * ( 1 + 0.5) = 18.75 K 임
그리고 Roll off factor가 1인 경우에 비해 출력 파형에 뾰족뾰족한 부분이 많이 없는 것을 확인할 수 있다.
Excess bandwidth(=Roll off factor)가 0.1이면
이 신호의 채널 대역폭은 12.5K * ( 1 + 0.1) = 13.75 K 임
출력 파형에 뾰족뾰족한 부분이 많이 사라지는 것을 을 확인할 수 있다.
지금까지 gnuradio를 이용하여 디지털 변조, pulse shaping을 하는 것을 다루어 보았다.
다음번에는 이렇게 생성된 신호를 수신하여, IQ constellation그림을 그려보도록 하겠다.
'Gnuradio' 카테고리의 다른 글
gnuradio 시뮬레이션 - fft example 1 (0) | 2023.02.23 |
---|---|
carrier phase synchronization (0) | 2023.01.04 |
gnuradio, plutosdr -[2] FFT 개수에 따른 Gain, ADC 성능 (0) | 2021.11.23 |
gnuradio [1-2] 장비의 연결 확인 (0) | 2021.11.23 |
gnuradio [1-1] - 에러 ModuleNotFoundError: No module named 'iio.iio_swig' error (2) | 2021.11.18 |