पर दो वर्गों के योग की वर्ग रूट के लगभग अनुमान लगाकर मैं मजेदार के लिए 8-बिट माइक्रोकंट्रोलर (एचसीएस 08) पर असेंबली में एक एफएफटी एल्गोरिदम लागू करने पर काम कर रहा हूं। एक बार एल्गोरिदम पूरा हो जाने के बाद, मेरे पास 8-बिट वास्तविक/काल्पनिक जोड़े की एक सरणी होगी, और मैं इन मानों में से प्रत्येक का परिमाण खोजना चाहूंगा। यही है, अगर एक्स जटिल है, मैं खोजने के लिएमाइक्रोकंट्रोलर
|x| = sqrt(Re{x}^2 + Im{x}^2)
अब मैं एक 16-बिट रजिस्टर और एक 8 बिट रजिस्टर मेरे पास उपलब्ध है चाहता हूँ। मैंने सोचा कि उन्हें केवल स्क्वायर करना, उन्हें जोड़ना, और परिणाम की वर्ग जड़ लेना, लेकिन यह एक समस्या है: दो 8-बिट संख्याओं के वर्गों के योग का अधिकतम संभव मूल्य ~ 130k है, जो कि उससे बड़ा है 16-बिट रजिस्टर अधिकतम मूल्य (65.5k) हो सकता है।
मैं एक सबराउटिन के साथ आया जो 16-बिट संख्या के पूर्णांक वर्ग रूट की गणना करता है, जो अच्छी तरह से काम करता प्रतीत होता है, लेकिन स्पष्ट रूप से मुझे उन मानों के साथ काम करने की गारंटी नहीं है जो 16 बिट्स में फिट होंगे। मेरी सोच अभी यह है कि एक एल्गोरिदम है जो मुझे सीधे चाहिए जो मुझे चाहिए, लेकिन मुझे कुछ भी नहीं मिल रहा है। किसी भी विचार की बहुत प्रशंसा की जाएगी।
संक्षेप में: कहें कि मेरे पास दो 8-बिट घटकों वाला वेक्टर है, और मैं वेक्टर की लंबाई ढूंढना चाहता हूं। वास्तव में वर्गों और वर्ग की जड़ों की गणना किए बिना मैं इसका अनुमान कैसे लगा सकता हूं?
धन्यवाद!
कॉरडिक कलन विधि का उपयोग फ़ंक्शन (http://en.wikipedia.org/wiki/CORDIC) कुछ नए वेक्टर '' (या समतुल्य करने के लिए एक वेक्टर '' को घुमाने के लिए इस्तेमाल किया जा सकता धीरे-धीरे '<0,y1>'। 'x1' (या' y1') मूल वेक्टर की परिमाण देता है, और कॉर्डिक को बिना किसी गुणा के कार्यान्वित किया जा सकता है। हालांकि मैंने इसे कभी नहीं किया है, और मुझे नहीं पता कि यह कितना मुश्किल है। –
mtrw
क्या यह किसी भी मौके से ऑडियो के लिए है? क्या आप डीबी मूल्य प्राप्त करने के लिए बाद में लॉग 10 की गणना करने जा रहे हैं? –
उद्देश्य पर निर्भर करता है: आप लंबाई की जरूरत है, वहाँ कोई दूसरा रास्ता नहीं है तो गणना करने के लिए है, लेकिन जब आप rellly आदर्श की जरूरत है (जो आमतौर पर लंबाई है), तो आप, कि डिफ़ॉल्ट एल 2 आदर्श के बजाय एक और नोर्मा इस्तेमाल कर सकते हैं जैसे मैनहट्टन दूरी (= | वास्तविक | + | कल्पना |)। – flolo