تحويل موجة جيبية إلى موجة مثلثة


لأسباب، لا أستطيع ببساطة توليد موجة مثلثية بالتردد الذي أحتاجه، لكن لدي موجة جيبية وموجة مربعة عند هذا التردد.

لا أستطيع الاحتفاظ بحالة إضافية.

أحتاج إلى خوارزمية لحساب موجة مثلثية من موجة جيبية أو موجة مربعة

موجة مثلثة – HandWiki[^]

يحتوي هذا على شكليات رياضية، لكنني لا أفهم الشكليات الرياضية.

كنت آمل أن يتمكن شخص ما من تطبيق المفاهيم ذات الصلة الواردة فيه على بعض التعليمات البرمجية. لا يهمني أي لغة، طالما أنها قابلة للنقل إلى شيء آخر.

ما حاولت:

لقد حاولت توليد موجة المثلث بنفسها، ولكنني بحاجة إلى توليدها في أجزاء في كل مرة والحفاظ على الطور مستمرًا بين القطع حتى لا أحصل على نقرات. لدي موجة جيبية تتتبع باستخدام عدد صحيح متزايد مضروبًا في قيمة دلتا بناءً على التردد، لكن هذه ليست حركة لأعلى ولأسفل – إنها أشبه بسن المنشار إذا قمت بتطبيق مودولو عليها، ولكن مرة أخرى، أحتاج المثلث.

الحل 2

إذا كان لديك موجة مربعة وتعرف اتساعها وفترة دورانها، ألا يمكنك إنشاء موجة مثلثة من تلك الموجة باستخدام هندسة بسيطة؟
موجة مثلثة – HandWiki[^]

إذا تمت مزامنة نقطة بداية صعود TW مع صعود SW، فكل ما تفعله هو رسم القطر من BL إلى TR، ثم TL إلى BR وهو أمر تافه ويجب أن يكون سريعًا وموفرًا للمساحة.

إذا تم “تدرج” المزامنة وفقًا للرسم التخطيطي الموجود في الرابط، فهذه مجرد نقطة بداية إزاحة تحتاج إلى الاهتمام بها – مرة أخرى هندسة بسيطة.

الحل 1

من ويكيبيديا:

من الممكن تقريب موجة مثلثية بتوليف إضافي عن طريق جمع التوافقيات الفردية للأساسية مع ضرب كل التوافقيات الفردية الأخرى بـ −1 (أو، على نحو مكافئ، تغيير مرحلتها بـ π) وضرب سعة التوافقيات بواحد على المربع من رقم الوضع الخاص بهم ، ن (وهو ما يعادل واحدًا على مربع ترددها النسبي إلى الأساسي).

هذه خوارزمية واضحة، وتقول المقالة إنها تتقارب في موجة مثلثية بسرعة كبيرة. (يحرر: الأساسية هي الموجة الجيبية، ولكن ربما تعرف ذلك.)

الحل 4

ربما سأختار نهجًا قائمًا على الجدول.
ما عليك سوى تخزين قيم الوظيفة التي تريدها في مجال الاهتمام.
يؤدي هذا عادةً إلى تنفيذ أسرع دون أي مشاكل في التوقيت، على حساب بعض مساحة التخزين.

コメント

タイトルとURLをコピーしました