Forum: Digitale Signalverarbeitung / DSP / Machine Learning Welche Filter zum Audio-down- bzw. -upsampling? Art und Größe?


von Kai G. (runtimeterror)


Lesenswert?

Bezug nehmend auf meinen Thread: 
Beitrag "µC-getriebene Frequenzweiche für Digitalverstärker"

Ich habe beim folgenden Problem irgendwie eine Denkblockade:

Das Audiosignal wird mit 100 kHz (96 kHz gerundet) abgetastet. Um den 
Frequenz- und Phasengang anzupassen, möchte ich einen 1000 TAPS (1024 
gerundet) FIR-Filter einsetzen. Den unteren Frequenzbereich kann ich 
dann allerdings nur noch mit 100 Hz (100 kHz / 1000) auflösen, was mir 
zumindest für den Bass- und Subbass-Bereich zu grob ist.

D.h. ich muss vor dem Filtern das Signal downsamplen und anschließend 
wieder upsamplen. Ich wollte da folgende Stufen vorsehen: 1x, 2x, 4x, 
8x, 16x

16x würde mir eine Frequenzauflösung von ca. 6 Hz ermöglichen was für 
alle normalen Anwendungsfälle reichen sollte.

Ich tue mich gerade schwer darin abzuschätzen, wie breit die Filter für 
das Down- und Upsampling als FIR ausgelegt sein müssten. Wie kann man 
das abschätzen?

Was mir auch noch eingefallen ist: Macht es vielleicht mehr Sinn zum 
Down- und Upsampling einen IIR-Filter einzusetzen? Die dadurch erzeugten 
Abweichungen im Phasengang ließen sich ja mit dem FIR-Filter dazwischen 
wieder ausbügeln, oder wäre dessen zeitliche Auflösung zu grob dafür?

Vielen Dank für einen Wink in die richtige Richtung.

Kai

von Detlef _. (detlef_a)


Lesenswert?

>>Den unteren Frequenzbereich kann ich dann allerdings nur noch mit 100 Hz >>(100 
kHz / 1000) auflösen, was mir zumindest für den Bass- und >>Subbass-Bereich zu 
grob ist.

Nein, Frequenz/Phasengang eines FIR-Filters ist kontinuierlich, da 
darfst Du ne beliebige Frequenz reinstecken und es kommt was raus. 
Möglicherweise schmeist Du das mit dem Abstand der Spektrallinien einer 
FFT durcheinander. Es gibt nichts down/upzusampeln: Du hast Deine 96ks/s 
und Dein 1000 Tap FIR, das ist alles schön. Es gibt eigentlich nur zwei 
Fragen:

Kann Deine Hardware das Filter rechnen?
Kann ein 1000 Tap FIR das leisten, was Du willst?

Cheers
Detlef

von Kai G. (runtimeterror)


Lesenswert?

>Möglicherweise schmeist Du das mit dem Abstand der Spektrallinien einer
>FFT durcheinander.
Gut möglich - ich hatte denen ähnliche Eigenschaften unterstellt.

>Kann Deine Hardware das Filter rechnen?
Gibt noch keine Hardware - nur jede Menge Papier mit Rechnungen drauf :)

>Kann ein 1000 Tap FIR das leisten, was Du willst?
Wenn der im unteren Frequenzbereich noch gut genug auflöst, dann ja. 
Welchen Nachteil hat es denn dann, wenn man weniger Taps verwendet?

Wofür verwendet man dann überhaupt das Downsampling bei digitalen 
Filtern im Bassbereich?

Danke und Gruß
Kai

von Detlef _. (detlef_a)


Lesenswert?

Kai Giebeler wrote:
>>Möglicherweise schmeist Du das mit dem Abstand der Spektrallinien einer
>>FFT durcheinander.
> Gut möglich - ich hatte denen ähnliche Eigenschaften unterstellt.

Bei einer Abtastfrequenz von 102.4kHz und 1024 Abtastwerten beträgt der 
Abstand der Spektrallinien der FFT 100Hz. Das hat aber mit einem FIR 
Filter mit 1024 TAPS nichts zu tun. Da darfst Du natürlich bei 102.4kHz 
Abtastrate ein 300Hz Signal reinstecken, ein 400Hz Signal und eines von 
350 Hz. Wie Du von der Übertragungsfkt. H(z) zum Frequenzgang H(exp(jw)) 
kommst steht in jedem Signalverarbeitungsbuch.

>>Kann ein 1000 Tap FIR das leisten, was Du willst?
> Wenn der im unteren Frequenzbereich noch gut genug auflöst, dann ja.

Das hängt von den Anforderungen ab, die Du stellst. Wenn die Dämpfung 
bei 30Hz 0dB sein soll und bei 37Hz soll sie 50dB betragen, dann wird 
das schwierig. Dazu braucht man dann viele Taps.

> Welchen Nachteil hat es denn dann, wenn man weniger Taps verwendet?

Du kriegst möglicherweise die Dinge nicht hin, die du willst: steile 
Filterflanken, kurze Impulsantworten, wenig echos, langen Faltungshall 
....

>
> Wofür verwendet man dann überhaupt das Downsampling bei digitalen
> Filtern im Bassbereich?
>

Ich vermute: Die Grenzfrequenz ist niedrig, sodass man downsamplen kann 
ohne Nyquist zu verletzen. Mit niedrigerer Abtastrate und gegebener 
Rechenleistung gibts dann mehr verfügbare Taps und man kann coolere 
Sachen machen.

Audio@100ks/s sollte jeder DSP gut können, 1000 TAPS bei 100kHz sind 0.1 
MMAC, jeder Mittelklasse DSP hat 100MMACS, die fetten Spezialteile haben 
3000.

Gute Nacht
Detlef

von FL (Gast)


Lesenswert?

> Audio@100ks/s sollte jeder DSP gut können, 1000 TAPS bei 100kHz sind 0.1
> MMAC, jeder Mittelklasse DSP hat 100MMACS, die fetten Spezialteile haben
> 3000.


Hallo,

bei mir kommen aber ein paar mehr MMACS raus:

100 kHz Abtastrate, 1000 Taps => 1000 MACS pro Abtastwert, 100000 
Abtastwerte pro Sekunde

ergibt: 100 Mio. MACs pro Sekunde = 100 MMACS

Dein "Durchschnitts-DSP" wäre damit also bis zum Anschlag ausgelastet.

von Detlef _. (detlef_a)


Lesenswert?

>>Autor: Detlef _a (detlef_a)
>>Datum: 21.06.2008 01:09

Ähm, sollte um diese Uhrzeit nichts mehr schreiben, Du hast natürlich 
Recht.

Sorry

Detlef

von Kai G. (runtimeterror)


Lesenswert?

Uff... Danke FL - ich dachte schon, ich hätte wieder die Hälfte von dem 
Thema falsch verstanden :)

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
Noch kein Account? Hier anmelden.