Python का उपयोग करके SDR और DSP गाइड (PySDR)
(pysdr.org)- Software-Defined Radio (SDR) और Digital Signal Processing (DSP) की अवधारणाओं को Python के साथ प्रायोगिक रूप से सीखने के लिए तैयार की गई एक ऑनलाइन पाठ्यपुस्तक
- हार्डवेयर की जगह सॉफ़्टवेयर से RF सिग्नलों को प्रोसेस करने वाले SDR के सिद्धांत, और NumPy·Matplotlib का उपयोग करके सिग्नल visualization व analysis के उदाहरण शामिल
- गणितीय सूत्रों की तुलना में animations और visual materials के माध्यम से अवधारणाओं को सहज रूप से समझाने के लिए डिज़ाइन किया गया
- Electrical Engineering पृष्ठभूमि न होने पर भी programming experience वाले learners के लिए आसानी से सुलभ
- ओपन सोर्स के रूप में संचालित, और GitHub contributions·Patreon support के ज़रिए पाठ्यसामग्री के सुधार में भाग लिया जा सकता है
1. उद्देश्य और लक्षित पाठक
- SDR (Software-Defined Radio) पारंपरिक हार्डवेयर-आधारित RF processing को सॉफ़्टवेयर से करने की अवधारणा है
- इसे सामान्य कंप्यूटर (CPU), FPGA, GPU आदि पर चलाया जा सकता है, और real-time या रिकॉर्ड किए गए सिग्नलों की offline processing का समर्थन करता है
- यह ऐसे डिवाइस के रूप में भी मौजूद है जिनमें antenna जोड़कर RF signals को receive और transmit किया जा सकता है
- DSP (Digital Signal Processing) डिजिटल तरीके से सिग्नल प्रोसेस करने की तकनीक है, और इस पाठ्यपुस्तक में इसे मुख्य रूप से RF signals के संदर्भ में समझाया गया है
- यह पाठ्यपुस्तक निम्न प्रकार के learners को ध्यान में रखकर बनाई गई है
- जो SDR का उपयोग करके experimental projects करना चाहते हैं
- जो Python में सहज हैं, लेकिन DSP·wireless communications में शुरुआती हैं
- जो formulas की तुलना में visual materials को अधिक पसंद करते हैं
- जो संक्षिप्त व्याख्या पसंद करते हैं और लंबी पाठ्यपुस्तक के बजाय hands-on learning चाहते हैं
- Electrical Engineering पृष्ठभूमि न होने पर भी programming experience वाले Computer Science students आदि के लिए उपयुक्त
- जटिल गणित की बजाय images·animations के माध्यम से Fourier series जैसी मुख्य अवधारणाओं की व्याख्या की गई है
- इसी कारण PySDR मुद्रित पुस्तक के रूप में नहीं बेची जाती
2. पाठ्यपुस्तक की संरचना और सीखने का दृष्टिकोण
- DSP के बुनियादी सिद्धांतों को Electrical Engineering के “Signals and Systems” के एक semester के पाठ्यक्रम से कुछ अध्यायों में संक्षिप्त किया गया है
- इसके बाद SDR से जुड़े विषयों तक विस्तार किया गया है, और DSP व wireless communications की अवधारणाएँ पूरी पाठ्यपुस्तक में बार-बार आती हैं
- Python code examples में NumPy और Matplotlib का उपयोग किया गया है
- NumPy arrays और mathematical operations के लिए मानक लाइब्रेरी है, और इसके अधिकांश operations C/C++ में optimized हैं
- Matplotlib signal·array·complex number visualization के लिए plotting tool है
- Python, C++ से धीमी होने पर भी, इसकी internal operations optimized होने के कारण hands-on learning के लिए पर्याप्त performance देती है
- MATLAB, Ruby, Perl का अनुभव रखने वाले लोग भी Python syntax से परिचित होने पर इसे आसानी से उपयोग कर सकते हैं
3. योगदान कैसे करें
- PySDR से सीखी गई बातों को students·colleagues·learners के साथ साझा करने के लिए प्रोत्साहित किया जाता है
- Patreon पर support के ज़रिए अपना नाम पाठ्यपुस्तक पेज के नीचे दिखाया जा सकता है
- पाठ्यपुस्तक पढ़ने के बाद questions·opinions·correction suggestions ईमेल से भेजने पर स्वतः contributor के रूप में मान्यता दी जाती है
- GitHub repository के माध्यम से सीधे correction suggestions (Pull Request) भेजे जा सकते हैं
- Git का अनुभव न होने पर भी ईमेल से सुझाव भेजे जा सकते हैं
4. आभार
- पाठ्यपुस्तक पर feedback देने वाले पाठकों और translation contributors को धन्यवाद दिया गया है
- French, Dutch, Ukrainian, Chinese, Spanish अनुवाद में योगदान करने वालों का उल्लेख है
- Patreon supporters की सूची और Analog Devices, Inc. जैसे संस्थागत sponsors भी शामिल हैं
- PySDR को CC BY-NC-SA 4.0 license के तहत वितरित किया जाता है
1 टिप्पणियां
Hacker News की राय
कुल मिलाकर यह अच्छा मटेरियल है, लेकिन कुछ जगहों पर विवरण थोड़ा अस्पष्ट तरीके से छोड़ दिया गया लगता है।
उदाहरण के लिए, जब preamble की लंबाई और maximum frequency offset पता हो, तब loop parameters कैसे चुने जाएँ ताकि lock स्थिर रूप से लग सके, इसकी कोई व्याख्या नहीं है।
अगर इस दिशा में मार्गदर्शन दिया गया होता तो यह और भी बेहतर होता।
अगर यह भी दिखाया जाता कि sample rate और duration के अनुसार यह कैसे बदलता है, तो और अच्छा होता।
हाँ, यह मानता हूँ कि linear systems की कक्षा में दिखने वाली परफेक्ट sinusoid series भी वास्तविक नहीं होती।
अब लगभग हर किसी के पास graduate-level personal TA जैसा कुछ है, इसलिए असली बात है सही सवाल पूछना सीखना।
खासकर उन नए team members के लिए यह बहुत अच्छा introduction है जो code में सहज हैं लेकिन DSP में कमज़ोर हैं।
ऊपर से, किताब में जिन hardware का ज़िक्र है वे सस्ते हैं, इसलिए इसकी accessibility भी अच्छी है। मैं अभी Nooelec का RTL-SDR इस्तेमाल कर रहा हूँ, और basic learning के लिए लगभग 50 euro काफ़ी हैं।
frequency band के अनुसार इसमें noise या spurious signals हो सकते हैं, लेकिन अनुभवी लोग आम तौर पर इन्हें बिना दिक्कत संभाल लेते हैं।
जैसे-जैसे आप radio की दुनिया को और समझते हैं, RTL-SDR नई संभावनाएँ खोलता है, और बाद में आप खुद I/Q samples को process करने वाला software भी लिखने लगेंगे।
मुझे radio सुनना याद आने लगा, इसलिए मैंने फिर से शुरू करने का तय किया और आखिरकार Tecsun PL-880 ऑर्डर कर दिया।
अगर computer पर ही सुनना हो तो streaming ही काफ़ी है, लेकिन अगर बाद में लगे कि Tecsun पर्याप्त नहीं है, तो SDR की ओर और गहराई से जाऊँगा।
मैं कई radios जमा करके रखने या बड़ा desktop equipment रखने का इच्छुक नहीं हूँ।