साइन लहर बनाने के सर्वोत्तम तरीकों में से एक पुनरावर्ती अद्यतन के साथ एक जटिल चरण का उपयोग करना है। अर्थात
z[n+1]=z[n]Ω
जहाँ z [n] फ़ैसर है, , साथ ही रेडियों में ऑसिलेटर की कोणीय आवृत्ति और नमूना सूचकांक है। दोनों वास्तविक और काल्पनिक भाग साइन वेव्स हैं, वे 90 डिग्री फेज से बाहर हैं। बहुत सुविधाजनक है अगर आपको साइन और कोसाइन दोनों की आवश्यकता है। एक एकल नमूना गणना के लिए केवल 4 गुणकों की आवश्यकता होती है और 4 को जोड़ता है और पाप () कॉस () या लुकअप तालिकाओं वाली किसी भी चीज़ की तुलना में बहुत सस्ता है। संभावित समस्या यह है कि संख्यात्मक सटीक मुद्दों के कारण समय के साथ आयाम बढ़ सकता है। हालांकि इसकी मरम्मत के लिए काफी सीधा आगे है। मान लीजिए कि । हम जानते हैं कि में एकता परिमाण होना चाहिए, अर्थात Ω=exp(jω)ωnz[n]z[n]=a+jbz[n]
a⋅a+b⋅b=1
इसलिए हम हर बार एक बार जांच कर सकते हैं कि क्या अभी भी मामला है और उसके अनुसार सही है। सटीक सुधार होगा
z′[n]=z[n]a⋅a+b⋅b−−−−−−−−−√
यही कारण है कि एक अजीब गणना है लेकिन जब से बहुत एकता के करीब आप अनुमान लगा सकता है है के चारों ओर एक टेलर विस्तार के साथ शर्तों और हम मिलa⋅a+b⋅b1/x−−√x=1
1x−−√≅3−x2
इसलिए सुधार सरल हो जाता है
z′[n]=z[n]3−a2−b22
इस सरल सुधार को हर कुछ सौ नमूनों को लागू करने से ऑसिलेटर हमेशा के लिए स्थिर रहेगा।
आवृत्ति को लगातार गुणा करने के लिए गुणक डब्ल्यू को तदनुसार अद्यतन करने की आवश्यकता होती है। यहां तक कि गुणक में एक गैर-निरंतर परिवर्तन एक निरंतर थरथरानवाला फ़ंक्शन बनाए रखेगा। यदि फ़्रीक्वेंसी रैंपिंग की आवश्यकता है तो अपडेट को या तो कुछ चरणों में तोड़ा जा सकता है या आप एक ही थरथरानवाला एल्गोरिथ्म को मल्टीप्लायर को स्वयं अपडेट करने के लिए उपयोग कर सकते हैं (क्योंकि यह एक एकता लाभ जटिल चरण है)।