هذا برنامج صغير يحلل تسجيل ساعة أو ساعة ويخبرك بمدى بطيئه أو سريع. يمكنك استخدام هذا لتنظيم ساعة ميكانيكية باستخدام ، على سبيل المثال ، هاتف محمول لتسجيل وضع علامة عليه.
$ python fourier.py recording.wav التخمين الأولي: 6.0 p/m 0.00606 هرتز تخمين محدث: 5.9998549 P/M 1.88E-05 هرتز الخطأ هو -2.1 ثانية في اليوم
يجب أن يكون recording.wav
الملف. wav ملف صوت أحادي. يحتوي هاتفي الخلوي على برنامج "مذكرة صوتية" يسجل الصوت باستخدام الميكروفون المدمج. إنه حساس للغاية لهذا الغرض.
بتسجيل جيد الجودة ، سترى شيئًا كهذا:
تعرض اللوحة العلوية آخر 10 ثوانٍ في التسجيل ... وهذا يتيح لك تقييم جودة بياناتك. هنا ، يمكنك رؤية القراد الفردية بوضوح ، وأن هذه الساعة تتجه 6 مرات في الثانية. من المحتمل أن تكون نسبة الإشارة إلى الضوضاء 10 شهرية أو نحو ذلك في هذا المثال.
تُظهر المؤامرة اليسرى السفلية تحويل فورييه للتسجيل ، حيث تم تكبيرها إلى حدود 0.5-10 هرتز. يتوافق الارتفاع في هذه المؤامرة مع تردد علامة الساعة. إنها قريبة من 6 قوائم/في الثانية ، حيث يجب أن تكون ... ولكن ما مدى قربه؟
تُظهر المؤامرة اليمنى السفلية ملاءمة للذروة ، وتستخدم لتقدير التردد إلى الدقة العالية. تتطابق هذه الدقة بسهولة مع استقرار تردد الساعة الميكانيكية (التي تختلف قليلاً بسبب الاختلافات في درجة الحرارة والاتجاه ، من بين أشياء أخرى).
بتسجيل منخفض الجودة (جدًا) ، سترى بدلاً من ذلك شيئًا كهذا:
هنا ، يتم دفن القراد الفردية في الضوضاء ... لكن البرنامج لا يزال يختارها! أنت بحاجة إلى تسجيل أطول للوصول إلى نفس المستوى من الدقة.
لقد اختبرت البرنامج باستخدام الإشارات الاصطناعية أنشأت عدة طرق مختلفة. يتم تلخيص النتائج في المؤامرة أعلاه.
تقع عدم اليقين الكسري في مقاييس القياس بطول التسجيل إلى قوة (3/2). يعتمد ذلك أيضًا على جودة القياس. لذا ، بينما تريد أن تجعل التسجيل جيدًا قدر الإمكان ، فقد يكون من الأسهل تعويض الجودة بكمية. أجد أن 5 دقائق من البيانات المجنونة تصل إلى 30 ثانية من البيانات المثالية. لكن ترك ساعتك وهاتفك بمفردك في درج جورب لمدة 5 دقائق أسهل بكثير من الخروج وشراء ميكروفون أفضل. لذلك الأمر متروك لك.
إذا كانت البيانات سيئة للغاية بحيث لا يمكنك سماع القراد في التسجيل ، فقد تكون في مشكلة. حاول مرة أخرى في مكان أكثر هدوءًا ، أو ابحث عن ميكروفون أفضل. (وبطبيعة الحال ، تأكد من ساعتك في الواقع.)
يوضح الخط الأسود المنقط قياسات ساعة حقيقية. كنت أرغب في ضبطه لتشغيله ببضع ثوان في اليوم ووجدت تسجيل 30 ثانية أو دقيقة واحدة كانت كافية لهذه المهمة. يمكنك دفع شريط المنظم ، وتسجيله لمدة دقيقة ، ودفع مرة أخرى ، وهكذا حتى تحصل على إجابة تسعد بها. حصلت على تنظيمها في غضون حوالي 2 ثانية في اليوم ، والتي كانت هدفي. هذا يترجم إلى خطأ يقل عن مائة من القراد على مدار فترة التسجيل ، وهو أمر مثير للإعجاب للغاية ، على ما أعتقد!
تعرض المؤامرة أعلاه اختبارًا باستخدام إشارة "علامة" اصطناعية تم إنشاؤها باستخدام الجرأة. هذا يدل على أن عدم اليقين الذي أبلغ عنه البرنامج هو تمثيل مفيد للغاية لعدم اليقين الحقيقي "1-σ".
الكود واضح ومباشر ، ومعظم الجهد المبذول لجعله يعمل بشكل متوقع دون أي تدخل بشري. I Fourier تحويل إشارة الدخل لقياس تردد الذروة. قبل التحول ، ضربت الإشارة بنافذة غوسية ... اخترت شكل النافذة بحيث يكون لذروات التردد شكل غاوسي بعرض حوالي 3 صناديق تردد. يمكن أن يكون هذا لائقًا بدقة مع ملف تعريف غاوسي ، مما يؤدي إلى تقدير جيد للتردد الحقيقي. يمكنك إلقاء نظرة على المؤامرات للتعرف على مدى نجاحها.
أستخدم وظيفة Scipy لتحديد القمم تلقائيًا ، والتي يبدو أنها تعمل بشكل جيد.
وأحاول تحديد طول "الأمثل" لـ FFT. لا توجد مشاكل معها حتى الآن.
النتائج ليست حساسة لتردد أخذ العينات ، ما لم تكن منخفضة للغاية لحل الصوت "الموقوت" على مدار الساعة. لكن البرنامج يعمل بسرعة كبيرة ، لذلك لا يوجد سبب لعدم استخدام معدل أخذ العينات 44.1 كيلو هرتز وهو قياسي إلى حد ما.