शोर में फटने की शुरुआत के समय का अनुमान?


14

शोर संकेत में साइनसोइडल टोन के फटने की शुरुआत के समय का अनुमान लगाने के लिए कौन सी तकनीक का उपयोग किया जा सकता है?

मान लें कि फट फट में एक ज्ञात निश्चित आवृत्ति (लेकिन अज्ञात चरण) और बहुत तेज वृद्धि समय है, और लक्ष्य आधे समय से बेहतर समय के भीतर शुरुआत का समय का अनुमान लगाना है, और / या स्वर की आवृत्ति का एक अवधि है। , अगर संभव हो तो। यदि एस / एन अनुपात बहुत कम है (1 से कम) तो अनुमान तकनीक कैसे बदल सकती है?

जोड़ा गया: मान लें कि फट फट अज्ञात लंबाई का है, लेकिन वृद्धि के समय और आवृत्ति की अवधि के एक छोटे से अधिक से अधिक है।

जोड़ा गया: एक डीएफटी / एफएफटी एक टोन के बहुत संभावित अस्तित्व को दर्शाता है। यह समस्या ठीक ठीक पता चल रही है कि एफएफटी विंडो में टोन (या शायद एक ही आवृत्ति के कई टोन फटने) एफएफटी विंडो के भीतर शुरू हो सकते हैं, या यह निर्धारित करते हुए कि वर्तमान टोन उस डीएफटी विंडो के बाहर शुरू हुआ, बशर्ते मेरे पास वह सब हो अतिरिक्त समय डोमेन डेटा।

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


1
क्या हम शोर के बारे में कुछ भी मान सकते हैं? क्या यह स्थिर है? क्या यह वितरण के किसी भी प्रकार का पालन करता है?
फोनॉन

2
क्या आपके डिटेक्टर से झूठे अलार्म अवांछनीय हैं? क्या आपके पास प्रत्येक पल्स का सही पता लगाने की संभावना पर एक विनिर्देश है? यह फ्रंट-एंड रडार सिग्नल प्रोसेसिंग के (सरलीकृत संस्करण) के समान है; (संभवतः-मॉड्यूलेटेड) दालों को शोर में लगाया गया और उनके मापदंडों का अनुमान लगाया गया।
जेसन आर

1
क्या आपको वास्तविक समय में ऐसा करने की आवश्यकता है, या यह एक ऑफ़लाइन विश्लेषण है?
nibot

2
@ hotpaw2: इस SO उत्तर के अनुसार आपको Goertzel एल्गोरिथम के बारे में क्या पसंद नहीं आया ?
पीटर के.एच.

1
Goertzel एल्गोरिथ्म का उपयोग टोन डिटेक्शन के लिए किया जाता है, जो ऐसा प्रतीत होता है कि आप बाद में क्या कर रहे हैं। फ़िल्टर का आउटपुट आवृत्ति पर सिग्नल की "शक्ति" का एक अनुमान है जिसके लिए इसे ट्यून किया गया है। एक सीमा चुनें। यदि फ़िल्टर आउटपुट इससे ऊपर है, तो आपने एक टोन का पता लगाया है। अपनी सीमा को उचित रूप से निर्धारित करें, और आप पहले टोन की शुरुआत का पता लगा सकते हैं (और झूठे अलार्म के लिए अधिक प्रवण भी हो सकते हैं)।
पीटर के.एच.

जवाबों:


6

जैसा कि हम टिप्पणियों में चर्चा कर रहे हैं, Goertzel एल्गोरिथ्म शोर में एक स्वर का पता लगाने का सामान्य तरीका है। चर्चा के बाद, मुझे यकीन नहीं है कि आप काफी बाद में हैं (आपको शुरुआत का समय चाहिए) ), लेकिन इस बात को लेकर भ्रम की स्थिति थी कि गोर्टज़ेल एल्गोरिथ्म आपकी समस्या पर कैसे लागू हो सकता है, इसलिए मैंने सोचा कि मैं इसे लिखूंगा। यहाँ।

Goertzel एल्गोरिथम

जी ), और यदि आप शोर स्तर का एक उचित विचार इतना है कि आप एक उपयुक्त पता लगाने सीमा का चयन कर सकते हैं।

Goertzel एल्गोरिथ्म को हमेशा एक FFT बिन के आउटपुट की गणना के रूप में सोचा जा सकता है:

y(n)=ȷ2πजीnΣ=0nएक्स(n)-ȷ2πजी

कहाँ पे जी वह आवृत्ति है जिसकी आप तलाश कर रहे हैं।

विकिपीडिया पृष्ठ के पास इसकी गणना करने का एक बेहतर तरीका है।

इसे लागू करने के लिए यहां एक शुल्क (शुल्क) सिलाब का प्रयास है:

function [y,resultr,resulti] = goertzel(f_goertzel,x)
realW = 2.0*cos(2.0*%pi*f_goertzel);
imagW = sin(2.0*%pi*f_goertzel);

d1 = 0;
d2 = 0;

for n = 0:length(x)-1,
    y(n+1) = x(n+1) + realW*d1 - d2;
    d2 = d1;
    d1 = y(n+1);
    resultr(n+1) = 0.5*realW*d1 - d2;
    resulti(n+1) = imagW*d1;
end
endfunction

के साथ संकेत पर विचार करें =0.0239074 तथा φ=4.4318752 :

एक्स=पाप(2πn+φ)+ε(n)

कहाँ पे ε(n) is zero-mean, unit variance Gaussian white noise.

In this example, the tone starts one third of the way into the signal at index 1001.

If we run the Goertzel algorithm on it with fg=f0.001 then we get the top two traces of the figure.

If we run the Goertzel algorithm on it with fg=f then we get the bottom two traces of the figure.

The four traces are:

  • x (blue) and y (red) for fg=0.0229074
  • The resulting resultr2+resulti2
  • x (blue) and y (red) for fg=0.0239074
  • The resulting resultr2+resulti2 (solid line) and the first result (dashed line).

As you can see, the case where the tone we are interested in is present peaks at about 250. If we set the detection threshold at about half this value (125), then the detection occurs (the square-rooted value is greater than 125) at about index 1450 --- 450 samples after the tone started.

This threshold (125) will not cause a detection in the other case (for this run, anyway), but the maximum value of that output is 115.24, we we cannot reduce the threshold too much without getting a false detection.

Reducing the threshold to 116 will cause detection in the true case (for this run) at index 1401... but we run the risk of more false alarms.

enter image description here


A running Goertzel filter is more suitable if one is only looking for an existence estimate within a fixed length window. A running Goertzel without a loss/decay term changes it's bandwidth over its length, and the narrower bandwidth later in time provides a worsening arrival time estimate, more sensitive to noise and threshold errors.
hotpaw2

@hotpaw2: Correct. You can introduce a "forgetting factor" to keep Goertzel running, but otherwise it remembers everything.
Peter K.

Remembers everything? It's an FIR that can be implemented in recursive form. What have I missed here?
Oliver Charlesworth

@Oli: If you look at the equation for y(n) above, you'll note that it doesn't end. Yes, it's estimating a (scaled) DFT coefficient, but it's definitely not FIR.
Peter K.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.