-
소프트웨어 정의 라디오(SDR) 와 디지털 신호 처리(DSP) 개념을 파이썬으로 실습 중심 학습이 가능하도록 구성한 온라인 교재
- 하드웨어 대신 소프트웨어로 RF 신호를 처리하는 SDR의 원리와, NumPy·Matplotlib을 이용한 신호 시각화 및 분석 예제를 포함
- 수학적 공식보다 애니메이션과 시각 자료를 통해 개념을 직관적으로 이해하도록 설계
- 전기공학 전공자가 아니더라도 프로그래밍 경험이 있는 학습자가 쉽게 접근할 수 있도록 구성
- 오픈소스로 운영되며, GitHub 기여·Patreon 후원을 통해 교재 개선에 참여 가능
1. 목적과 대상 독자
-
SDR(Software-Defined Radio) 는 기존 하드웨어 기반 RF 처리를 소프트웨어로 수행하는 개념
- 일반 컴퓨터(CPU), FPGA, GPU 등에서 실행 가능하며, 실시간 또는 기록된 신호의 오프라인 처리 지원
- 안테나를 연결해 RF 신호를 수신·송신할 수 있는 장치 형태로도 존재
-
DSP(Digital Signal Processing) 는 디지털 방식으로 신호를 처리하는 기술로, 본 교재에서는 RF 신호 중심으로 다룸
- 교재는 다음과 같은 학습자를 대상으로 함
- SDR을 활용해 실험적 프로젝트를 수행하고자 하는 사람
- 파이썬에 익숙하지만 DSP·무선통신에는 초보인 사람
- 수식보다 시각 자료를 선호하는 학습자
- 간결한 설명을 선호하며, 긴 교재 대신 실습 중심 학습을 원하는 사람
- 전기공학 전공자가 아니더라도 프로그래밍 경험이 있는 컴퓨터공학 학생 등에게 적합
- 복잡한 수학 대신 이미지·애니메이션을 통해 Fourier 시리즈 등 핵심 개념을 설명
- 이러한 이유로 PySDR은 인쇄본 형태로 판매되지 않음
2. 교재 구성과 학습 접근
- DSP의 기초 이론을 전기공학의 “Signals and Systems” 한 학기 분량에서 몇 개 장으로 압축
- 이후 SDR 관련 주제로 확장하며, DSP와 무선통신 개념이 교재 전반에 걸쳐 반복 등장
-
Python 코드 예제는 NumPy와 Matplotlib을 사용
- NumPy는 배열 및 수학 연산용 표준 라이브러리이며, 대부분의 연산이 C/C++로 최적화되어 있음
- Matplotlib은 신호·배열·복소수 시각화를 위한 플로팅 도구
- Python이 C++보다 느리더라도, 내부 연산이 최적화되어 있어 실습에 충분한 성능 제공
- MATLAB, Ruby, Perl 경험자도 Python 문법에 익숙해지면 쉽게 활용 가능
3. 기여 방법
- PySDR을 통해 배운 내용을 학생·동료·학습자에게 공유 권장
-
Patreon 후원을 통해 이름을 교재 페이지 하단에 표시 가능
- 교재를 읽고 질문·의견·수정 제안을 이메일로 보내면 자동으로 기여자로 인정
-
GitHub 저장소를 통해 직접 수정 제안(Pull Request) 가능
- Git 사용이 익숙하지 않아도 이메일로 제안 가능
4. 감사의 말
- 교재에 피드백을 제공한 독자 및 번역 기여자에게 감사 표시
- 프랑스어, 네덜란드어, 우크라이나어, 중국어, 스페인어 번역 참여자 명시
- Patreon 후원자 명단과 Analog Devices, Inc. 등 기관 후원자도 포함
- PySDR은 CC BY-NC-SA 4.0 라이선스로 배포됨