In diesem Artikel werde ich über ein einfaches
Verarbeitungsprogramm sprechen, das das Mikrofon „abhört“ und die im Tonmodus auf dem Telefon gewählten Nummern ermittelt.
Vorwort
Die Universität ist in der Vergangenheit vor ungefähr zehn Jahren geblieben, aber die ganze Zeit habe ich keine nostalgischen Gefühle und keine Sehnsucht 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
openedu- Plattform hat mich dazu veranlasst, diesen Artikel zu schreiben.
Arbeitsprinzip
Wenn Sie die Tasten des Telefons (oder
hier ) drücken, können Sie hören, dass jedes Zeichen seine eigene Frequenz hat, oder sogar zwei, und diese Kombination codiert ein Zeichen eindeutig.
Unsere Aufgabe ist es, die beiden stärksten Frequenzen aus dem verrauschten Signal zu extrahieren und zu überprüfen, ob sie ein Zeichen gemäß der Tabelle codieren:
| 1209 Hz | 1336 Hz | 1477 Hz | 1633 Hz |
---|
697 Hz | 1 | 2 | 3 | A. |
---|
770 Hz | 4 | 5 | 6 | B. |
---|
852 Hz | 7 | 8 | 9 | C. |
---|
941 Hz | * * | 0 | # | D. |
---|
Ich habe die Verarbeitung verwendet, als Es verfügt über alle Grundelemente für die Arbeit mit einem Mikrofon und einer Fourier-Transformation.
Der Algorithmus ist wie folgt:
- Stellen Sie sich das Signal als Spektrum vor. Fft.analyze gibt uns ein float [] -Array zurück
- Finden Sie die Referenznummer n 1 , die der maximalen Amplitude entspricht
- Zerul ihn und alles in einer bestimmten Nachbarschaft (mit Bedacht gewählt), um nicht 2 nahe Frequenzen zu fangen
- wir finden die 2. Referenznummer n 2 , die dem Maximum der verbleibenden Amplituden entspricht
- durch die Zahlen n 1 und n 2 finden wir die entsprechenden Frequenzen nach der Formel:
wobei f n - Abtastfrequenz: 44100 Hz, N - Anzahl der Abtastwerte (Zweierpotenz)
- 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 eines eigenständigen JARs von der
Quelle aus erstellen und ausführen. Sie können das Telefon oder diese
Seite verwenden , um Sounds zu generieren.

Im nächsten Schritt möchte ich dasselbe auf Arduino implementieren.