Forum: Digitale Signalverarbeitung / DSP / Machine Learning Erhöht ein digitaler Filter die Genauigkeit


von Kai Z. (liquidsteel)


Lesenswert?

Hallo,

ich habe da eine Verständnissfrage:

Ich muss die Frequenz eines Signals herausfinden. Dazu habe ich einen 
DAC der direkt am DSP hängt.
Die Frequenz des Inputsignals muss ich hochgenau ermitteln.
Das mache ich natürlich mit einer FFT. Wenn ich nun einen analogen 
Filter vor dem DAC schalte, dann erhöht sich schonmal die Genauigkeit 
meines Endergebnisses. Angenommen ich habe keinen Filter vor dem DAC 
sondern jage die aufgenommenen Samples vom DAC ungefiltert in der DSP 
durch z.b. eine FIR funktion und anschließend durch die FFT. Kann sich 
dadurch die Genauigkeit meines Ergebnisses genauso erhöhen wie mit einem 
analogen Filter?

Gruss
Kai

von Ccc (Gast)


Lesenswert?

Wie soll das klappen?
Wenn Du keinen Anti-Aliasing FILTER davor machst bekommst Du ja die 
ganzen Spiegelfrequenzen durch die Unterabtastung mit rein!
Es gilt ja f_in<=2*f_s !

von Helmut -. (dc3yc)


Lesenswert?

Seit wann hat dein DAC (Digital-Analog-Converter) einen analogen 
Eingang?

von Detlef _. (detlef_a)


Lesenswert?

>>Die Frequenz des Inputsignals muss ich hochgenau ermitteln. Das mache ich 
>>natürlich mit einer FFT.

Frequenzbestimmung mit einer FFT ist nicht hochgenau sondern hängt von 
der Länge der FFT ab. Das geht viel besser und genauer siehe 
Beitrag "Genaue Frequenzbestimmung nach FFT"

Cheers
Detlef

von Kai Z. (liquidsteel)


Lesenswert?

Helmut -dc3yc schrieb:
> Seit wann hat dein DAC (Digital-Analog-Converter) einen analogen
> Eingang?

Sorry Tippfehler, ich meine natuerlich ADC!

Detlef _a schrieb:
> Frequenzbestimmung mit einer FFT ist nicht hochgenau sondern hängt von
> der Länge der FFT ab. Das geht viel besser und genauer siehe
> Beitrag "Genaue Frequenzbestimmung nach FFT"

Genau so mache ich es auch. Es geht hier aber nicht dadrum :) sondern 
immer noch um den Unterschied zwischen software und analogen filtern.

von Harald Wilhelms (Gast)


Lesenswert?

Kai Zung schrieb:

> Ich muss die Frequenz eines Signals herausfinden.
> Die Frequenz des Inputsignals muss ich hochgenau ermitteln.
> Das mache ich natürlich mit einer FFT.

Wie kann man denn mit einer FFT Frequenzen genau messen?
Das geht m.E. nur mit DFT (diskreter Frequentransformation)
BTDT
Gruss
Harald

von Kai Z. (liquidsteel)


Lesenswert?

Ccc schrieb:
> Wie soll das klappen?
> Wenn Du keinen Anti-Aliasing FILTER davor machst bekommst Du ja die
> ganzen Spiegelfrequenzen durch die Unterabtastung mit rein!
> Es gilt ja f_in<=2*f_s !

Anti-Aliasing filter ist ne andere Sache! Der Anti Alaising Filter ist 
im ADC bereits integriert.

Ich erklaere es nochmal. Angenommen ich habe ein Eingangssignal mit 
einer Grundfrequenz von 3 kHz. Ich Taste das Signal mit einem ADC ab 
(Anti-Alaising filter drinne). Die Samples haue ich in eine FFT rein ( 
bzw. in 2 FFTs ) und errechne dann die genaue Frequez des 
Eingangssignals. Wenn ich aber vorher schon ungefaehr weiss, wo die 
Frequenz des Eingangssignal liegt kann ich ja einen Analogen Bandpass 
vor der ADC schalten. Dadurch werden Stoerfrequenzen schonmal entfernt 
und ich bekomme am schluss ein genaueres Ergebniss. Die frage ist nun: 
Wenn ich keinen analogen filter benutze, sondern das Signal ungefiltert 
in den ADC schiebe und dann erst anschliessend in der DSP eine z.B. FIR 
durchfuehre, kann ich dann auch die Genauigkeit meiner Ergebnisses 
erhoehen?

von Kai Z. (liquidsteel)


Lesenswert?

Harald Wilhelms schrieb:
> Wie kann man denn mit einer FFT Frequenzen genau messen?
> Das geht m.E. nur mit DFT (diskreter Frequentransformation)
> BTDT

Mann kann durch 2 FFTs und vergleich deren die Frequenz sehr genau 
bestimmen! Wie Detlef_a schon sagte, schau dir den Beitrag: "Genaue 
Frequenzbestimmung nach FFT" an. Ich dachte DFT heisst Diskrete Fourier 
Transformation? Meiner Meinung nach macht es nichts anderes wie eine 
FFT.

von chris (Gast)


Lesenswert?

>Wenn ich keinen analogen filter benutze, sondern das Signal ungefiltert
>in den ADC schiebe und dann erst anschliessend in der DSP eine z.B. FIR
>durchfuehre, kann ich dann auch die Genauigkeit meiner Ergebnisses
>erhoehen?

Die folgenden Aussagen sind immer im Bezug auf eine maximal erreichbare 
Genauigkeit zu verstehen:

1. Vor der ADC-Wandlung müssen alle hohen Frequenzen mittels eines 
Anti-Alliasing Filters entfernt werden. Es gibt keine Filter mit 
unendlich steiler Charakteristik. Deshalb ist eine Grenzfrequenz des 
Antialiasing Filters nützlich, die weit unter der Abtastrate liegt ( 
Oder einfacher ausgedrückt: eine hohe Abtastrate hilft )

2. Ist im Signal tatsächlich nur eine Frequenz enthalten, kann diese 
sehr genau mit Nulldurchgangsbestimmungen berechnet werden.

3. Der Nulldurchgänge werden mittels Interpolation berechnet. Sehr gute 
Ergebnisse erreicht man, wenn die Abtastrate vorher "virtuell" erhöht 
wird ( Praxis: ~Faktor 4 ) , d.h. einfügen von Nullen und dann Filterung 
mit einem FIR-Filter mit SINC-Koeffizienten ( idealer Tiefpass )

von Mr. Q. (lunza)


Lesenswert?

> Anti-Aliasing filter ist ne andere Sache! Der Anti Alaising Filter ist
> im ADC bereits integriert.
>

Tut mir leid, aber die Aussage, der Anti-Aliasing Filter sei im ADC 
intergriert ist einfach Quatsch.

von Matthias Larisch (Gast)


Lesenswert?

Mr. Qb schrieb:
> Tut mir leid, aber die Aussage, der Anti-Aliasing Filter sei im ADC
> intergriert ist einfach Quatsch.

AD7606
nur um mal EINEN zu nennen

von Mr. Q. (lunza)


Lesenswert?

Tatsachen, sry. Aber ist ja auch nix anderes als ein oder mehrere 
vorgeschaltete Tiefpässe und hat im prinzip nichts mit der eigentlichen 
Frage zu tuen....

von MB (Gast)


Lesenswert?

Ich denke nicht dass sich dadurch die Genauigkeit erhöht!

Wenn du die FFT korrekt parametriert hast (Anzahl Samples, 
Abtastfrequenz) holt die meiner Meinnung nach das Maximum an Infos aus 
deinem abgetasteten Signal heraus. Wenn du vorher noch ein FIR drüber 
lässt, hast du nur kleinere Amplituden der ungewünschten Frequenzen, was 
aber nicht automatisch heisst, dass deine Frequenzauflösung höher wird..


Aber so aus dem Bauch raus ist das schwierig abzuschätzen! Ich würde dir 
empfehlen das ganze in Matlab zu testen. Generier dir irgend ein Signal, 
dann führe beide Methoden durch und schau ob sich was verbessert...


@Kai Zung:

DFT heisst Diskrete Fourier Transformation. FFT ist nichts anderes als 
ein schneller Algorithmus um eine DFT zu berechnen.

von J. S. (engineer) Benutzerseite


Lesenswert?

Kai Zung schrieb:
> Anti-Aliasing filter ist ne andere Sache! Der Anti Alaising Filter ist
> im ADC bereits integriert.
Nö, in der Regel nicht´und das aus gutem Grund.

MB schrieb:
> Wenn du vorher noch ein FIR drüber
> lässt, hast du nur kleinere Amplituden der ungewünschten Frequenzen, was
> aber nicht automatisch heisst, dass deine Frequenzauflösung höher wird..
Es wird sich in einer Redutierung der hohen Frequenzen niederschlagen 
und u.U. weniger leakage Effekte ergeben. Aber dem Prinzip nach erledigt 
die FFT ja bereits die Filterung.

von Hannes (Gast)


Lesenswert?

Kai Zung schrieb:
> Dadurch werden Stoerfrequenzen schonmal entfernt

> und ich bekomme am schluss ein genaueres Ergebniss
nein, ich denke nicht, weil dein filter nicht ideal ist und oberwellen 
in die anderen reinmatscht. die fft isoliert die frequenzen ja, so gut 
wie es geht,

spiegelfrequenzen und frequenzen > nyquist sind dann oben mit drin

von Thomas (Gast)


Lesenswert?

Ein FIR-Filter kann durchaus etwas verbessern, wenn es deutlich 
hochauflösender ist, als das Analogfilter an Artefakten liefert. In der 
Regel ist man mit einer FFT mit etwas mehr Aufwand aber besser bedingt. 
Das Problem ist aber, dass die FFt mit festen Frequenzen arbeitet, die 
nicht genau das Original treffen.

Dann musst Du noch etwas rechnen / interpolieren.

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.