3.10๋ ๊ฐ์ ๊ฐ๋ฐ ๋์ ๋ฌด๋ฃ ๋์งํธ ์ ํธ ์ฒ๋ฆฌ ํ๋ซํผ์ธ GNU Radio 3์ ์๋ก์ด ๋ฆด๋ฆฌ์ค๊ฐ ํ์ํ์ต๋๋ค. ํ๋ซํผ์๋ ์ํํธ์จ์ด์ ์ง์ ๋ ์์์ ๋ฌด์ ์์คํ , ๋ณ์กฐ ๋ฐฉ์, ์์ ๋ฐ ์ ์ก ์ ํธ ํ์์ ์์ฑํ ์ ์๋ ์ผ๋ จ์ ํ๋ก๊ทธ๋จ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ ๊ฐ์ฅ ๊ฐ๋จํ ํ๋์จ์ด ์ฅ์น๋ฅผ ์ฌ์ฉํ์ฌ ์ ํธ๋ฅผ ์บก์ฒํ๊ณ ์์ฑํฉ๋๋ค. ํ๋ก์ ํธ๋ GPLvXNUMX ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. GNU Radio์ ๋๋ถ๋ถ ๊ตฌ์ฑ ์์์ ๋ํ ์ฝ๋๋ Python์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ์ฑ๋ฅ ๋ฐ ๋๊ธฐ ์๊ฐ์ ์ค์ํ ๋ถ๋ถ์ C++๋ก ์์ฑ๋์ด ์ค์๊ฐ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฃผํ์ ๋์ญ ๋ฐ ์ ํธ ๋ณ์กฐ ์ ํ์ ์ฝ๋งค์ด์ง ์๋ ๋ฒ์ฉ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฅ ํธ๋์๋ฒ์ ๊ฒฐํฉํ์ฌ ํ๋ซํผ์ ์ฌ์ฉํ์ฌ GSM ๋คํธ์ํฌ์ฉ ๊ธฐ์ง๊ตญ, RFID ํ๊ทธ ์๊ฒฉ ํ๋ ์ฅ์น(์ ์ ID ๋ฐ ํจ์ค, ์ค๋งํธ ์นด๋)์ ๊ฐ์ ์ฅ์น๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์นด๋), GPS ์์ ๊ธฐ, WiFi, FM ๋ผ๋์ค ์์ ๊ธฐ ๋ฐ ์ก์ ๊ธฐ, TV ๋์ฝ๋, ํจ์๋ธ ๋ ์ด๋, ์คํํธ๋ผ ๋ถ์๊ธฐ ๋ฑ USRP ์ธ์๋ ํจํค์ง๋ ์ฌ์ด๋ ์นด๋, TV ํ๋, BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP์ฉ ๋๋ผ์ด๋ฒ์ ๊ฐ์ ์ ํธ ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ์ ์ํด ๋ค๋ฅธ ํ๋์จ์ด ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. S ๋๋ฐ์ด์ค ์ด์ฉ ๊ฐ๋ฅ -Mini.
์ด ๊ตฌ์กฐ์๋ ํํฐ, ์ฑ๋ ์ฝ๋ฑ, ๋๊ธฐํ ๋ชจ๋, ๋ณต์กฐ๊ธฐ, ์ดํ๋ผ์ด์ , ์์ฑ ์ฝ๋ฑ, ๋์ฝ๋ ๋ฐ ๋ผ๋์ค ์์คํ ์ ๋ง๋๋ ๋ฐ ํ์ํ ๊ธฐํ ์์ ๋ชจ์๋ ํฌํจ๋ฉ๋๋ค. ์ด๋ฌํ ์์๋ ์์ฑ๋ ์์คํ ์ ์กฐ๋ฆฝํ๊ธฐ ์ํ ๋น๋ฉ ๋ธ๋ก์ผ๋ก ์ฌ์ฉ๋ ์ ์์ผ๋ฉฐ, ๋ธ๋ก ๊ฐ์ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฒฐ์ ํ๋ ๊ธฐ๋ฅ๊ณผ ๊ฒฐํฉ๋์ด ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์์ด๋ ๋ฌด์ ์์คํ ์ ์ค๊ณํ ์ ์์ต๋๋ค.
์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ :
- GNU Radio ๋ธ๋ก ๊ฐ์ ์ ์ก๋๋ ๋ฐ์ดํฐ์ ์ฌ์ฉ๋๋ PDU(Protocol Data Unit) ์ ํ์ ๊ฐ์ฒด๋ฅผ ์กฐ์ํ๊ธฐ ์ํ ๋๊ตฌ๋ฅผ ์ ๋ฌํ๋ ์๋ก์ด ๋ชจ๋ gr-pdu๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. gr-blocks ๋ชจ๋์์ ๋ชจ๋ PDU ๋ธ๋ก์ด gr-network ๋ฐ gr-pdu ๋ชจ๋๋ก ์ด๋๋์์ผ๋ฉฐ, ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด gr-blocks ๋์ ๋ ์ด์ด๊ฐ ๋จ์์ต๋๋ค. ๋ฒกํฐ PDU ์ ํ์ ์ด์ gr::types ๋ค์์คํ์ด์ค์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, PDU ์กฐ์์ ์ํ ๊ธฐ๋ฅ์ ์ด์ gr::pdu ๋ค์์คํ์ด์ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- PlutoSDR, AD-FMCOMMS2-EBZ, AD-FMCOMMS3๊ณผ ๊ฐ์ IIO(์ฐ์ ์ฉ I/O) ํ์ ์์คํ ์ ๊ธฐ๋ฐ์ผ๋ก GNU Radio์ ์ฐ์ ์ฉ ์ฅ์น ๊ฐ์ ๋ฐ์ดํฐ ๊ตํ์ ๊ตฌ์ฑํ๊ธฐ ์ํ ์ ๋ ฅ/์ถ๋ ฅ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๋ ์๋ก์ด ๋ชจ๋ gr-iio๋ฅผ ์ถ๊ฐํ์ต๋๋ค. -EBZ, AD -FMCOMMS4-EBZ, ARRADIO ๋ฐ AD-FMCOMMS5-EBZ.
- GNU Radio ๋ธ๋ก๊ณผ GPU, FPGA ๋ฐ DSP ๊ธฐ๋ฐ ํ๋์จ์ด ๊ฐ์๊ธฐ ๊ฐ์ ๋ฐ์ดํฐ ์ ์ก์ ๋จ์ํํ๋ Custom Buffer ํด๋์ค์ ๋ํ ์คํ์ ์ง์์ด ์ ์๋์์ต๋๋ค. custom_buffer๋ฅผ ์ฌ์ฉํ๋ฉด GPU ์ธก์์ ๊ฐ์์ ํ์ฑํํ๊ธฐ ์ํด ํน์ ๋ธ๋ก์ ์์ฑํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ GNU Radio ๋ง ๋ฒํผ์์ GPU ๋ฉ๋ชจ๋ฆฌ๋ก ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ด๋ํ๊ณ CUDA ์ปค๋์ ์คํํ๊ณ ๊ฒฐ๊ณผ์ ํจ๊ป ๋ฐ์ดํฐ๋ฅผ GNU Radio ๋ฒํผ์ ๋ฐํํ ์ ์์ต๋๋ค.
- ๋ก๊น ์ธํ๋ผ๋ ๋ก๊ทธ ์์ ์ ์ ์ฉ์ฑ์ ๊ฐ์ ํ๊ณ iostream ๋ฐ cstdio์ ๋ํ ํธ์ถ์ ์ ๊ฑฐํ๊ณ ๋ฌธ์์ด ํ์ํ๋ฅผ ์ํ libfmt ํํ์์ ๋ํ ์ง์์ ์ ๊ณตํ๊ณ ํ๋ก๊ทธ๋จ ์ธํฐํ์ด์ค๋ฅผ ํ๋ํํ spdlog ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ก ์ ํ๋์์ต๋๋ค. ์ด์ ์ ์ฌ์ฉ๋ Log4CPP ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ข ์์ฑ์ผ๋ก ์ ๊ฑฐ๋์์ต๋๋ค.
- C++17 ํ์ค ๊ฐ๋ฐ์ ์ฌ์ฉํ๊ธฐ ์ํ ์ ํ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค. Boost::filesystem ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ std::filesystem์ผ๋ก ๋์ฒด๋์์ต๋๋ค.
- ์ปดํ์ผ๋ฌ(GCC 9.3, Clang 11, MSVC 1916) ๋ฐ ์ข ์์ฑ(Python 3.6.5, numpy 1.17.4, VOLK 2.4.1, CMake 3.16.3, Boost 1.69, Mako 1.1.0, PyBind11 2.4.3, pygccxml 2.0.0).
- RFNoC ๋ธ๋ก์ ๋ํ Python ๋ฐ์ธ๋ฉ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- gr-qtgui ๊ทธ๋ํฝ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๋ธ๋ก์ Qt 6.2์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. GRC(GNU Radio Companion) GUI์ ๊ณ์ธต์ ๋ธ๋ก์ ๋ํ "--output" ์ต์ ์ ์ถ๊ฐํ์ต๋๋ค.
์ถ์ฒ : opennet.ru