मैं पहले FFT प्रदर्शन करके आवाज ऑडियो का नमूना ले रहा हूं, उसके बाद केवल उस परिणाम के कुछ हिस्सों को ले जाऊंगा जिनकी मुझे आवश्यकता है, और फिर एक उलटा एफटीएफ प्रदर्शन कर रहा हूं। हालाँकि, यह केवल तभी ठीक से काम कर रहा है जब मैं उन आवृत्तियों का उपयोग कर रहा हूँ, जो दोनों की शक्ति हैं, 32768 से 8192 तक डाउन-सैंपलिंग कहते हैं। मैं 32k डेटा पर एक FFT प्रदर्शन करता हूं, डेटा के शीर्ष 3/4 को छोड़ देता हूं और फिर एक प्रदर्शन करता हूं शेष 1/4 पर एफएफटी उलटा।
हालाँकि, जब भी मैं डेटा के साथ ऐसा करने की कोशिश करता हूं जो दो चीजों में से एक को ठीक से नहीं करता है: गणित पुस्तकालय मैं (अफोर्ग.मैथ) एक फिट का उपयोग करता है, क्योंकि मेरे नमूने दो की शक्ति नहीं हैं। अगर मैं नमूनों को ज़ीरो-पैड करने की कोशिश करता हूं, तो वे जुड़वा की शक्ति बन जाते हैं, यह दूसरे छोर पर भड़कीला हो जाता है। मैंने इसके बजाय एक डीएफटी का उपयोग करने की कोशिश की, लेकिन यह धीरे-धीरे समाप्त हो रहा है (यह वास्तविक समय में किया जाना चाहिए)।
मैं प्रारंभिक FFT और व्युत्क्रम FFT दोनों के अंत में FFT डेटा को ठीक से शून्य पैड के बारे में कैसे जाऊंगा? मान लीजिए मेरे पास 44.1khz पर एक नमूना है जिसे 16khz पर लाने की आवश्यकता है, मैं वर्तमान में कुछ इस तरह की कोशिश करता हूं, नमूना आकार में 1000 हो रहा है।
- पैड इनपुट डेटा अंत में 1024 में
- FFT प्रदर्शन करें
- सरणी में पहले 512 आइटम पढ़ें (मुझे केवल पहले 362 की आवश्यकता है, लेकिन ^ 2 की आवश्यकता है)
- उलटा FFT प्रदर्शन करें
- ऑडियो प्ले बफर में पहले 362 आइटम पढ़ें
इससे, मैं अंत में कचरा बाहर निकालता हूं। एक ही काम करना, लेकिन पहले से ही ^ 2 के नमूने के कारण चरण 1 और 3 पर पैड किए बिना, एक सही परिणाम देता है।