برنامج المرحلة مقفل حلقة سبيل المثال رمز المطلوبة

StackOverflow https://stackoverflow.com/questions/39485

  •  09-06-2019
  •  | 
  •  

سؤال

لا أحد يعرف من أي مكان يمكنني العثور على الرمز الفعلي أمثلة من البرامج مقفلة الطور. (SPLLs) ?

أحتاج SPLL التي يمكن أن تتبع PSK إشارة التضمين الذي هو في مكان ما بين 1.1 كيلو هرتز و 1.3 كيلو هرتز.بحث جوجل يجلب الكثير من الأوراق العلمية وبراءات الاختراع ولكن لا شيء للاستعمال.حتى رحلة إلى مكتبة الجامعة التي تحتوي على رف كامل من الكتب على الأجهزة PLL هناك سوى فصل واحد في كتاب واحد على SPLLs وأن نظرية أكثر منها عملية.

شكرا على وقتك.

إيان

هل كانت مفيدة؟

المحلول

هذا هو التصميم التفاعلي حزمة لتصميم الرقمي (أيالبرمجيات) المرحلة مغلق حلقات (PLLs).في ملء النموذج ثم اضغط على الزر `إرسال" ، و PLL سيتم تصميم لك.

الرقمية التفاعلية المرحلة مقفل حلقة التصميم

هذا وسوف تبدأ, ولكن حقا تحتاج إلى فهم أساسيات PLL التصميم جيدا بما فيه الكفاية لبناء بنفسك من أجل استكشاف ذلك في وقت لاحق - وهذا هو مجال معالجة الإشارات الرقمية ، في حين لم السحر الأسود فإنه بالتأكيد سوف تعطيك تشغيل مقابل المال الخاص بك أثناء التصحيح.

-آدم

نصائح أخرى

أعتقد أن هذا هو على الارجح في وقت متأخر جدا لمساعدتك (ما فعلت?) ولكن قد تساعد الرجل القادم.

وهنا لعبت الغولف سبيل المثال برنامج مرحلة غير الساحلية حلقة أنا فقط كتبت في سطر واحد من ج ، والتي سوف الغناء جنبا إلى جنب مع كنت:

main(a,b){for(;;)a+=((b+=16+a/1024)&256?1:-1)*getchar()-a/512,putchar(b);}

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

إذا كنت تغذية 8-بت خطي عينات من stdin ، فإنه سيتم إنتاج 8 بت عينات من موجة سن المنشار محاولة لتعقب واحد اوكتاف أعلى على stdout.في 8000 عينة في الثانية يتتبع الترددات في حي 250Hz فوق باء أدناه الأوسط C.على لينكس يمكنك القيام بذلك عن طريق كتابة arecord | ./pll | aplay.انخفاض 9 قطع من b هي مذبذب (ما قد يكون VCO في تنفيذ الأجهزة) ، الذي يولد موجة مربعة (1 أو -1) التي يحصل مضروبا الإدخال الموجي (getchar()) لإنتاج الناتج من المرحلة كاشف.أن الناتج ثم تمرير منخفض تصفيتها في a لإنتاج ممهدة المرحلة إشارة الخطأ الذي يستخدم لضبط وتيرة التذبذب b لدفع a نحو 0.التردد الطبيعي مربع موجة, عندما a == 0, ، b إلى زيادة بنسبة 16 في كل عينة ، والتي الزيادات قبل 512 (دورة كاملة) كل 32 العينات.32 العينات في 8000 عينة في الثانية هي 1/250 من الثانية ، والذي هو السبب في التردد الطبيعي هو 250Hz.

ثم putchar() يأخذ منخفضة 8 بت b, التي تشكل موجة سن المنشار في 500Hz أو نحو ذلك ، و ينفث بها والإخراج دفق الصوت.

هناك العديد من الأشياء المفقودة من هذا المثال البسيط:

  1. فإنه لا يوجد لديه جيدة طريقة للكشف عن قفل.إذا كان لديك الصمت, الضوضاء, أو قوية نقية 250Hz الإدخال لهجة ، سيكون تقريبا صفر و b سوف تتأرجح في التردد الافتراضي.اعتمادا على التطبيق الخاص بك, قد ترغب في معرفة ما إذا كنت قد وجدت إشارة أو لا!Camenzind اقتراح في الفصل 12 من تصميم التناظرية رقائق هي إطعام الثانية "مرحلة الكاشف" 90° من مرحلة من المرحلة الحقيقية كاشف;في الحفر الناتج يعطيك السعة إشارة لقد نظريا مقفل على.

  2. التردد الطبيعي مذبذب ثابت ، لا الاجتياح.على القبض على مجموعة من PLL, الفاصل الزمني من الترددات التي سوف تلاحظ وجود التذبذب إذا لم يكن مقفل حاليا على واحد, جدا ضيق ؛ لها قفل مجموعة, والتي سوف تتراوح من أجل متابعة الإشارة مرة واحدة انها مغلقة, هو أكبر من ذلك بكثير.بسبب هذا, فإنه من الشائع أن اكتساح PLL تردد كل مجموعة حيث يمكنك أن تتوقع أن تجد إشارة حتى تحصل على القفل ثم وقف كاسحة.

وقد لعبت الغولف النسخة أعلاه هو تقليل من أكثر قابلية للقراءة سبيل المثال برنامج مرحلة غير الساحلية حلقة في ج التي كتبت اليوم الذي يفعل قفل الكشف ولكن لا الاجتياح.فإنه يحتاج حوالي 100 وحدة المعالجة المركزية دورة في إدخال العينة في PLL على ذرة وحدة المعالجة المركزية في النت.

أعتقد أنه إذا كنت في الوضع الخاص بك ، وأود أن تفعل ما يلي (وبصرف النظر عن الأمور واضحة مثل البحث عن شخص يعرف أكثر عن معالجة الإشارات مما أفعل ، وتوليد بيانات الاختبار).ربما لن تصفية downconvert الإشارة في الواجهة الأمامية ، حيث إنه في مثل هذا التردد المنخفض بالفعل.Downconverting إلى 200 هرتز-400Hz الفرقة لا يبدو ضروريا.وأظن أن PSK سيتم طرح بعض المشاكل الجديدة ، حيث إن الإشارة فجأة تحولات المرحلة بنسبة 90 درجة أو أكثر ، تفقد المرحلة قفل.ولكن أظن أن هذه المشاكل سوف يكون من السهل حل و هو بالكاد untrodden الإقليم.

وقد Matlab مع Simulink?هناك PLL الملفات التجريبي المتاحة في Matlab المركزي هنا.Matlab هو رمز الجيل قدرات قد تحصل من هناك إلى PLL مكتوب في C.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top