audio वेब ऑडियो एपीआई में एफएफटी डेटा क्या है?




fft html5-audio (2)

256 डिब्बे के साथ, प्रत्येक एक ~ 86 हर्ट्ज अलग (44100 kHz नमूना दर / fftSize होगा, जहां fftSize डिब्बे की संख्या दोगुना है)। तो आप शून्य से शुरू करते हैं और वहां से 86 हर्ट्ज की वृद्धि में जाते हैं।

डिब्बे में वास्तविक मूल्य सिग्नल में प्रत्येक आवृत्ति कितनी उपस्थित होती है (यानी आवृत्ति कितनी "जोरदार" होती है) का प्रतिनिधित्व करता है।

मैंने नीचे दिखाए गए स्पेक्ट्रम विज़ुअलाइज़र बनाने के लिए वेब ऑडियो एपीआई में getByteFrequencyData विधि का उपयोग करके विश्लेषक नोड से एफएफटी डेटा का उपयोग किया है:

इस उदाहरण में मेरे पास डेटा के 256 डिब्बे हैं। इसमें वास्तव में क्या संख्याएं हैं? क्या यह प्रत्येक आवृत्ति घटक का डेसिबल स्तर है। यदि हां, तो मुझे कैसे पता चलेगा कि प्रत्येक बिन की आवृत्ति का मूल्य क्या है?

मैं जानना चाहता हूं कि मैं ग्राफिक ईक बनाने में प्रयोग कर सकता हूं और इसलिए यह जानना चाहूंगा कि फ़िल्टर बैंड को इंगित करने के लिए कौन से बिंदु हैं। आदर्श रूप में मैं 20Hz से 20kHz तक आवृत्तियों का प्रतिनिधित्व करना चाहता हूं और तदनुसार उन लोगों के बीच साजिश अंतराल का प्रतिनिधित्व करना चाहता हूं।

किसी भी मदद के लिए धन्यवाद।


हां, getByteFrequencyData परिणाम 0 और 255 के बीच मानों की सामान्यीकृत सरणी में परिणाम प्राप्त करते हैं। (यह उस डेटा को प्रतिलिपि बनाता है जो इसे पारित करता है)।

आवृत्ति बैंड समान रूप से विभाजित होते हैं, इसलिए आपके सरणी के प्रत्येक तत्व एन से मेल खाता है:

N * samplerate/fftSize

तो, पहला बिन 0 है।
और, 44100 का एक नमूना मानते हुए और एक <analyzerNode>.fftSize का दूसरा आकार होगा: 86.13 हर्ट्ज, और इसी तरह ...

आपको इन दो प्रश्नों और उत्तरों को उपयोगी, dsp पर और SO पर मिलेगा:

ध्यान दें कि आपके नमूने की लंबाई आधा <analyzerNode>.fftSize , जो प्रभावी रूप से आवृत्ति-सीमा को आधा नमूना तक सीमित कर देती है।





web-audio