[HAM] 신호처리 '자기주도' 학습 도구, 울프람 언어(Wolfram Language)
얼마전에 '과학으로 증명된 공부 잘하는 법[링크]'이라는 글을 읽었었다. 이 글에 따르면 '적극적으로 학습에 참여'하기 라고 한다. 흔히 말하는 '자기주도 학습'과 통한다고 하겠다. '공부잘하는 법'을 알고 싶다면 방법은 간단하다. 자기가 무슨 말을 지껄이는지 알고 있으면 된다. 이렇게 지껄일 수 있는 말을 가진 사람을 우리는 "똑똑한" 사람이라고 하지 않던가.
아마추어 무선이라는 취미의 백미(?)는 역시 지껄이는 맛(!)이다. 일전에 어느 아마추어 무선사와 교신중에 SDR(Software Defined Radio) 이야기가 나왔는데 수학식으로 '반송파 억압 단측파' (세상에 뭔지도 모를 단어를 늘어놨다!), 소위 SSB 신호를 어떻게 만드는지 궁금해 하셨다. '입력신호와 (-π/2) 만큼 지연시킨 입력신호를 각각 직교하는 두 사인파와 곱하고 더하면 단측파대(Single Side Band) 신호가 됩니다'를 그림없이 말로 설명하려니 무려 수시간이 걸렸다. 그분이 무전기의 구성에 대해 어느정도 이해가 있기에 고전적인 헤테로다인 무전기와 최신 SDR 무전기를 비교 설명하기가 그나마 수월 했다. 기왕 이리된 것 글로 써봤다[링크]. 굳이 수식을 증명하기 보다 직관적으로 이해될 수 있도록 그림을 넣기로 했다.
사실 신호처리에 사용되는 교과서의 그림(시간 영역에서 파형, 주파수 영역에서 파워 스펙트럼 따위의)은 넘쳐난다. 하지만 직관적 설명을 위해 딱 맞는 그림을 찾기 어려웠다. '교과서'라는 형식에 얽메이다 보면 이미 백여년전에 증명된 수학을 다시 증명하느라 본론은 시작도 하기전에 독자를 정떨어지게 한다는 생각이 들었다. 사실 '직관성'을 따르려고 무리하게 가지를 쳐야 하는 탓에 글로 써놓으면 독자로 부터 틀렸다는 핀잔을 듣기도 하니 조심스럽긴 할 것이다.
나는 글을 쓰면서 필자의 평판 따위는 내려 놓고 독자를 포기하지 말자는 주의다. 어짜피 평생공부(취미)지 학술논문을 쓰자는게 아니지 않은가. 물론 어느 학습자에게 작은 도움이 되길 바라는 마음도 조금은 있기에 오류를 범하지 않으려고 노력한다. 차와 포를 떼놓고 단도직입하려는 나의 방식 대로 뭔가 설명 하려니 적절한 그림들을 찾기 어려웠다. 비록 개인 블로그일 지언정 교과서 그림을 과감히 버리고(?) 누군가에게 내보이려니 뭔가 '근거있는' 그림을 직접 생성하기로 했다. 하지만 그럴듯한 그림을 그리기가 어디 쉬워야 말이지.
수학으로 반송파 억압 단측파대 SSB 신호를 만드는 방법 [링크]
종종 이용하던 울프람 알파 Wolfram|Alpha 가 떠올랐다. 아쉽게도 단편적인 한줄짜리 문장만을 처리해 주는 사용자 인테페이스로는 여러 단계의 신호처리 절차를 기술하기 번거롭다. 마침 수학언어 엔진을 무료로 공개 했다고 해서 설치했다. 파이썬 Python 언어 도구인 주피터 Jupyter에 울프람 언어 Wolfram Language 를 연결해 놨다고 한다. 수학을 응용한 실험에 아주 그만이다. 수학 심화 학습, 코딩 그리고 취미의 원리를 눈으로 확인하는 일석삼조가 아닐 수 없다. 읽고 소화한 대로 다시 생산해 내는 방식의 학습이 '적극적 학습' 또는 '자기주도 학습'이 아닐까?
-------------------------------------------
Wolfram Language & Python Jupyter 설치
1. Create Wolfram Account
2. Download & Install Wolfram Engine via Download Manager
"Free Wolfram Engine for Developer"
https://www.wolfram.com/engine/
3. Download & Install Python
* Add '...\Python' and '...\Python\Scripts' System Env. Var. PATH
4. Install Jupyter on PowelShell command prompt
PS> pip install jupyter
5. Install Wolfram Language for Jupyter
Download zipped 'CODE' at
https://github.com/WolframResearch/WolframLanguageForJupyter
6. Run script at Unzipped folder
PS> .\configure-jupyter.wls add
7. Check installed module
PS> jupyter kernelspec list
Available kernels:
wolframlanguage13.2
python3
8. Run jupyter notebook
PS> jupyter notebook
9. Additionally Install JupyterLab,
PS> pip install jupyterlab
PS> jupyter lab
댓글 없음:
댓글 쓰기