SDR 어플리케이션을 위해 USRP 하드웨어와 함께 오픈 소스 도구 사용하기 교육과정 개요

이번 학습 경로는 소프트웨어 정의 라디오 (SDR) 무선 개념과 디지털 신호 처리 (DSP)에 익숙하고 USRP에서 오픈 소스 도구를 사용한 실습 교육을 원하는 엔지니어를 위해 설계되었습니다. 본 교육과정에서는 GNU Radio, C++, Python 등 세 가지 프로그래밍 도구 체인 옵션을 다룹니다.​ 본 학습 경로를 완료하면 학습자는 USRP 및 오픈 소스 도구로 기본 SDR 무선 어플리케이션을 빌드하는 데 필요한 도구를 사용하여 새로운 SDR 개발 시스템을 만들 수 있습니다.

사용 가능한 형식

 

이 교육과정에서 가상 교육을 사용할 수 없습니다.

 

이 교육과정에서 강의실 교육을 사용할 수 없습니다.

 

이 교육과정에서 비공개 클래스를 사용할 수 없습니다.

교육과정 목표

교육과정 세부사항

교육기간

수강 대상

수강에 필요한 준비사항

교육과정에서 사용하는 NI 제품

교육 자료

SDR 어플리케이션을 위해 USRP 하드웨어와 함께 오픈 소스 도구 사용하기 교육과정 구성

강의개요토픽

SDR 스트리밍 어플리케이션 설정 및 최적화

이 모듈을 완료하면 시스템에 UHD를 동기화, 빌드, 설치할 수 있는 필요한 기술과 확신을 갖추게 될 것입니다.​

  • USRP 하드웨어 드라이버 설치 옵션 탐색하기
  • SDR 시스템에서 오픈 소스 하드웨어 드라이버 설치하기
  • UHD 저장소 복제 및 소스에서 빌드하기

USB로 연결된 USRP와 통신하기

이 모듈을 완료하면 UHD를 사용하여 USB USRP를 식별하고 통신하는 방법을 파악할 수 있을 것입니다.​

  • 다양한 방법을 통해 USRP를 식별하는 방법 알아보기
  • USB USRP 설정하기
  • USB USRP와 통신하기

SDR 시스템에 GNU Radio 설치하기

이 모듈을 완료하면 시스템에 최신 GNU Radio 프레임워크를 동기화, 빌드 및 설치할 수 있는 필요한 기술과 확신을 갖추게 될 것입니다.​

  • GNU Radio 소개
  • 리소스를 찾는 방법 알아보기
  • GNU Radio 저장소 복제 및 소스에서 빌드하기

GNU Radio 설치 확인하기

이 모듈을 완료하면 GNU Radio 설치에 대한 기본 지식을 습득하고 간단한 FM 라디오 예제를 실행하는 방법을 파악할 수 있을 것입니다.​

  • GNU Radio 폴더 탐색하기
  • 간단한 FM 라디오 수신기 예제 실행하기

명령줄에서 GNU Radio 사용하기

이 모듈을 완료하면 Linux 명령줄 환경에서 UHD를 능숙하게 다룰 수 있는 기초를 갖추게 될 것입니다.​

  • GNU Radio 설치하기
  • 예제 프로그램 탐색하기
  • 명령줄에서 다이얼 톤 및 UHD FFT 프로그램 시연하기

GNU Radio 프레임워크의 주요 요소 소개

이 모듈을 완료하면 GNU Radio의 기본 개념을 이해하고 해당 환경의 주요 구성요소를 파악할 수 있게 될 것입니다.​

  • GNU Radio 내부 구조 알아보기
  • GNU Radio 환경 구성요소 파악하기

GNU Radio 환경 - 용어 및 중요한 블록

이 모듈을 완료하면 GNU Radio가 흐름 그래프를 통해 데이터를 전달하는 방식과 어플리케이션의 옵션 블록 설정 방법을 파악할 수 있을 것입니다.​

  • GNU Radio에서 옵션 블록 탐색하기
  • "samp_rate"와 하드웨어 자체 샘플링 속도의 차이 알아보기

스로틀 블록 및 데이터 타입

이 모듈을 완료하면 ​GNU Radio에서 흐름 그래프를 통한 데이터 전달 방식을 이해하고, 하드웨어 사용 여부에 따라 스로틀 블록을 언제, 어떻게 적용해야 하는지 파악할 수 있게 됩니다.​

  • GNU Radio 스로틀 블록 사용하기
  • GNU Radio에서 데이터 흐름을 이해하고 데이터 타입 표현 방법 알아보기
  • 첫 번째 흐름 그래프 작성하기

변조되지 않은 송신기

이 모듈을 완료하면 USRP를 송신기로 사용해 기본적인 흐름 그래프를 생성할 수 있을 것입니다.

  • 블록 찾기 및 연결하기
  • USRP로 UHD Sink를 사용한 미변조 기본 송신기 구축하기

Python 코드 생성하기

이 모듈을 완료하면 GNU Radio에서 Python 코드를 생성할 수 있을 것입니다.

  • GNU Radio에서 Python 코드 생성하기
  • 생성된 Python 코드 탐색하기

변조되지 않은 루프백

이 모듈을 완료하면 USRP로 무선 루프백을 수행할 수 있는 능력을 갖게 됩니다.

  • GNU Radio 내 UHD 소스 및 싱크
  • USRP를 이용한 무선 루프백

시각화 및 UI

이 모듈을 완료하면 GUI 사용자 컨트롤로 루프백에서 USRP를 제어하는 흐름 그래프를 생성할 수 있게 됩니다.

  • GNU Radio에서 사전 설치된 QT 블록을 사용해 다양한 신호 시각화 및 제어 요소 탐색하기
  • 신호 시각화 도구 (시간, 주파수, IQ, 워터폴) 시연하기

변조된 전송

이 모듈을 완료하면 예제 코드를 찾아 변조 신호 송신을 생성할 수 있게 됩니다.

  • 이전 모듈의 흐름 그래프에 QAM 디코더/수신기 추가하기
  • 변조 루프백 통신 시스템 생성하기

변조된 루프백

이 모듈을 완료하면 USRP와 GNU Radio로 루프백에서 간단한 단방향 통신 시스템을 생성할 수 있게 됩니다.

  • 단일 톤 송신기 생성하기
  • 기본 변조 신호 (QPSK 및 QAM) 전송하기

 

IP 찾기 및 사용하기

이 모듈을 완료하면 GNU Radio OOT (Out-Of-Tree) 모듈의 위치를 확인할 수 있게 됩니다.

  • 유용한 GNU Radio 외부 모듈 찾기
  • GIT HUB에서 Gr-RDS를 로컬 머신에 동기화하기

FM 송신기 구축하기

이 모듈을 OOT 모듈을 찾아 예제를 로드할 수 있게 됩니다.

  • GNU Radio OOT 모듈 구축 및 설치하기
  • 소스에서 Gr-RDS 모듈을 구축하고 SDR 시스템에 설치하기

FM 수신기 빌드하기

이 모듈을 완료하면 하드웨어 유무에 관계없이 Gr-RDS를 사용할 수 있게 됩니다.

  • Gr-RDS OOT 모듈을 사용하여 FM 수신기 빌드하기

사용자 정의 블록 만들기

이 모듈을 완료하면 Python을 사용하여 OOT 모듈을 생성할 수 있게 됩니다.

  • 자체 GNU Radio 외부 모듈 생성하기

C++로 USRP 프로그래밍하기

이 모듈을 완료하면 USRP에 적합한 C++ 예제를 찾을 수 있게 됩니다.

  • UHD C++ API 탐색하기
  • USRP용 C++ 프로그램 예제 실행하기

C++로 첫 USRP 프로그램 구축하기

이 모듈을 완료하면 USRP용 간단한 C++ 프로그램을 구축할 수 있습니다.

  • UHD 프로그램 생성 및 빌드하기

Python으로 USRP 프로그래밍하기

이 모듈을 완료하면 USRP에 맞는 Python 예제 프로그램을 찾을 수 있게 됩니다.

  • UHD/GNU Radio Python API 개요
  • GNU Radio에서 Python 코드 생성하기
  • 예제 Python 프로그램 실행하기

Python으로 첫 USRP 프로그램 구축하기

이 모듈을 완료하면 USRP용 간단한 Python 프로그램을 수정할 수 있게 됩니다.

  • 출발점
  • 방법론 비교하기

USRP에서 파라미터 이해 및 설정하기

이 모듈을 완료하면 USRP 시스템의 대역폭을 계산하고, 적절한 스트리밍 인터페이스와 게인 및 안테나 설정을 선택할 수 있게 됩니다. 명령줄을 통해 USRP 온보드 디바이스 정보를 조회하는 것도 가능해집니다.

  • USRP의 샘플링 속도 및 대역폭 이해하기
  • USRP에서 샘플링 속도 및 대역폭 설정하기
  • USRP의 데이터 전송 속도 이해하기
  • USRP에서 데이터 전송 속도 설정하기
  • USRP의 게인 설정 이해하기
  • USRP에서 게인 설정하기
  • USRP의 안테나 설정 이해하기
  • USRP에서 안테나 설정하기
  • 온보드 저장소를 통해 디바이스 정보에 접근하기

SDR 스트리밍 어플리케이션 설정 및 최적화

이 모듈을 완료하면 고성능 스트리밍 어플리케이션의 요구사항을 판단할 수 있는 능력을 갖게 됩니다.

  • 호스트 시스템 설정하기
  • 성능 튜닝 방법 알아보기

성능 튜닝을 고려해야 할 적절한 시기와 이유

이 모듈을 완료하면 성능 튜닝에 대한 보다 깊이 있는 이해를 갖추게 될 것입니다.

  • 병목 현상 확인하기
  • 병목 현상 위치 확인하기

성능 튜닝 유형 및 관련 문서와 팁

이 모듈을 완료하면 시스템 성능 튜닝에 필요한 리소스를 찾을 수 있게 됩니다. 이 모듈을 완료하면 시스템 성능 튜닝에 필요한 리소스를 찾을 수 있게 됩니다.

  • 운영 체제 (OS) 성능 튜닝 방법 알아보기
  • 물리적 인터페이스 모니터링 및 조정하기
  • Data Plane Development Kit (DPDK) 사용하기
  • 리소스 찾기

SDR 스트리밍 애플리케이션 디버깅하기

이 모듈을 완료하면 SDR 스트리밍 애플리케이션의 기본적인 문제를 디버깅하는 기술을 습득하고, 추가 도움이 필요할 때 참고할 자료의 위치를 파악할 수 있게 됩니다. 이 모듈을 완료하면 시스템 성능 튜닝에 필요한 리소스를 찾을 수 있게 됩니다.

  • 흐름 제어 오류
  • Wireshark 분리자 설치하기
  • Wireshark를 사용하여 USRP 트래픽 확인하기

벽돌이 된 USRP 복구하기

이 모듈을 완료하면 벽돌이 된 USRP를 복구하는 방법을 습득하게 됩니다. 이 모듈을 완료하면 시스템 성능 튜닝에 필요한 리소스를 찾을 수 있게 됩니다.

  • USRP의 벽돌 상태 진단 방법
  • 벽돌이 된 USRP 복구하기
  • 리소스 찾기

 

멤버십으로 업그레이드

1년 내에 NI 강사가 진행하는 교육과정을 3개 이상 이수할 계획이라면 교육 멤버십에 가입하여 무제한 인증 바우처를 받을 수 있으며 NI에서 제공하는 모든 공개 강의실 및 공개 버추얼 교육과정을 경제적으로 제한 없이 이용할 수 있습니다.