Forum: Digitale Signalverarbeitung / DSP / Machine Learning FIR Filter macht bei Nullstellen Probleme, warum?


von Alexander I. (daedalus)


Angehängte Dateien:

Lesenswert?

Hallo,

kaum das eine Problem gelöst, folgt sogleich das nächste:

Ich habe eine Sammlung von Sinus-Schwingungen mit unterschiedlicher 
Frequenz aber gleicher Amplitude. Um den 'Knick' von z.B. 1kHz-Sinus -> 
4kHz-Sinus zu verschmieren habe ich einen FIR-Filter in C geschrieben. 
Klappt auch wunderbar, aber bei den Nullstellen macht er irgendeinen 
Mist (siehe Bild). Woran kann das liegen? Rundungsfehler von 
Float/Double? Den FIR hab ich entworfen nach der Formel:

FIR = (n+1)/(Sum(Eingangswerte, n-z bis n+z) *n) + akt. Eingangswert (n)

für n von 1 bis Filterwert (z.B. 300).

Woran könnt's liegen?

von Thomas B. (detritus)


Lesenswert?

Die Summe deiner Eingangswerte wird beim Sinus-Nulldurchgang ~0 werden 
und damit auch der Nenner -> Ü-fkt explodiert. Wie kommst du auf diese 
Form des FIRs?

von Alexander I. (daedalus)


Lesenswert?

Hat sich erledigt. Aufgabe wurde gerade von höherer Instanz gecancelt. 
Vielen Dank.

von gast (Gast)


Lesenswert?

das ist ein generelles problem bei adc/dac wandlern:

"Ein Problem tritt auf, wenn einzelne Stufen nicht synchron umschalten. 
 Ahnlich
wie beim asynchronen Zahler treten Zwischenzustande | sogenannte 
Glitches |
ein. Bei einer Anderung um nur 1 LSB kann so der Ausgang kurzfristig 
den vollen
Spannungshub uberstreichen."

SO z.B. kurzzeitige falsche Ausgangswerte. Am schlimmsten meist beim 
Schalten des MSB:
Beim Schalten von 7 ⇒ 8 (4 bit DAC): 0111 ⇒ 0000 ⇒ 1000 Ausgang 
kurzzeitig auf Null

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.