GNU Radio 3.10.0 ์ถœ์‹œ

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

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€