Forum: Digitale Signalverarbeitung / DSP / Machine Learning 2 poliger IIR-Bandpass mit variabler Mittenfrequenz


von ajax (Gast)


Lesenswert?

Hallo Zusammen,

für die Realisierung eines 2 poligen IIR-Bandpass auf einem Atmega8 muss 
ich die Filterkoeffizienten online ausrechnen.

Hat jemand schon mal sowas realisiert?

Gruß,
ajax

von GPS (Gast)


Lesenswert?

Ein Tabelle, resp ein Satz Tabellen geht nicht ? Die benoetigten 
Rechnungen sind nicht das uebliche, was man sonst auf einem AVR 
durchzieht.

von ajax (Gast)


Lesenswert?

An eine Tabelle habe ich auch schon gedacht. Aber es soll sowohl die 
Resonanzfrequenz als auch die Güte variabel gehalten werden. Dazu 
bräuchte es also eine 2-D Kennlinienfeld bei dem jeder Aufhängpunkt mit 
5 Konstanten für die Koeffizienten belegt ist.
Mit der begrenzten Speicherkapazität ist das dann auch nicht mehr 
praktikabel.

von Detlef _. (detlef_a)


Lesenswert?

Ein zweipoliges IIR Filter hat seine Pole bei r*exp(+/-j*w). Dabei 
entspricht r der Güte und w der Resonanzfrequenz.

Es ist also (z-r*exp(j*w))*(z-r*exp(-j*w)) auszurechnen. Dazu braucht 
man kein Kennlinienfeld sondern Schulmathematik zu komplexen Zahlen und 
eine Cosinusberechnung.

Math rules!

Cheers
Detlef

von ajax (Gast)


Lesenswert?

Hallo Detlef,

hab's auch schon hingekriegt. Leider musste ich die Flieskommabib 
einbinden, was viel Speicher und viel Rechenzeit kostet. Die Berechnung 
der Koeffizienten braucht bei 16MHz jetzt 5ms, das ist für meine 
Anwendung so einigermaßen ok. Der Filter braucht ca. 10us ( geschätzt ).

Bei der Betreffzeile ist mir allerdings ein kleiner Fehler unterlaufen: 
Ich meinte nicht einen 2 poligen IIR-Filter, sonderen einen IIR-Filter 
2.ter Ordnung, d.h. es kommen noch 2 Nullstellen dazu.
Dadurch wird die Berechnung der Filterkoeffizienten etwas aufwendiger, 
falls man den Amplitudengang auf 1 normieren muß.

Das ärgerliche bei der Realisierung eines Filters auf einem Atmega ist 
der kleine Dynamikbereich, deshalb muß man den Amplitudengang relativ 
gut anpassen, damit es nicht zu Übersteuerungen kommt.

Gruß,
ajax

von GPS (Gast)


Lesenswert?

Weshalb ist der Dynamikbereich klein ? Weil der ADC nur 10 bit hat. Da 
muesste man allenfalls einen externen ADC nehmen.

von ajax (Gast)


Lesenswert?

Einen externen ADC? Warum nicht gleich ein ARM Prozessor? Oder noch 
besser: ein DSP aus der TMS320C6x Reihe? Zusätlich ein 10 Mhz 16Bit ADC, 
dann hätte man noch etwas Reserven.

Ne, ne, das Prinzip heist Single Chip, Einfachheit und Low Cost.

ajax

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.