2012-04-16 14 views
8

यह वास्तव में एक सैद्धांतिक प्रश्न है, लेकिन यहां यह जाता है:बराबर पावर क्रॉसफ़ेड?

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

लेकिन मैं शुष्क और गीली धाराओं के सिग्नल आयामों के लिए रैखिक फेडर से स्केलिंग कारक (लाभ) में मैपिंग फ़ंक्शन करने के सही तरीके से उलझन में हूं।

असल में, मैंने इसे cos/sin कार्यों या वर्ग जड़ों के साथ किया है ... अनिवार्य रूप से लॉगरिदमिक वक्र का अनुमान लगाया गया है। लेकिन अगर आयाम की हमारी धारणा शुरू करने के लिए लॉगरिदमिक है, तो क्या ये वक्र वास्तव में घातीय होने के लिए फेडर स्थिति को मैपिंग नहीं करना चाहिए?

अनुमान:

  • signal[i] एक संकेत में ith नमूना मतलब है

    यह मैं क्या मतलब है।

  • प्रत्येक नमूना [0,1] के बीच आयामों के लिए एक फ़्लोट [-1, 1] है।
  • हमारे जीयूआई नियंत्रण [0,1] से लेकर एक एनएसएसएलडर है, इसलिए यह सिद्धांत रैखिक में है।
  • fader एनएसएसएलडर के मूल्य के साथ एक चर है।

पहले निरीक्षण: हम लघुगणक तरह से आयाम मानता। तो अगर हम एक रेखीय पिता है और केवल ऐसा करके एक संकेत के आयाम को समायोजित:

enter image description here

इस तथाकथित है: क्या हम (श्रवण, गणित की परवाह किए बिना) मानता रहे signal[i] * fader की तर्ज पर कुछ है क्रैपी फेडर-इफेक्ट कहा जाता है: हम स्लाइडर में बाएं सेमेस्टर से गुंबद तक एक कठोर मात्रा में वृद्धि करते हैं और बीच में वॉल्यूम उस जोर से नहीं लगते हैं।

तो fader "दाएं" करने के लिए, हम इसके बजाय इसे एक डीबी स्केल में व्यक्त करते हैं और फिर, जहां तक ​​सिग्नल का संबंध है, करते हैं: signal[i] * 10^(fader/20) या, अगर हम इकाइयों को रखने या fader करने के लिए थे [0, 1], हम कर सकते हैं: signal[i] * (.001*10^(3*fader))

किसी भी तरह से है, जो हम अपने कोड में गुणा करने के लिए इस्तेमाल करेंगे पिता चर को NSSlider से हमारे नए मानचित्रण, इस तरह दिखता है अब:

enter image description here

जो हम वास्तव में चाहते हैं, क्योंकि हम तर्कसंगत रूप से आयाम को देखते हैं, इसलिए हम अनिवार्य रूप से मप्पी हैं रैखिक (एनएसएसएलडर रेंज 0-1) से घातीय और इस घातीय आउटपुट को हमारे लॉगरिदमिक धारणा को खिला रहा है। और यह पता चला है कि: log(10^x)=x इसलिए हम एक रैखिक (उर्फ सही) तरीके में आयाम परिवर्तन को समझते हैं।

ग्रेट।

अब, मेरा विचार यह है कि दो संकेतों के बीच एक समान शक्ति क्रॉसफ़ेड (इस मामले में एयू में इनपुट को मिलाकर एक सूखा/गीला क्षैतिज एनएसएसएलडर और इसके द्वारा संसाधित आउटपुट) अनिवार्य रूप से वही है एक स्लाइडर दोनों परिकल्पनात्मक संकेतों पर अभिनय [i] और गीला [i]।

तो अगर 0 से 100 और करने के लिए अपने स्लाइडर पर्वतमाला सूखी पूर्ण छोड़ दिया और गीला पूर्ण दाएं), मैं की तर्ज पर कोड को रखना होगा है:

Float32 outputSample, wetSample, drySample = <assume proper initialization> 
Float32 mixLevel = .01 * GetParameter(kParameterTypeMixLevel); 
Float32 wetPowerLevel = .001 * pow(10, (mixLevel*3)); 
Float32 dryPowerLevel = .001 * pow(10, ((-3*mixLevel)+1)); 
outputSample = (wetSample * wetPowerLevel) + (drySample * dryPowerLevel); 

जिनमें से ग्राफ होगा:

enter image description here

और पहले की तरह ही, क्योंकि हम आयाम लघुगणकीय अनुभव, इस घातीय मानचित्रण वास्तव में यह सुनिश्चित करना चाहिए कि हम कहाँ रैखिक रूप में crossfade सुनते हैं।

हालांकि, मैंने लॉग वक्र के अनुमानों का उपयोग करके क्रॉसफ़ेड के कार्यान्वयन को देखा है। मतलब, बजाय:

enter image description here

लेकिन इन घटता वास्तव में आयाम के बारे में हमारी धारणा लघुगणक जोर नहीं होगा?

+0

मैं डीएसपी बहन साइट पर यह पूछने का सुझाव दूंगा: http://dsp.stackexchange.com/ –

+0

मुझे लगता है कि मुझे अब तक यह मिला है, लेकिन मुझे उस साइट के बारे में पता नहीं था! – SaldaVonSchwartz

+0

कूल। यदि आपको यह पता चला है, तो आपको अपने प्रश्न का उत्तर देना चाहिए - मैं एक के बारे में जानना चाहता हूं जिसके साथ आप आए थे। –

उत्तर

7

"बराबर शक्ति" क्रॉसफ़ेड जिसे आप सोच रहे हैं, अपने मिश्रण की कुल आउटपुट पावर को बनाए रखने के साथ करना है क्योंकि आप गीले से शुष्क तक फीका करते हैं। कुल शक्ति निरंतर रखते हुए कुल अनुमानित जोर स्थिरता को बनाए रखने के लिए उचित अनुमान के रूप में कार्य करता है (जो वास्तविकता में काफी जटिल हो सकता है)।

आप बराबर शक्ति के दो असहसंबद्ध संकेतों के बीच crossfading रहे हैं, तो आप किसी भी दो कार्य जिसका वर्ग मूल्यों 1. इस का एक सामान्य उदाहरण के लिए योग का उपयोग करके crossfade दौरान एक निरंतर उत्पादन शक्ति बनाए रख सकते हैं कार्यों

का सेट है ।

G1 (के) = (0.5 + 0.5 * cos (अनुकरणीय * कश्मीर))^5

G2 (के) = (0.5 - 0.5 * cos (अनुकरणीय * ट))^5,

जहां= के < = 1 (ध्यान दें कि जी 1 (के)^2 + जी 2 (के)^2 = 1 संतुष्ट है, जैसा कि उल्लेख किया गया है)। यहां एक सबूत है कि इसका परिणाम असंबद्ध संकेतों के लिए निरंतर पावर क्रॉसफ़ेड में होता है:

कहें कि हमारे पास दो सिग्नल x1 (टी) और x2 (टी) समान शक्तियों के साथ ई [x1 (टी)^2] = ई [x2 (टी)^2] = पीएक्स, जो असंबद्ध भी हैं (ई [x1 (टी) * x2 (टी)] = 0)। ध्यान दें कि पिछली स्थिति को संतुष्ट करने वाले लाभ कार्यों के किसी भी सेट में जी 2 (के) = (1 - जी 1 (के)^2)^5 होगा।

E[ y(t)^2 ] = E[ (g1(k) * x1(t))^2 + 2*g1(k)*(1 - g1(k)^2)^.5 * x1(t) * x2(t) + (1 - g1(k)^2) * x2(t)^2 ] 
= g1(k)^2 * E[ x1(t)^2 ] + 2*g1(k)*(1 - g1(k)^2)^.5 * E[ x1(t)*x2(t) ] + (1 - g1(k)^2) * E[ x2(t)^2 ] 
= g1(k)^2 * Px + 0 + (1 - g1(k)^2) * Px = Px, 

जहां हम चाहते हैं कि G1 (के) का इस्तेमाल किया है: अब, योग y (टी) = G1 (के) * x 1 (टी) + G2 (के) * x2 (टी) के गठन, हम उस राशि और जी 2 (के) निर्धारक हैं और इस प्रकार अपेक्षा ऑपरेटर ई [] के बाहर खींचा जा सकता है, और परिभाषा के अनुसार ई [x1 (टी) * x2 (टी)] = 0 क्योंकि x1 (टी) और x2 (टी) माना जाता है असंबद्ध होना इसका मतलब यह है कि कोई फर्क नहीं पड़ता कि हम क्रॉसफैड में जहां भी हैं (जो भी हम चुनते हैं) हमारे आउटपुट में अभी भी एक ही शक्ति, पीएक्स होगी, और इस तरह उम्मीद है कि वह जोर से जोर से बराबर है।

ध्यान दें कि पूरी तरह से सहसंबंधित सिग्नल के लिए, आप एक "रैखिक" फीड - और दो कार्यों को एक (जी 1 (के) + जी 2 (के) = 1) के द्वारा निरंतर आउटपुट पावर प्राप्त कर सकते हैं। संकेतों को मिलाते समय जो कुछ हद तक सहसंबंधित होते हैं, उन दोनों के बीच कार्य प्राप्त करना सैद्धांतिक रूप से उपयुक्त होगा।

क्या आप और की जब आप कहते हैं

सोच रहे हैं पहले की तरह ही, क्योंकि हम आयाम लघुगणकीय अनुभव, इस घातीय मानचित्रण वास्तव में यह सुनिश्चित करना चाहिए कि हम कहाँ रैखिक रूप crossfade सुनते हैं।

है कि एक संकेत perceptually, स्लाइडर स्थिति (के) की एक रेखीय समारोह के रूप में प्रबलता में कमी, जबकि अन्य संकेत perceptually स्लाइडर स्थिति रैखिक कार्य, के रूप में प्रबलता में वृद्धि करनी चाहिए जब आपके व्युत्पन्न crossfade लागू करने चाहिए। जबकि इसका आपका व्युत्पन्न बहुत स्पष्ट लगता है, दुर्भाग्यवश, स्थिरता के मामले में आपके सूखे और गीले सिग्नल को मिश्रित करने का सबसे अच्छा तरीका नहीं हो सकता है - अक्सर, स्लाइडर स्थिति के बावजूद बराबर आउटपुट जोर को बनाए रखना, शूट करने के लिए बेहतर चीज है। किसी भी मामले में, यह देखने के लिए कुछ अलग-अलग कार्यों की कोशिश करने लायक हो सकता है कि सबसे अधिक उपयोग करने योग्य और सुसंगत क्या है।

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