एक डेटा स्ट्रीम में संकेत को चौरसाई / पता लगाना


11

(EDIT: यह सवाल कच्चे WAV से बाइनरी मैग्नेटिक-स्ट्रिप कार्ड डेटा निकालने से है )

यहाँ मेरा संकेत (शीर्ष पंक्ति) और एक बुनियादी IIR फ़िल्टर लागू किया गया है (निचला रेखा)

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

(EDIT: मेरा काम बाइनरी 0 (फ़्रीक्वेंसी एफ) और बाइनरी 1 (फ़्रीक्वेंसी 2F) में सिग्नल को तोड़ना है - इसीलिए इसे F2F कहा जाता है। इसलिए मुझे इसे इस तरह से प्रोसेस करने की ज़रूरत है, जो किसी झूठी चोटियों की गारंटी न दे। जबकि स्क्रीनशॉट यह तुच्छ दिखता है, एक डबल चोटी पाने की एक संभावित समस्या है, और असली चोटियों के बीच गर्त में झूठी सकारात्मकता प्राप्त करने की भी है। "

मेरा सवाल यह है कि इस सिग्नल को सुचारू करने के लिए कौन से तरीके उपलब्ध हैं? क्या IIR मेरी सबसे अच्छी शर्त है?

मैं कम से कम तीन संभावनाएं देख सकता हूं:

  • IIR y [n] = 0.9 * y [n-1] + 0.1 * x [n] जहां y [x] = 0 = x [0]

  • मूविंग / विंडो एवरेज - एक बेल कर्व को 1.0 के आसपास वाले एरिया में w के साथ रखें = प्रत्येक साइड में 10 सैंपल लें और bellSmooth (x) = इंटीग्रल [xw, x + w] {बेल (k) .samp (k) डीके को एकीकृत करें।

  • अपेक्षित आवृत्ति और FFT निर्धारित करें / उच्च क्रम के डिब्बे / FFT को हटा दें

मैंने अपने स्वयं के प्रश्न का उत्तर दिया हो सकता है, लेकिन शायद यह अधूरा है और मुझे यकीन है कि मैं गलत शब्दावली का उपयोग कर रहा हूं। इसके अलावा, मैं वास्तव में पेशेवरों और विपक्षों की भविष्यवाणी नहीं कर सकता। अंतिम विधि कम आकर्षक है क्योंकि इसके लिए मूल संकेत आवृत्ति के ज्ञान की आवश्यकता होती है। लेकिन फिर दूसरी विधि करता है; मुझे एक उपयुक्त विंडो लंबाई चुनने की आवश्यकता है।

क्या कोई अन्य तरीके हैं?


6
मूल सिग्नल की कौन-सी विशेषताएँ आप को संरक्षित / मापने की कोशिश कर रही हैं? उदाहरण के लिए, शिखर बिंदुओं के बीच का समय, शिखर की ऊंचाई, दहलीज के ऊपर समय की मात्रा, कुछ और?
मार्टिन थॉम्पसन

चोटियों के बीच समय ... और यहां तक ​​कि बहुत सटीक होने की आवश्यकता नहीं है - यह एक F2F सिग्नल है (मैं सिग्नल स्रोत का संदर्भ देने और संदर्भ देने के लिए प्रश्न में संशोधन करूंगा)
P i

यह ऑनलाइन या ऑफलाइन प्रसंस्करण के लिए है?

मेरा थीसिस विषय डेटा स्ट्रीम में शोर सुचारू है। क्या आप इस लेख या विषय को पसंद करते हैं?

जवाबों:


6

एवरेजिंग के प्रभाव

मूविंग एवरेज फिल्टर का उपयोग सिग्नल में अनियमितताओं को सुचारू करेगा। शोर ई / एन हो जाता है जहां एन चलती औसत फिल्टर की लंबाई है। एमए का उपयोग करने का साइड इफेक्ट यह है कि सिग्नल चोटियां व्यापक और उथली हो जाती हैं।

इसके अलावा, सिग्नल की आवृत्ति सामग्री बदल जाएगी। टाइम डोमेन में एक मूविंग एवरेज फिल्टर वही है जो फ्रीक्वेंसी डोमेन सिग्नल को सेंस फंक्शन द्वारा कन्वेक्ट करने से सब कुछ स्मूद हो जाता है।

पीक डिटेक्शन एलगोरिदम पीक डिटेक्शन 9/10 इंजीनियरिंग समस्याओं में एक आम समस्या है। (वास्तव में नहीं, लेकिन एक टन उन पर निर्भर है)

आमतौर पर यही किया जाता है:

मेडियन थ्रेसहोल्ड

1) Look for all peaks in your signal. (i.e., a point that is larger than the two
   adjacent points
2) take this list of points and for each one of them compute:
   med_threshold = median(Peak,Width) + constantThresholmedian   where median is the
   median value of the data centered at "Peak" with Width being the number of 
   points to look at.
       a) The Width(usually written as Lambda in literature) and constantThreshold
          (usually written as C) are determined by trial and error and using the ROC
          curve (Acronym below)
3) if the peak's magnitude is above this threshold accept it as a true peak. 
   Else: Discard it, its a false peak
4) Generate a Receiver Operating Characteristic Curve(ROC) to how well the algorithm
   is performing.

यहाँ एक उदाहरण है:

suppose we have the signal X = [ 0 0 0 0 1 3 **9** 2 1 1 **2** 1 1 ] 
1) 9 and 2 are both potential peaks 
2) Lets use a window of 5 and  a threshold =2
so at 9 we have [1 3 9 1 2] -> [1 1 2 3 9]  so Median(9,5) = 2
9 > 2 +2, therefor its a peak
Lets take a look at 2: [ 1 1 2 1 1] -> [1 1 1 1 2 ] Median(2,5) = 1
2 < 1+2, therefor it is NOT a peak. 

आवृत्ति का निर्धारण

अब जब आपने प्रभावी ढंग से चोटी के स्थानीयकरण को अपनी आवृत्ति खोजने की कोशिश की है:

1) Use the locations of the peaks to generate a pulse train
      a) this means create sum(Dirac_delta[t-L(n)]) where L(n) is the nth time that 
      you've localized through median thresholding
2) Apply FFT Algorithm
3) Look for largest peak. 

वैकल्पिक आवृत्ति अनुमान

1) Think of this like a beat in a piece of music (I learned about thresholding by
   researching Onset Detection.
2) Compute the average time distance between detected peaks.
3) now call your results BPM or PPM (pulses per minute) 

अनुसंधान के अतिरिक्त रास्ते

जब आप चोटी के संकेत से संतुष्ट हो सकते हैं, जैसा कि, एल्गोरिदम हैं जो ओनियन डिटेक्शन नामक समस्याओं के एक पूरे अलग जानवर पर लागू होते हैं।

ऑनसेट डिटेक्शन संगीत सूचना पुनर्प्राप्ति अनुसंधान में एक बड़ा क्षेत्र है। इसका उपयोग यह निर्धारित करने के लिए किया जाता है कि नोट कब चलाया जा रहा है।

एक शुरुआत का संगीत नमूना

यदि आप अपने टेप हेड सिग्नल को अत्यधिक सैंपल सिग्नल मानते हैं, तो आप इस पेपर में मिलने वाले कई एल्गोरिदम लागू कर सकते हैं:

http://www.elec.qmul.ac.uk/people/juan/Documents/Bello-TSAP-2005.pdf


"[१ ३ ९ १ १ २]" अगर आपकी खिड़की की चौड़ाई = ५ है तो आप नंबर २ कैसे पा रहे हैं?
स्पेसी

ध्यान दें कि मैंने संख्याओं को कैसे पंक्तिबद्ध किया। माध्य एक निर्धारित क्रम में मध्य संख्या है। [१ १ २ ३ ९] <- आदेश दिया, मध्य संख्या २ है
साइबरमेन १२'१२ को १३:०२

अपनी संख्या को देखें, वे [१ ३ ९ १ १] हैं। आपको 2 कहां से मिले?
स्पेसी

@ मोहम्मद इस पर काम करते हुए कुछ संपादन से गुजरे, हटाए गए। फिक्स्ड।
साइबरमन

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