अल्ट्रासोनिक संकेत का पता लगाने


9

मैंने एक काफी सरल TDOA प्रणाली बनाई है जो दो स्पीकरों से जियोलॉकेट (स्पीकरों के सापेक्ष) मोबाइल फोन में उत्सर्जित अल्ट्रासोनिक संकेतों का उपयोग करती है। दो संकेतों को आवृत्ति द्वारा अलग किया जाता है।

सिस्टम में निम्नलिखित बाधाएँ हैं:

  • संकेत अश्राव्य होने चाहिए। उस छोर तक हम 17 kHz से अधिक आवृत्तियों पर चिपकते हैं। कुछ लोग अभी भी ऐसा सुन सकते हैं, लेकिन अधिकांश नहीं कर सकते।
  • नमूना दर 44.1 kHz है।
  • संगीत आमतौर पर बजता रहेगा, इसलिए कम आवृत्तियों पर बहुत हस्तक्षेप होता है।
  • ऊपरी आवृत्तियों पर स्पीकर और माइक्रोफोन कितनी अच्छी तरह काम करते हैं, इस पर हमारा नियंत्रण नहीं है, इसलिए हमने अपनी ऊपरी सीमा लगभग 20 kHz पर रखी है।

विशेष संकेत जो मैं उपयोग कर रहा हूं वह है BPSK उनके अच्छे ऑटोक्रॉलेशन गुणों के कारण 13-बिट बार्कर कोड को संशोधित करता है। आटोक्लेररेशन निम्नलिखित की तरह दिखता है- संकेत आटोक्लेररेशन

जब मैं वास्तविक जीवन में प्राप्त संकेत के खिलाफ अपेक्षित संकेत को पार करता हूं, हालांकि, मुझे जो मिलता है वह आम तौर पर इस तरह दिखता है- विशिष्ट क्रॉस-सहसंबंध

नीला स्पीकर 1 सिग्नल के साथ क्रॉस सह-संबंध है, और लाल स्पीकर 2 सिग्नल के साथ क्रॉस-सह-संबंध है। ऐसा प्रतीत होता है कि गूँज महत्वपूर्ण है और दुर्भाग्य से, अक्सर माइक्रोफोन के दिशात्मक लाभ के कारण प्रत्यक्ष पथ संकेत से अधिक मजबूत होती है।

मैंने केवल संकेत के शुरुआती रूप का पता लगाने की कोशिश की क्योंकि यह प्रत्यक्ष मार्ग होने की संभावना है। यह दृष्टिकोण उस सीमा के प्रति बहुत संवेदनशील है जिसका उपयोग मैं यह तय करने के लिए करता हूं कि सिग्नल मौजूद है और इसलिए यह बिल्कुल भी मजबूत नहीं है।

मैं सिग्नल के "सही" आगमन समय को निर्धारित करने के लिए एक मजबूत दृष्टिकोण चाहूंगा- यानी सीधे पथ संकेत के आगमन का समय। शायद चैनल के आकलन और विघटन के कुछ रूप? यदि हां, तो वह कैसे काम करेगा?

डेटा / कोड: मैं यह स्पष्ट करना चाहता हूं कि मैं किसी को भी डेटा का विश्लेषण करने या अपने कोड का निरीक्षण करने की उम्मीद नहीं कर रहा हूं। यदि आप ऐसा करना चाहते हैं तो मैंने उन्हें उपलब्ध कराया है। मुझे ज्यादातर विचारों में दिलचस्पी है।

मैंने डाउनलोड के लिए कच्चा प्राप्त संकेत और संशोधित अपेक्षित संकेत उपलब्ध कराया। वे सभी 44.1 kHz पर नमूना हैं। अपेक्षित संकेतों के साथ प्राप्त संकेत को सहसंबंधित करना कुछ इसी तरह का उत्पादन करेगा, लेकिन ऊपर दिए गए चित्र के समान नहीं है क्योंकि मैं प्राप्त संकेतों को बेसबैंड तक ले जाता हूं और अपेक्षित संकेतों के साथ सहसंबंधित होने से पहले समझदार हूं।

संकेत मिला है

अपेक्षित संकेत # 1

अपेक्षित संकेत # 2

Matlab स्क्रिप्ट Matlab स्क्रिप्ट में सिग्नल जनरेशन स्क्रिप्ट (genLocationSig.m) और मेरे प्राप्त / प्रसंस्करण स्क्रिप्ट (calcTimingOffset.m) दोनों हैं।


क्या आपके लिए अपने rx1, rx2 और टेम्पलेट डेटा को साझा करना संभव है?
तारिणी ज़ियाई

@ user4619 मैं आज शाम को ऐसा करने की कोशिश करूंगा।
जिम क्ले

वास्तविक त्वरित: मैंने आपका डेटा प्राप्त किया और एक विपरीत-संवर्धित STFT-PSD का उत्पादन किया । मैं अनुमान लगा रहा हूं कि नीचे की ओर वे 5 ब्लिप आपके दो सिग्नल हैं, जिन्हें फ्रीक्वेंसी द्वारा अलग किया जाता है। ऐसा प्रतीत होता है कि आपके सिग्नल ठीक प्रसारित हो रहे हैं, लेकिन मुझे विश्वास नहीं है कि इकोस या मल्टीपाथ आपकी समस्या है। जैसा कि आप देख सकते हैं कि दालों के बीच बहुत अधिक आंतरायिक (ब्रॉडबैंड) शोर है, कम से कम शुरुआत में। यदि आप कॉम्प्लेक्स बैंड शिफ्ट, डाउनसम्पल, अपने बार्कर अनुक्रम के साथ सहसंबंधित करते हैं, और लिफाफे को देखते हैं, तो आप क्या देख रहे हैं?
तारिणी ज़ियाई

1
ठीक है, एक दो बातें: मैंने) क्या आपने इस तरह के कोडित तरंगों के बजाय एक रैखिक-चहक का उपयोग करने पर विचार किया है? आपके पास उनके साथ बहुत अधिक लचीलापन है, और इसमें बहुत कम चलने वाले भाग शामिल हैं। II) क्या, यदि कोई हो, तो आपके बैंडविड्थ की कमी है? उदाहरण के लिए आपके टेम्प्लेट लगभग 1 KHz चौड़े दिखाई देते हैं, इसका कोई कारण? क्या आप उच्च जा सकते हैं? एक रैखिक-चहक के साथ यह आसान है। III) जबकि मुझे संदेह है कि आपके डिमॉड्यूलेशन में कुछ भी गड़बड़ है, इसे लगाने से मदद मिलेगी। वह, और यह मुझे इसे लिखने की परेशानी से बचाएगा!
तरिन ज़ियाई

1
थोड़ी टिप्पणियों के बारे में, गलतफहमी है: आइए हम बार्कर कोड के 13 राज्यों में से प्रत्येक को एक 'चिप' कहते हैं। इसलिए अगर मैं थोड़ा सा संचारित करता हूं, तो मैं 13 चिप्स प्रसारित कर रहा हूं। अगर मैं 2 बिट्स को प्रसारित करता हूं, तो मैं 26 चिप्स आदि को प्रसारित कर रहा हूं, इसलिए मेरा सवाल था कि आप कितने बिट्स ट्रांसमिट कर रहे हैं? मैं मान रहा हूं कि आप सिर्फ 1 बिट ट्रांसमिट कर रहे हैं, और इसलिए मैं कह रहा हूं कि आप अपने कोडिंग लाभ को बढ़ाने के लिए और भी बहुत कुछ ट्रांसमिट करने पर विचार कर सकते हैं। क्या इसका कोई मतलब है?
तारिन ज़िया

जवाबों:


3

ये वे कोड नहीं हैं जिन्हें आप ढूंढ रहे हैं ...

जैसा कि मैंने टिप्पणियों में उल्लेख किया है, मजबूत टीडीओए करने के कई तरीके हैं। (रैखिक चिंराट, घातीय चिंराट, और सीडीएमए-प्रकार विधियों के साथ क्रॉस-सहसंबंध)। आपने पहले से ही कोड का उपयोग करने वाला एक TDOA सिस्टम बनाया है, (और अगर आप डॉपलर के लिए मजबूती की जरूरत है, तो रैखिक-चिरागों पर वास्तव में एक अच्छा विकल्प है), हालांकि आप दो तरीकों से खुद को कृत्रिम रूप से सीमित कर रहे हैं:

  • बार्कर कोड केवल लंबाई तक जाते हैं 13। हालांकि, बहुत अधिक कोडिंग लाभ प्राप्त करने के लिए हम मनमाने ढंग से लंबाई के पीएन-अनुक्रम कोड बना सकते हैं।
  • केवल का उपयोग 1अपने संचरण में थोड़ा। हम कई बिट्स की एक पूरी प्रस्तावना को प्रेषित कर सकते हैं, जिससे मल्टीपाथ को और अधिक लचीलापन मिल सके।

पीएन-अनुक्रम का उपयोग करें:

इस प्रकार, बहुत सरलता से, अपने वाहक को संशोधित करने के लिए आपके द्वारा उपयोग किए जाने वाले कोड को बदल दें: इसके बजाय PN-Sequences का उपयोग करें। पीएन उत्पन्न कोड (लगभग) मनमाने ढंग से लंबाई के हो सकते हैं, और एलएफएसआर के माध्यम से उत्पन्न किए जा सकते हैं । (वे कुछ ग्रंथों में 'वाइटनर' नाम से भी जाते हैं)। यहां लंबाई के तीन पीएन-क्रम हैं31, 61, तथा 127 क्रमशः।

PN_31 = [ 1  1 -1 -1  1  1 -1  1 -1 -1  1 -1 -1 -1 -1  1 -1  1 -1  1  1  1 -1  1  1 -1 -1 -1  1  1  1];

PN_61 = [ 1  1  1 -1  1  1 -1  1 -1 -1  1 -1 -1  1  1  1 -1 -1 -1  1 -1  1  1  1  1 -1 -1  1 ...
     -1  1 -1 -1 -1  1  1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1  1  1  1  1  1  1 -1  1 -1  1 -1 ...
      1  1 -1 -1  1  1 -1];

PN_127 = [-1     1     1     1    -1     1    -1    -1     1    -1     1     1    -1    -1    -1     1     1    -1     1     1     1     1    -1     1     1    -1     1    -1 ...
       1     1    -1     1     1    -1    -1     1    -1    -1     1    -1    -1    -1     1     1     1    -1    -1    -1    -1     1    -1     1     1     1     1     1 ...
      -1    -1     1    -1     1    -1     1     1     1    -1    -1     1     1    -1     1    -1    -1    -1     1    -1    -1     1     1     1     1    -1    -1    -1 ...
       1    -1     1    -1    -1    -1    -1     1     1    -1    -1    -1    -1    -1     1    -1    -1    -1    -1    -1    -1     1     1     1     1     1     1     1 ...
      -1     1    -1     1    -1     1    -1    -1     1     1    -1    -1     1     1     1];

अनुक्रमों के परिपत्र और रैखिक ऑटो-सहसंबंध नीचे दिखाए गए हैं। वे स्पष्ट रूप से सफेद स्पेक्ट्रा का उत्पादन करेंगे, लेकिन इससे अधिक, हम अब तक सीमित नहीं हैं13चिप की लंबाई। वास्तव में, अंतिम कोड, PN_127, का कोडिंग लाभ देता है10 एलजी[12713]10 सफेद स्पेक्ट्रा की गारंटी देते हुए, बार्कर अनुक्रम पर डीबी हासिल।

यहाँ छवि विवरण दर्ज करें

प्रस्तावना प्रेषित करें:

अपने विशेष आवेदन में, आपने उल्लेख किया कि आप केवल एक बिट संचारित कर रहे थे। यदि आप इसे मदद कर सकते हैं, तो आपको इससे बचने की कोशिश करनी चाहिए, और आपके आवेदन की अनुमति के रूप में कई बिट्स को संचारित कर सकते हैं, आगे कोडिंग लाभ प्राप्त करने के लिए।

यह आमतौर पर एक पैकेट की शुरुआत के साथ संरेखित करने के लिए संचार प्रोटोकॉल पर किया जाता है। A (ज्ञात) प्रस्तावना संचरित होती है, जो कई बिट्स से बनी होती है। प्रत्येक बिट, कई चिप्स से बना है। (हमारे उदाहरण में,31, 61, या 127उपरोक्त पीएन कोड में से किसी एक के साथ चिप्स)। अंत में, बिट अनुक्रम खुद एक और पीएन अनुक्रम से बना हो सकता है, या यदि आप चाहें, तो आप संचारित हो सकते हैं13 बिट्स एक बार्कर पैटर्न की रचना करते हैं, जिसमें प्रत्येक बिट उपरोक्त PN दृश्यों में से किसी एक से बना होता है।


उन समाधानों में से एक या दोनों का प्रयास करें, और अपने परिणाम डालें। मैं उम्मीद करता हूं कि मूर्त सुधार हो सकते हैं जिसके बाद हम उस पर पुनरावृति कर सकते हैं। (पल्स को आकार देने, अलग / लंबे पीएन अनुक्रम, आदि)।


1
हां, मैं लंबे दृश्यों की कोशिश कर रहा हूं। मुझे नहीं पता था कि pn सीक्वेंस के सर्कुलर ऑटोक्रॉलेशन इतने अच्छे थे- दिलचस्प। दुर्भाग्य से मेरे आवेदन के लिए यह रैखिक स्वसंबंध है जो मायने रखता है। प्रस्तावना के बारे में- संपूर्ण अनुक्रम एक प्रकार से, एक "प्रस्तावना" है, इस अर्थ में कि प्रस्तावना को उपयोगी बनाने के लिए यह एक ज्ञात डेटा पैटर्न है। मेरे पूरे संकेत को एक प्राथमिकता के रूप में जाना जाता है।
जिम क्ले

मैंने एक संकेत 10 lfsr (1023 चिप्स) का उपयोग करके सिग्नल की लंबाई पर थोड़ा ओवरकिल जाने का फैसला किया है या तो यह साबित करने के लिए कि सिग्नल को लंबा करके समस्या हल की जा सकती है। मैं पोस्ट करता हूँ कि क्या होता है।
जिम क्ले

1
@JimClay खुशी है कि सुनने के लिए। मुझे यह देखने के लिए उत्सुक है कि प्राप्त xcorrs / सिग्नल अब क्या दिखते हैं। हालांकि यह बहुत अच्छा है।
तारिणी ज़िया

1
@endolith हाँ, डॉपलर एक समस्या है। मैं संभालता हूं कि कई बार सहसंबंधित करके, अलग-अलग राशि द्वारा हर बार प्राप्त संकेत की आवृत्ति को स्थानांतरित करना। यदि आप फ़्रीक्वेंसी डोमेन में सहसंबद्ध हैं तो यह करना आसान है।
जिम क्ले

1
@endolith जैसा कि जिम क्ले ने अपनी विधि का वर्णन किया, वह मूल रूप से कंप्यूटिंग कर रहा है जिसे एंबीगुएटी फंक्शन के रूप में जाना जाता है । आधार आवृत्ति के अनुरूप दूसरे आयाम के साथ, क्रॉस-क्रॉस परिणाम है। यह तब शिखर को प्रकट करेगा, और इसलिए, चूंकि हम मूल आवृत्ति, इसके डॉपलर डिग्री को जानते हैं।
तारिणी ज़ियाई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.