MMACS berechnen FIR Filter

Gast #2097621
Hallo,

ich arbeite an einem ADSP-21469 von Analog Devices und will auf diesem 
einige FIR filter laufen lassen, die ein Eingangssignal filtern und dann 
wird das ganze auf 16 Kanälen wieder ausgegeben. Ich habe einen 
Beispielkode von Analog Devices genommen, benutze ein Audio EZ-extender, 
der mir die nötigen Kanäle gibt und wenn ich ADC->DAC ohne dazwischen zu 
filtern einstelle läuft das alles.
Jetzt will ich meine Filter berechnen und die Performance vom DSP ist 
mit 900MMACS angegeben. Ich benötige 8 Filter (4 rechts, vier links) und 
meine Samplerate ist 48kHz. Das bedeutet, wenn ich alles richtig 
verstanden habe, dass ich 48000 samples die Sekunde habe, X Filtertaps 
und 900 millionen Operationen die Sekunde zur verfügung. Die maximale 
Anzahl Filtertaps wäre demnach:

48000 * X = 900*10^6 <==> X = 18750

Ich kann also maximal 18750 Filterkoeffizienten verwenden. Wenn ich das 
Ganze jetzt allerdings teste, indem ich das Signal filtere und in 
variabeln abspeichere, dann verlangsamt das Filtern meinen Prozessor so 
sehr, dass auch das ungefiltert durchgelassene Signal statt einem 
schönen Sinus, wie ich ihn in den Audio Codec des Kittes einspeise, mir 
zwar ein Sinusförmiges Signal auch wieder rausgibt, allerdings sehr 
verzerrt, scheinbar Quantisierungsrauschen weil der Prozessor es nicht 
mehr schafft, die Samples rechtzeitig auszuspucken. Ca. bei 5000 
Filterkoeffizienten ist schon Schluss, bis dahin sieht das Signal normal 
aus, danach Rauschen. Hab ich mich verrechnet? Oder läuft was ganz 
anderes Schief?

Vielen Dank schonmal für die Hilfe!

Im Anhang ist der aktuelle Code.
Gast
Okay aber sind 5000 koeffizienten für diesen DSP nicht etwas arg wenig? 
Zumal ich mit dem gleichen code bei 192kHz Samplerate noch 4000 
Koeffizienten problemlos verwenden kann, das sind nur 1000 weniger als 
bei 48kHz, eigentlich müsste da der unterschied doch viel größer sein?

48000 * X = 900*10^6 <==> X = 18750
192000 * X = 900*10^6 <==> X = 4688

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.