Forum: FPGA, VHDL & Co. IIR-Filter - Abtastung und Auflösung


von Andreas U. (Gast)


Lesenswert?

Zwecks einer einfachen und platzsparenden Filterung eines 
Eingangssignals verwende ich IIR-Filter, die mit der vollen 
Abtastfrequenz des FPGAs laufen. Bei der Umsetzung auf einen neuen FPGA 
mit noch mehr Eingängen und einer noch höheren Abtastung stosse ich auf 
Auflösungprobleme. Daher habe ich die Abtastrate reduziert, um bessere 
Ergebnisse zu erzielen, was messtechnisch auch belegbar ist. Der Kunde 
(genau ein Ingenie im Team) ist da skeptisch, dass bei schlechterer 
Abtastfrequenz das bessere Ergabnis herauskommen soll. Wie lässt sich 
das mathematisch technisch belegen?

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Andi F. schrieb:
> vollen Abtastfrequenz des FPGAs
Was ist die volle Abtastfrequenz des FPGAs? In Verbindung mit FPGAs 
fallen mir ein
- Taktfrequenz, also die Frequenz mit der die FF getaktet werden, sie 
ist maßgeblich für das Timing Closure
- Abtastfrequenz von Signalen, die im FPGA verarbeitet werden.

Ich nehme mal an, du meinst letztere. Wenn du die Abtastfrequenz eines 
Signals änderst, musst du auch die Filter-Koeffizienten anpassen
- die I-Koeffizienten (die im Nenner) werden kleiner (wandern gegen 
Null) bei steigender Abtastfrequenz, du brauchst mehr Nachkommastellen, 
die du nicht hast und dadurch an Genauigkeit verlierst. Weiterhin 
ergeben sich aus den Nenner-Koeffizienten die Nullstellen und die haben 
die unangenehme Eigenschaft, durch Runden nach außen zu wandern.
- die D-Koeffizienten werden größer mit zunehmender Abtastfrequenz 
(wandern gegen 1), hier brauchst du auch mehr Nachkommastellen

D.h. mit jeder Verdopplung der Abtastfrequenz brauchst du ein Bit 
Auflösung bei den Koeffizienten mehr. Aber mit jeder Vervierfachung der 
Abtastfrequenz verlierst du ein Bit bei deinem Signal.

Ich gehe mal davon aus, dass du die Koeffizienten-Werte angepasst hast, 
hast du die Koeffizienten länger gemacht? Vergleiche mal Nullstellen, 
die sich aus den die Festkomma-Werten des alten und neuen Nenners 
ergeben.

Warum hast du die Taktfrequenz des FPGAs erhöht? Never touch a running 
system!

Tom

von Christian R. (supachris)


Lesenswert?

Er will ja das Gegenteil machen, also die Abtastfrequenz verringern. Ob 
das am Ende was bringt, hängt ja ganz stark vom Eingangssignal ab. Ist 
denn die höchste zu erwartende Frequenz dann noch weit genug weg von der 
Abtastfrequenz?

von Duke Scarring (Gast)


Lesenswert?

Hier würde es sich ggf. anbieten die Koeffizienten und die Bitbreiten zu 
belassen und die höhere Abtastrate zu verwenden um aus dem 
Eingangssignal mehr effektive Bits rauszuholen.

Duke

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Christian R. schrieb:
> Er will ja das Gegenteil machen, also die Abtastfrequenz verringern.

Ist ja richtig. Aber wenn ich es richtig verstanden habe, hat er sie 
bereits erhöht und stellt nun fest, dass das Verhalten schlechter 
geworden ist. Und warum habe ich beschrieben.

Tom

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

> Abtastfrequenz das bessere Ergabnis herauskommen soll. Wie lässt sich
> das mathematisch technisch belegen?

Die Mathematik hat hier eine Randbedingung. Die dasrf nicht vergessen 
werden.

Der Abstand zwischen den Samplepunkten muss gleich sein.

Wenn deine neue hohe Frequenz ein Jitter hat, dann könnte so was 
passieren, weil die Abtastung mit einer Phasenmodulation überlagert 
wird.

von Patrick (Gast)


Lesenswert?

Von was für Frequenzen reden wir denn hier? Im Spartan 6 habe ich Filter 
gebaut die bis 62.5MHz laufen (250MHz aber 4 Takte pro Multiplizierer) 
und mit 18 bit / Konstante.
Dann erfüllen die auch das Timing.
Wenn du mehr Bit brauchst gehen die Anzahl der Takte in die Höhe 
(entsprechend die Abtastrate herunter)

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.