Hallo, ich würde gerne eine Bass- bzw. Takt-Erkennung für eine Lauflicht-Musiksteuerung bauen. Da ich das Audiosignal sowieso in digitaler Form benötige, wird es über einen AD-Eingang mit ca. 8kHz gesampelt. Ich würde aus dem gesampelten Signal gerne die Taktschläge heraushören, möglichst simpel, ohne gleich eine FFT-Analyse oder komplexe digitale Filter einzusetzen. Wenn nun ein Bassschlag kommt (ich schätze der liegt im Bereich <100Hz?) müsste doch die Amplitude für mehrere Samples auffällig hoch sein. Ich habe versucht einen Zähler zu implementieren, z.B. wenn für 20 Abtastwerte hintereinander die Amplitude >75% des ADC-Bereichs ist. Danach gibt es eine Mindest-Totzeit. Das Ergebnis ist gar nicht mal so schlecht, es gibt aber einige Fehlerkennungen (Taktschläge wo gar keine sind). Kennt jemand eine einfache Lösung, die ein besseres Ergebnis liefert? Danke Sven
@ Fhutdhb Ufzjjuz (weinbauer)
>FFT und Schwellwert wo ist das Problem?
CPU-Last und Komplexität?
Danke für das Stichwort, IIR klingt gut. Damit lässt sich ja äußerst simpel und effizient ein Tiefpass 1. Ordnung bauen. Vermutlich wird man noch eine Hysterese und eine Totzeit nachschalten müssen, um ein schönes Triggersignal zu erhalten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.