Definition von Zahlen nach Gehör

    In diesem Artikel werde ich über ein einfaches Verarbeitungsprogramm sprechen , das auf das Mikrofon „hört“ und die im Tonmodus auf dem Telefon gewählten Nummern bestimmt.

    Vorwort


    Die Universität war in der Vergangenheit vor etwa zehn Jahren geblieben, aber die ganze Zeit habe ich keine nostalgischen Gefühle und Sehnsüchte nach Wissenschaft hinterlassen. Es besteht das Gefühl, dass ich etwas nicht beendet habe oder dass wir etwas zu schnell ausgeführt haben. Glücklicherweise fühlen Sie sich auf modernen Plattformen Ihr ganzes Leben lang wie ein Student.

    Das Labor Nr. 3 aus dem Kurs „Grundlagen der digitalen Signalverarbeitung“ LETI auf der opensu- Plattform hat mich dazu veranlasst, diesen Artikel zu schreiben .

    Arbeitsprinzip


    Wenn Sie auf die Telefontasten (oder hier ) klicken , können Sie hören, dass jedes Zeichen eine eigene Frequenz oder sogar zwei hat und diese Kombination ein Zeichen eindeutig codiert.
    Unsere Aufgabe ist es, die zwei stärksten Frequenzen aus dem verrauschten Signal zu extrahieren und zu überprüfen, ob sie ein Zeichen gemäß der Tabelle codieren:
    1209 Hz1336 Hz1477 Hz1633 Hz
    697 Hz123A
    770 Hz456B
    852 Hz789C
    941 Hz*0#D

    Ich habe die Verarbeitung als Es enthält alle Grundelemente für die Arbeit mit einem Mikrofon und einer Fourier-Transformation.

    Der Algorithmus lautet wie folgt:

    • Stellen Sie sich das Signal als Spektrum vor, fft.analyze gibt ein float [] -Array an uns zurück
    • finden Sie die Referenznummer n 1 , die der maximalen Amplitude entspricht
    • Zerul ihn und alles in einer Nachbarschaft (mit Bedacht gewählt), um nicht 2 nahe Frequenzen zu fangen
    • wir finden die 2. Bezugszahl n 2 , die dem Maximum der verbleibenden Amplituden entspricht
    • mit den Zahlen n 1 und n 2 finden wir die entsprechenden Frequenzen nach der Formel:

      $ f_n = f_dn / N $

      wobei f n die Abtastfrequenz ist: 44100 Hz, N die Anzahl der Abtastungen (Grad zwei)
    • Wir bestimmen, welche Frequenzen aus der Tabelle den gefundenen entsprechen (mit einer Toleranz von ± 35 Hz) und finden das gewünschte Symbol

    Was ist passiert?


    Sie können das Programm in Form einer eigenständigen JAR-Datei von der Quelle aus erstellen und ausführen. Sie können das Telefon oder diese Seite verwenden , um Sounds zu generieren .



    Den nächsten Schritt möchte ich gleich auf Arduino implementieren.

    Jetzt auch beliebt: