मैं इस कार्य के लिए तर्क बाहर काम करने की कोशिश कर रहा है, और KissFFT स्रोत पैकेज का उपयोग करने की योजना तेजी से फूरियर परिणत करने के लिए। कृपया मुझे बताएं कि क्या यह सही लगता है:
- एक एफएफटी संरचना आवंटित करें, अर्थात। खिड़की का आकार मैं
kiss_fft_alloc(N,0,NULL,NULL)
कहाँN
उपयोग कर रहा हूँ। इनपुट बफर प्रकार केN
तत्वों की एक सरणी होगीkiss_fft_scalar
। आउटपुट बफर प्रकार केN/2 + 1
तत्वों की एक सरणी होगीkiss_fft_cpx
। N
पीसीएम नमूनों की डिकोड (खिड़की का आकार) संख्या।- प्रत्येक पीसीएम नमूने के लिए, औसत प्रत्येक चैनल के आयाम (अहस्ताक्षरित नमूने) और पैमाने को 0 से 2 (65536.0 से विभाजित करें), परिणाम को इनपुट बफर में संग्रहीत करें।
- इनपुट बफर पर विंडोिंग (यानी हैनिंग) करें।
- इनपुट बफर पर तेजी से फूरियर रूपांतरण करें, आउटपुट बफर में भंडारण करें। चूंकि मैं वास्तविक मानों को इनपुट के रूप में उपयोग कर रहा हूं, इसलिए मैं उपयोग कर सकता हूं
kiss_fftr()
। - के लिए
N/2
उत्पादन मूल्यों, तब्दील डेटा के वर्ग परिमाण प्राप्त करने और निम्नलिखित फार्मूले के साथ डीबी पैमाने पर करने के मूल्यों परिवर्तित:10 * log10 (re * re + im * im)
N/2
चरण 6 से मान प्लॉट करें ।- इनपुट बफ़र की पहली छमाही को त्यागें, अगले (विंडो आकार / 2) पीसीएम नमूनों को डिकोड करें और डेटा को स्केलिंग और विंडोिंग करें। यह प्रभावी रूप से इनपुट विंडो को स्लाइड करना चाहिए और संसाधित पीसीएम नमूनों पर गणित को फिर से करने से बचना चाहिए।
- चरण 5 तक लूप करें, जब तक सभी नमूने संसाधित नहीं हो जाते, तब तक इन चरणों को दोहराएं।
- से उपयोग की गई स्मृति को मुक्त करें
kiss_fft_alloc()
।
यह सुझाव दिया गया था कि एफएफटी प्रदर्शन करने से पहले मैं इनपुट विंडो से एक मूल्य घटाता हूं, ताकि परिणामी डीसी मूल्य में शून्य का परिमाण हो। क्या मुझे इनपुट डेटा से औसत या औसत घटाना चाहिए?
इसके अलावा, खिड़की के आकार का चयन करते समय मुझे किन बातों पर विचार करना चाहिए? कि इसके अलावा यह KissFFT के निर्देशों के अनुसार के रूप में सम संख्या हो गया है, वहाँ एक छोटी सी खिड़की आकार यानी उपयोग करते हुए, के लिए एक लाभ है। क्या यह बेहतर ग्राफ प्रदान करेगा? मुझे लगता है कि एक बड़ी खिड़की का आकार एफएफटी की संख्या को कम करता है जिसे निष्पादित किया जाना चाहिए, क्या यह एक बड़ी खिड़की के आकार का उपयोग करने का एकमात्र लाभ है?
किसी भी और सभी मार्गदर्शन के लिए अग्रिम धन्यवाद।