2012-04-24 14 views
14

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

मैंने अभी तक 5 मूल्य खिड़की बनाने के लिए क्या किया है। यह विंडो हिस्टोग्राम से मूल्यों के साथ आबादी है और एक स्कैन किया जाता है। प्रत्येक बार जब मैं अगले मान पर 5-कदम आगे बढ़ता हूं और पिछले विंडो मान की तुलना वर्तमान के साथ करता हूं। जो भी बड़ा है रखा जाता है।

क्या ऐसा करने का कोई बेहतर तरीका है?

enter image description here

+0

मुझे लगता है कि आप इस प्रश्न में प्रोग्रामिंग से सिग्नल प्रोसेसिंग को अलग नहीं कर सकते हैं। अगर कोई आंकड़े आधारित उत्तर के साथ आता है, तो यह क्या होगा? सिग्नल प्रोसेसिंग या प्रोग्रामिंग? –

उत्तर

5

वापसी hist (या histc) समारोह से एक चर (y = hist(x,bin);) और करने के लिए डेटा PEAKFINDER FileExchange प्रस्तुत करने का उपयोग स्थानीय अधिकतम खोजने के लिए।

मैंने एली बिलौयर से PEAKDET फ़ंक्शन का भी उपयोग किया है। बहुत अच्छा काम करता है। आप कोड उदाहरण के साथ यहां मेरे answer देख सकते हैं।

+1

मैं इस पर एक शीर्ष खोजक चलाने से पहले कर्नेल घनत्व अनुमान प्रदर्शन करने का सुझाव दूंगा। फ़ाइल एक्सचेंज पेज पर नमूना आंकड़े कई झूठे सकारात्मक दिखाते हैं। इसके अलावा, यह सवाल क्यों पहली जगह डीएसपी में माइग्रेट किया गया था? o_O – abcd

+0

@Bringbackspy: हां, आप 'hist' के बजाय' ksdensity' फ़ंक्शन का उपयोग कर सकते हैं। डीएसपी पर प्रश्न माइग्रेशन के लिए, मुझे कोई जानकारी नहीं है। जब मैं जवाब पर काम कर रहा था तो इसे कुछ मॉडरेटर के फैसले से प्रेरित किया गया था। – yuk

+0

युक, बस बढ़िया! धन्यवाद वादा करता है इसलिए मुझे इसमें एक पीईके होने वाला है :) –

6

ऐसा करने का सबसे आसान तरीका उच्च आवृत्ति विविधताओं को हटाने के लिए पहले गाऊशियन कर्नेल का उपयोग करके डेटा को सुचारू बनाना होगा।

फिर स्थानीय maximums खोजने के लिए localmax फ़ंक्शन का उपयोग करें।

+2

+1 यदि आप जानते हैं कि हिस्टोग्राम 'अंतर्निहित' बिमोडाल है, तो मैं इसे तब तक चिकनी कर दूंगा जब तक कि इसमें केवल दो अधिकतमता न हो। – leonbloy

+0

@ स्लेटन, हिस्टोग्राम पहले से ही एक चिकनाई चरण के माध्यम से पारित कर दिया गया है। –

+1

@ वाजिह, ठीक है, लेकिन यदि आप केवल चोटियों को अलग करना चाहते हैं तो आप उच्च आवृत्ति विविधताओं को फ़िल्टर करने के लिए इसे और अधिक सुगम बना सकते हैं। ये विविधताएं हैं जो चरम पहचान को मुश्किल बनाती हैं क्योंकि आपके पास बहुत से स्थानीय अधिकतमताएं हैं। यदि आप उन्हें फ़िल्टर करते हैं तो यह काफी मामूली है। – slayton

संबंधित मुद्दे