मैं वर्तमान में ध्वनिक FSK मॉडुलन और डिमॉड्यूलेशन को लागू कर रहा हूं। मैं सिग्नल प्रोसेसिंग करने वाला लड़का नहीं हूं ...
चूंकि आप कहते हैं कि आपने फ़िल्टर का मिलान किया है, और आप गैर-सुसंगत पहचान का उल्लेख करते हैं, मुझे लगता है कि आप पहले से ही एक डिजिटल संचार व्यक्ति के बहुत अधिक हैं - एक डीएसपी व्यक्ति होने का चरण बहुत छोटा है :)
पूरी तरह से समन्वित एसडीआर दृष्टिकोण
2 चप्रतीक, अधिकतम
मैंने अपने आप को एक त्वरित वास्तविक-मूल्य वाला बैंडपास सिग्नल FSK डेमोड बनाया (मुझे लगता है कि अगर मैंने फिर से ऐसा किया, तो मैंने दो बैंडपास फिल्टर को एक संयुक्त आवृत्ति अनुवाद और एक कम पास फिल्टर के साथ बदल दिया होगा, जिससे मुझे जटिल बेसबैंड मिल जाएगा, या एक पॉलीप्स फिल्टरबैंक फेंक दिया जाएगा समस्या पर, लेकिन GNU रेडियो साथी की मदद से GNU रेडियो में जो कुछ भी है) (प्रवाह ग्राफ फ़ाइल यहाँ ):
बिंदु यह है कि हम संभवत: विभाजन के समय और थ्रेशोल्ड ब्लॉक के बीच सिंक्रनाइज़ेशन का प्रतीक चाहते हैं। हम बाद में कर सकते हैं - शास्त्रीय, "माइक्रोकंट्रोलर और डिजिटल हार्डवेयर डिज़ाइन" दृष्टिकोण वास्तव में मुलर और म्यूलर घड़ी सिंक होगा और यह वहीं भी काम करेगा - लेकिन चलो ढलान की जानकारी को बर्बाद न करें।
तो, मैं यहाँ एक पॉलीफ़ेज़ क्लॉक सिंक जोड़ूँगा; मुझे यह स्वीकार करना चाहिए कि मैं टॉम से बेहतर इसे तैयार नहीं कर सकता, एक शिष्य, जो हैरिस का शिष्य था, ने अनाम जीएनयू रेडियो ब्लॉक के दस्तावेज में किया था :
पॉलीफ़ेज़ फ़िल्टरबैंक का उपयोग करके टाइमिंग सिंक्रोनाइज़र।
यह ब्लॉक फ़िल्टर किए गए सिग्नल के व्युत्पन्न को कम करके PAM संकेतों के लिए समय सिंक्रनाइज़ेशन करता है, जो बदले में SNR को अधिकतम करता है और ISI को कम करता है।
sincsinc(0)=1,sinc′(0)=0
di[n]ixi[n]
e[n]=R{xi[n]}⋅R{di[n]}+I{xi[n]}⋅I{di[n]}2.0 .
xi[n]xi[n]xi[n]केवल संकेत के बजाय कम SNR वाले संकेतों के लिए विशेष रूप से अच्छा है।
e[n]dkdratedratedratedkdratedkdαdβdαdβgain24
यह एहसास ऑडियो आवृत्ति है
तो, इस ब्लॉक को ठीक से पैरामीटर करना (और शायद कम करना bpf_decim
और lpf_decim
सिंक्रोनाइज़र को चरणों को स्थानांतरित करने के लिए अधिक हेडरूम देना) आप एक बहुत ही स्थिर प्रतीक टाइमिंग रिकवरी का निर्माण कर सकते हैं, जो आपके आवेदन के लिए पूरी तरह से ओवरकिल होगा।
जब से आप दोनों छोरों पर साउंड कार्ड के साथ सैंपलिंग कर रहे हैं, और जब से मुझे लगता है कि आपको डॉपलर के साथ सौदा नहीं करना है, तो प्रतीक दर का वाहक आवृत्तियों के साथ एक निश्चित संबंध है (उदाहरण के लिए संचारण पक्ष में एक उच्च वाहक है 8 साउंड कार्ड नमूनों की अवधि, और एक प्रतीक हमेशा ले जाता है मान लीजिए कि 128 नमूने हैं, इसलिए इसका एक निश्चित अनुपात है), आप एक छोटा कट ले सकते हैं:
darctandt[n]
पैकेट सिंक के बारे में
ठीक है, जब से आपको एक काम कर रहे डिमॉड्यूलेटर मिला है, जो संभवत: सिंक से बहुत अधिक चलेगा, जब कोई सिग्नल मौजूद नहीं है, तो बस अपने पैकेट को खोजने के लिए एक निश्चित ज्ञात डेटा अनुक्रम का उपयोग करें।