في هذه المقالة سأتحدث عن برنامج
معالجة بسيط "يستمع" إلى الميكروفون ويحدد الأرقام التي يتم الاتصال بها على الهاتف في وضع النغمة.
مقدمة
بقيت الجامعة في الماضي قبل حوالي عشر سنوات ، لكن طوال هذا الوقت لم أترك مشاعر الحنين والشوق إلى العلم. هناك شعور بأنني لم أنهي شيئًا ، أو أننا ركضنا شيئًا سريعًا جدًا. لحسن الحظ ، تجعلك المنصات الحديثة تشعر وكأنك طالب طوال حياتك.
المختبر رقم 3 من الدورة التدريبية "أساسيات معالجة الإشارات الرقمية" LETI على منصة
openu دفعتني إلى كتابة هذه المقالة.
مبدأ العمل
إذا قمت بالضغط على أزرار الهاتف (أو
هنا ) ، يمكنك سماع أن كل حرف له تردده الخاص ، أو بالأحرى اثنين ، وهذه التركيبة تشفر حرفًا بشكل فريد.
مهمتنا هي استخراج أقوى ترددين من الإشارة الصاخبة والتحقق مما إذا كانا يشفران حرفًا ما وفقًا للجدول:
| 1209 هرتز | 1336 هرتز | 1477 هرتز | 1633 هرتز |
---|
697 هرتز | 1 | 2 | 3 | أ |
---|
770 هرتز | 4 | 5 | 6 | ب |
---|
852 هرتز | 7 | 8 | 9 | ج |
---|
941 هرتز | * | 0 | # | د |
---|
استخدمت المعالجة ، مثل لديها كل البدائل للعمل مع ميكروفون وتحويل فورييه.
الخوارزمية هي كما يلي:
- تخيل الإشارة كطيف ، سيعيد fft.analyze مصفوفة عائمة [] إلينا
- أوجد الرقم المرجعي n 1 المقابل للسعة القصوى
- Zerul له وكل شيء في حي معين (يتم اختياره بحكمة) ، حتى لا يلتقط ترددان قريبان
- نجد الرقم المرجعي الثاني n 2 المطابق لأقصى سعة متبقية
- بالأرقام n 1 و n 2 نجد الترددات المقابلة وفقًا للصيغة:
حيث f n - تردد الاعتيان: 44100 هرتز ، N - عدد العينات (قدرة عينين)
- نحدد أي تردد من الجدول يتوافق مع تلك التي تم العثور عليها (مع بعض التسامح ± 35 هرتز) ونجد الرمز المطلوب
ماذا حدث
يمكنك بناء وتشغيل البرنامج في شكل برطمان مستقل من
المصدر ، يمكنك استخدام الهاتف أو هذه
الصفحة لتوليد الأصوات.

الخطوة التالية التي أريد تنفيذها على Arduino.