2010-08-19 13 views
6

मैं एक साधारण (छद्म) कोड ढूंढ रहा हूं जो एक नमूना ऑडियो सिग्नल स्पेक्ट्रम-उलटा करता है। आदर्श रूप से सी ++स्पेक्ट्रम-इनवर्क्स कैसे एक नमूना ऑडियो सिग्नल

कोड को विभिन्न नमूना दरों (16/32/48KHz) का समर्थन करना चाहिए।

+1

"स्पेक्ट्रम-उलटा" क्या है? मजेदार बात यह है कि Google ने पहली बार हिट के रूप में आपका प्रश्न प्रकट किया। आप प्रत्येक आवृत्ति के लिए चरण और आयाम का पारस्परिक होना चाहते हैं? या आप बस एक आईएफएफटी चाहते हैं? या कुछ पूरी तरह से अलग है? – zerm

+0

मेरी गैर-व्यावसायिक शब्दावली के लिए खेद है: मैं चाहता हूं कि निम्न आवृत्तियों को उच्च-बनने के लिए और इसके विपरीत (डीसी ऑफ़सेट नमूना आवृत्ति के आधे हिस्से के साथ एक साइन बन जाएगा)। –

+1

अब मैं यह जानकर बहुत उत्सुक हूं कि यह कैसा लगता है ... – PeterAllenWebb

उत्तर

6

Fs/2 द्वारा सिग्नल को मिलाकर उच्च आवृत्तियों और कम आवृत्तियों को स्वैप कर देगा - यूनिट सर्कल के चारों ओर स्पेक्ट्रम को आधे मोड़ से घूमने के बारे में सोचें। आप इस दूसरे घूर्णन को -1 से गुणा करके इस घूर्णन को प्राप्त कर सकते हैं।

Fs/2 द्वारा मिश्रण exp(j*pi*n) द्वारा मिश्रण के बराबर है। यदि x इनपुट और y उत्पादन,

y[n] = x[n] * exp(j*pi*n) = x[n] * [cos(pi*n) + j*sin(pi*n)] 

यह आसानी से सरल बनाता है ताकि sin(pi*n) 0 है, और cos(pi*n) 1 बारी है, -1 है।

+0

इतना आसान ... अविश्वसनीय –

+2

यह चाल डीएसपी में बहुत कुछ आती है। उदाहरण के लिए, यदि आप एक उच्च पास फ़िल्टर डिज़ाइन करना चाहते हैं, तो वांछित कटऑफ अनुपात के साथ कम पास फ़िल्टर डिज़ाइन करना आम तौर पर आसान होता है, फिर इसे उच्च सर्कल बनाने के लिए यूनिट सर्कल के चारों ओर घुमाएं। – mtrw

1

क्रम कुछ मूल के रूप में अस्थायी संरचना के एक ही प्रकार है कि पाने के लिए, आप

  • करने की जरूरत है (कुछ खिड़की के आकार के साथ) एक spectrogram बनाएं
  • कुछ ऊपरी और निचले आवृत्ति सीमा चुनें जिसमें आप फ्लिप जाएगा
  • एक ध्वनि संकेत उन आवृत्तियों के साथ संगत
  • Resynthesize उन सीमा के भीतर spectogram की तीव्रता फ्लिप

चूंकि यह एक ऑडियो सिग्नल है, इससे कोई फर्क नहीं पड़ता कि चरण सभी गड़बड़ हो जाएंगे। आप उन्हें वैसे भी सुन नहीं सकते हैं। फ़्लिपिंग भाग को छोड़कर, ARSS स्पेक्ट्रोग्राम निर्माण और ध्वनि संश्लेषण करता है।

अन्यथा, आप केवल एफएफटी ले सकते हैं, घटकों के आयामों को उलटा कर सकते हैं, और विपरीत एफएफटी ले सकते हैं। लेकिन यह अनिवार्य रूप से बकवास होगा, क्योंकि यह ध्वनि की अस्थायी संरचना और साथ ही आवृत्ति संरचना को पूरी तरह से तबाह कर देगा।

+0

धन्यवाद, एआरएसएस आवृत्ति फिल्टर बैंक का उपयोग करता है, इसलिए मैं कर सकता हूं आवृत्ति डिब्बे उलटा है।मुझे आश्चर्य है कि क्या कुछ गणितीय हेरफेर है जो आवृत्तियों को 'सुचारु रूप से' घुमाता है (इसे डिब्बे में विभाजित किए बिना)। –

+0

आप वेवलेट्स का उपयोग कर सकते हैं जिन्हें स्पष्ट रूप से पिन नहीं किया गया है, लेकिन आपके मामले में शायद ही कोई मायने रखता है। कम आवृत्ति आवाज उच्च आवृत्ति वाले लोगों की तुलना में अधिक धीरे-धीरे बदलती है, इसलिए फ्लिप किसी भी तरह चिकनीता को बदलने जा रहा है। –

0

यह कोसाइन का उपयोग करने के लिए ज्यादा समझ में नहीं आता है। एक डिजिटल सिग्नल के लिए यहां एक असली रिंगमोड चलाने के लिए आवश्यक नहीं है, nyquist पर एक consine वैसे भी एक वर्ग है।

ताकि आप * -1 द्वारा हर दूसरे नमूना को गुणा कर सकें और आप कर चुके हैं।

कोई विलंबता नहीं, कोई अलियासिंग नहीं, कुछ भी नहीं।

+0

यह स्वीकार्य उत्तर कहता है। –

संबंधित मुद्दे