पर "चौड़ाई" तर्क की इकाइयां मैं widths
पैरामीटर के बारे में उलझन में हूं जो scipy.signal.cwt()
पर और scipy.signal.find_peaks_cwt()
तक विस्तारित हो जाती है। ए previous and very helpful Stack Overflow question (और उसमें पॉइंटर्स) ने मेरे अधिकांश भ्रम को समझाया। widths
तराजू की एक सरणी है जिसके द्वारा आपके डेटा के साथ रूपांतरण से पहले लहर को फैलाया जा सकता है।scipy.signal.cwt() फ़ंक्शन
जिस बिंदु ने मुझे अभी भ्रमित किया है, widths
के तत्वों की इकाइयां क्या हैं? क्या 1 की चौड़ाई का मतलब है कि वेवलेट एक "इंडेक्स" चौड़ा हो जाता है, जहां सूचकांक data
के तत्वों के बीच की दूरी है? सबसे पहले मैंने माना कि यह मामला था, लेकिन (ए) चौड़ाई गैर-पूर्णांक मान ले सकती है, और (बी) cwt() परिणाम चौड़ाई के आधार पर भिन्न हो सकते हैं।
यहां कुछ कोड है जो मेरे भ्रम को दर्शाता है। आखिरी दो पंक्तियां अलग-अलग परिणाम क्यों देती हैं?
#generating an arbitrary signal with overlapping gaussian peaks with various
npeaks = 6
support = np.arange(0,1.01,0.01)
pkx = np.array([0.2, 0.3, 0.38, 0.55, 0.65]) #peak locations
pkfun = sum(stats.norm.pdf(support, loc=pkx[i], scale=0.03) for i in range(0,npeaks-1))
#finding peaks for two different setting of widths
pkindsOne = sig.find_peaks_cwt(pkfun, widths = np.arange(4,6), wavelet = sig.ricker)
pkindsTwo = sig.find_peaks_cwt(pkfun, widths = np.arange(4,6.4), wavelet = sig.ricker)
#printing to show difference between calls
for ind, el in enumerate(pkindsTwo):
print el, pkindsOne[ind]
20 20
36 36
38 38
55 55
63 66
66 91
91
परिणाम निकट हैं, लेकिन दूसरी कॉल इनपुट डेटा के तत्व 63 पर एक नकली चोटी पाती है। इस प्रकार मुझे विश्वास नहीं है कि चौड़ाई की इकाइयां डेटा वेक्टर के सूचकांक हैं। लेकिन वे और क्या हो सकता है? यदि नहीं, widths
की इकाइयां क्या हैं? cwt()
और find_peaks_cwt()
किसी भी एक्स-अक्ष इकाइयों के बारे में कभी नहीं जानते या देखें (उदा। support
वेक्टर मैं अपने कोड में परिभाषित करता हूं), तो मुझे क्या याद आ रही है? जब, व्यावहारिक रूप से बोलते हुए, क्या यह कभी भी गैर-पूर्णांक चौड़ाई का उपयोग करने के लिए समझ में आता है?