Hi, ich habe ein Audiosignal mit 8 kHz Bandbreite, sample das mit 32 kHz und möchte das dann gerne digital wieder downsamplen auf 8 kHz. Wie digitale Filter grundlegend funktionieren ist nicht mein Problem, aber habt ihr vielleicht Tipps, welche Form sich am besten und effizientesten implementieren lässt? Meine Plattform ist ein 16-bit Mikrokontroller mit Hardwaremultiplizierer. Irgendwie Beispiele oder Literatur wären sonst auch schön. Oder gibt es evtl. irgendwelche standardisierten Filter von der ITU oder ähnlichen Normungsbehörden. Vielen Dank schonmal, Michael
Ich verstehe die Frage wahrscheinlich nicht recht, aber was willst du genau wissen? Wenn du weisst wie Filter funktionieren und warum man filtert bevor man die Rate veringert (bzw. nachdem man die Rate erhöht), dann sollte es kein Problem mehr sein, effiziente Implementierungen der Filter für dein Target zu finden. Das wegwerfen von Samples (bzw. Nullen hinzufügen) wird dir wahrscheinlich keine Probleme machen ;-) Klär' mich bitte auf.
Wenn das Signal sowieso nur Frequenzanteile bis 8kHz enthält brauchst Du gar nicht mehr filtern sondern verwendest einfach nur jedes 4. Sample - fertig. (Und sollte es doch ein paar Anteile über 8kHz geben wird es halt ein paar Aliassignale geben die aber vielleicht gar nicht so stören - 8 kHz sind ja wahrlich kein HiFi Audio) Viele Grüße, Martin L
Wenn die Verhältnisse feststehen (32kHz / 8kHz) würde ich zu einem FIR polyphasen Filter mit ausreichender Anzahl an subsamples greifen. Zwischen den Subsamples dann linear interpolieren. Als Literatur fällt mir der "Proakis", "Digital Signal Processing" ein, dort ist diese Filtervariante auch gut beschrieben. Und Ja, auch beim Upsamplen von 8kHz auf 32kHz muss nach dem Einfügen der Nullen selbstverständlich gefiltert werden ==> nennt sich Anti-Image Filter.
Hi Michael, fuer alle Audiospielereien verwende ich das Kommandozeilentool sox. (http://sox.sourceforge.net). Da sollte alles aus Anwendungssicht drin sein. Fuer downsampling-read-the-source-fans sollte resample.c einschlaegig sein. -Hans
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.