ऐसा लगता है कि आप 8192 या 8193 आवृत्तियों (0 से Nyquist पर परिमाण प्राप्त करने के लिए 10 खिड़कियों (गैर-अतिव्यापी) के औसत से स्पेक्ट्रम की गणना कर रहे हैं, लेकिन कुछ एल्गोरिदम Nyquist आवृत्ति को बिन 1192 पर छोड़ सकते हैं)।
जाँच करने के लिए पहली बात यह है कि चोटी दाहिने बिन में है। आपने यह नहीं बताया कि नमूना दर क्या है, लेकिन बिन 743 नमूना दर का 743/16384 गुना होगा। यदि संकेत वास्तव में 800 हर्ट्ज पर है, जो लगभग 17640 नमूनों / सेकंड पर एफएस डालता है। जो गलत लगता है। आपका परीक्षण संकेत संभवत: 8000, 16000, 22050, 32000, 44100, या 48000 जैसे मानक दर पर होगा। Fs = 22050 के लिए, शिखर तेजी से बिन 800/22050 * 16384 = 594 में होगा।
जाँच करने के लिए एक और मानदंड यह है कि सिग्नल में कुल ऊर्जा लगभग समय और आवृत्ति डोमेन दोनों में समान है। यहाँ पायथन में एक उदाहरण दिया गया है:
In [1]: NFFT = 2048; N = 10*NFFT; n = arange(N); Fs = 22050
In [2]: x = 0.4*cos(2*pi*400/Fs*n) + 0.6*cos(2*pi*800/Fs*n)
In [3]: y,freqs = psd(x, NFFT=NFFT, Fs=Fs, pad_to=16384) # PSD by Welch's Method
In [4]: sum(x**2)/Fs # time-domain energy
Out[4]: 0.24149869319296949
In [5]: sum(y) * N/16384 # frequency-domain energy
Out[5]: 0.24148752834391252
इनपुट सिग्नल x, जिसमें Fs = 22050 सैंपल / सेकंड में सैंपल किए गए दो साइनसोइड्स होते हैं, जो NFFT = 2048 सैंपल के 10 नॉन-ओवरलैपिंग विंडो में सेगमेंट किए जाते हैं। Psd (पावर स्पेक्ट्रल डेंसिटी) की कॉल स्पेक्ट्रम y की गणना दस 16384-बिंदु DFTs के परिमाण के औसत के रूप में करती है (वास्तव में यह x193 अंक है क्योंकि x वास्तविक-मूल्यवान है)।
गणना की गई आवृत्ति-डोमेन ऊर्जा का स्केलिंग कारक N / 16384 है क्योंकि psd फ़ंक्शन ने कुल सिग्नल लंबाई के बजाय DFT आकार में y को स्केल किया है। यह मुद्दा है या नहीं यह इस बात पर निर्भर करता है कि आपका सिस्टम PSD को सामान्य बनाने में कैसे काम करता है। एक और वैकल्पिक सामान्यीकरण 1 / एफएस से बढ़ रहा है। यह मूल एनालॉग सिग्नल में ऊर्जा से मेल खाता है। लायब्रेरी में डिफ़ॉल्ट सामान्यीकरण को अच्छी तरह से प्रलेखित किया जाना चाहिए।