-
-
Erfahrener Benutzer
Robotik Visionär
Ein etwas besserer Link im Wikipedia, aber leider nur auf Englisch:
http://en.wikipedia.org/wiki/Pitch_detection_algorithm
Die Frequenzmessung ist leider kein so gängiges Problem in der digitalen Signalverarbeitung. Entsprechend findet man da oft nicht viel in normalen Büchern.
Hinzu kommt ja auch noch, das ein AVR µC nicht gerade super schnell ist, und eher wenig RAM hat. Dadurch fallen einige der Algorithmen schon wieder raus.
Das Verfahren das ich oben angedeutet habe, hab ich mal am PC programmiert, und es sollte vom Speicher und Rechenzeit auch zum µc passen. Das Programm hat sehr gut funktioniert. Im Web kommte ich allerdings auch schon damals keine Referenz darauf finden.
Die Idee ist eigentlich ganz einfach: Durch multipilkatives mischen wird die unbekannte Frequenz auf eine sehr kleine Frequenz um 0 verschoben.
Durch 2 Mischkanäle mit 90 Grad Phase hat man dann ein Complexes Signal mit Real und Imaginärteil. Die Frequenz kann in dieser Darstellung negativ und positiv sein. Ein Tiefpaßfilter kann so andere Frequenzen ausblenden und die Datenrate kann reduziert werden, sodaß die Rechnung danach nicht mehr so Zeitkritisch ist.
Für jeden Zeitpukt kann aus Real-und Imaginärteil über den ARCTAN die Phase bestimmt werden, und aus der Geschwindigkeit mit der sich die Phase ändert kreigt man die Frequenz. Zum Glück brauch man diese Rechnung nur noch mit einer sehr niedreigen Abtastrate ( z.B. 20/s), denn der Arcustangens ist eine ausgesprochen langsam zu berechnende Funktion.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen