Extrem niederfrequente Filter


13

Ich habe eine Datenerfassungskarte (A / D + Digitaler Signalprozessor) und möchte prüfen, ob ein digitaler Hochpassfilter (in DSP implementiert) mit einer extrem niedrigen Grenzfrequenz (0,05 Hz) tatsächlich funktioniert.

Wenn dies eine Frequenz wäre, die ich mit einem Signalgenerator erzeugen könnte, wäre dies leicht zu überprüfen, aber 0,05 Hz sind zu niedrig und ich kann sie nicht erzeugen. Wie überprüfen Ingenieure diese Art von Filtern?


3
Diese Frage und ihre Antworten haben mich umgehauen! Ich habe noch nie darüber nachgedacht, dieses Tief einer Frequenz zu filtern :)
bitsmack

6
@bitsmack Ich habe einen 50-MHz-Hochpass in einem Elektrogastrographie-Instrument (EGG) gesehen.
Nick Alexeev

Einige Signalgeneratoren haben sowohl die MHz-Taste als auch die mHz-Taste.
AndrejaKo

Können Sie ein Testsignal in digitaler Form in den DSP einspeisen? Es ist einfach, eine Frequenz in digitaler Form zu erzeugen. --- Der Nachteil ist, dass Sie den Analog- und A / D-Teil der Karte nicht testen.
Pabouk

1
@bitsmack Es bedeutet, dass Sie lange warten müssen, bis sich die Dinge beruhigt haben und das "Kehren" sehr langsam sein muss (Stunden und Stunden), aber es ist gut, die tatsächliche Echtzeitleistung mindestens einmal zu testen, bevor Sie sich darauf verlassen können, dass sie funktioniert verlangsamt (nach dem Testen beschleunigt). Dinge wie Aliasing können ihre Köpfe aufrichten.
Spehro Pefhany

Antworten:


18

Ich denke, es hängt von mehreren Faktoren ab, unter anderem von der Reihenfolge des Filters, aber Sie haben ein paar Möglichkeiten:

  1. Finden Sie einen Signalgenerator, der dorthin kommt. Diese sind heutzutage eher preiswert.
  2. Vertraue der Mathematik. Dies ist ein digitaler Filter, der mit der Abtastrate skaliert. Wenn Sie die Abtastrate um zwei Größenordnungen erhöhen können, erhalten Sie einen Filter mit einer 5-Hz-Grenzfrequenz, der viel einfacher zu messen ist. Wenn der begrenzende Faktor der ADC wird, können Sie ihn vom Filter isolieren und einige künstliche digitale Daten einspeisen.
  3. Verwenden Sie eine Sprungantwort (viele Breitbandsignale würden ausreichen). Berechnen Sie die Sprungantwort Ihres gewünschten Filters und vergleichen Sie sie mit dem Ergebnis. Alternativ kann der Frequenzgang auch über die FFT der Sprungantwort berechnet werden.

Wir verwenden in einigen unserer Testaufbauten eine Variante von Alternative 3, nicht weil wir die erforderlichen langsamen Wellenformen nicht erzeugen können, sondern weil die Abschaltung unserer analogen Filter mit <0,01 Hz viel zu lange dauern würde, um charakterisiert zu werden, wenn wir auch nur einen groben Frequenzdurchlauf versuchen würden . Dies reduzierte die Testzeit von mehr als einer Stunde auf nur wenige Minuten.


10

Ich würde meinen Agilent Funktionsgenerator verwenden , die auf 1 geht μ Hz, ein ziemlich unauffällig (und veraltete) Modell 33522A. Mein Rigol DG4102, glaube ich, hat ähnlich 1 μ Hz Auflösung und Kosten weniger.

Leider kann man mit billigen DDS-Modulen (z. B. AD9850) nicht so niedrig werden, da das Abstimmungswort nur 32 Bit und der Takt normalerweise 125 MHz beträgt, was einer Auflösung von 0,03 Hz entspricht. Ich nehme an, es würde Ihnen ein paar Datenpunkte geben (0,0291 / 0,0582 / 0,0873 Hz)

Sie können es auch schrittweise füttern und sich die Zeitbereichsantwort ansehen.


2
Wenn Ihr DDS-Modul ein externes Taktsignal aufnehmen kann, übertakten Sie es einfach! Ein DDS ist wirklich ein sehr ausgefallenes Divide-by-N im Herzen ....
ThreePhaseEel

1
@ThreePhaseEel Sie können dies tun, aber es ist im Allgemeinen keine sehr schöne Ausgabe, es sei denn, Sie entwerfen den Ausgangs-Tiefpassfilter neu, der normalerweise so etwas wie ein 5-poliger LC-Ellipsenfilter ist. Im Falle von OP könnte er oder sie, da die maximale Frequenz so niedrig ist, wahrscheinlich nur einen 1-Hz-Tiefpass-RC-Filter zum Ausgang hinzufügen und ein schönes Signal erhalten.
Spehro Pefhany

Einverstanden, dass Sie einen Nachfilter benötigen würden - AD9850s haben einen Mindesttakt von 1MHz im Übrigen, was ein wenig einschränkend ist, aber immer noch genug, um die vom OP
gewünschten

@ThreePhaseEel Selbst 8 oder 10 MHz würden eine Auflösung von 0,002 oder 0,0024 Hz ergeben.
Spehro Pefhany

6

Option 1: Test auf dem PC.

Wenn Ihr DSP-Code in C geschrieben ist, können Sie ein Testkabel in GCC oder Visual Studio einrichten. Sie kennen die Abtastrate für Ihren DSP-Code. Verwenden Sie daher Excel, um eine CSV-Testdatei zu erstellen, und lassen Sie das Testkabel eine CSV-Datei ausgeben, die Sie überprüfen können.

Option 2: Test auf dem DSP mit einer PC-Schnittstelle.

Wenn Ihr DSP-Code auf dem DSP ausgeführt werden muss, können Sie ihn dennoch mit dem PC testen. Richten Sie am DSP einen Test-Kabelbaum ein, der einen Wert vom PC empfängt, einen Schritt des DSP-Filters ausführt und dann die Filterausgabe für diesen Schritt an den PC zurückmeldet (abhängig von USB, RS-232 oder TCP / IP) wie Sie sich mit dem DSP verbinden). Sie benötigen außerdem ein PC-seitiges Testkabel, um diese Werte zu senden und zu empfangen. Auch hier können Sie eine CSV-Testeingabedatei auf dem PC einrichten, aufeinanderfolgende Beispiele an den Filtercode übergeben und eine CSV-Dateiausgabe sichern, die Sie überprüfen können.

Für beide...

Wenn Sie mit 0,05 Hz filtern, ist die Wahrscheinlichkeit groß, dass auch Ihre Samplerate relativ langsam ist. Mit einem Test-Harness können Sie diese Tests schneller als in Echtzeit ausführen, wodurch Ihr Testprozess effizienter wird.


5

Wenn Sie auch einen D / A-Wandler in Ihrem DSP-System haben, können Sie dieses extrem niederfrequente Signal in der Software erzeugen und an Ihren A / D-Eingang zurückführen. Alternativ können Sie eine D / A-Karte oder einen USB-Adapter verwenden, um das Signal zu erzeugen. Ein Beispiel für solche Geräte wäre LabJack, aber es gibt noch viele andere Geräte mit unterschiedlichen Preisen und Leistungsmerkmalen. Eine andere Möglichkeit wäre, einen billigen Mikrocontroller + DAC wie Raspberry Pi oder Arduino zu verwenden


2

Wenn dies eine Frequenz wäre, die ich mit einem Signalgenerator erzeugen könnte, wäre dies leicht zu überprüfen, aber 0,05 Hz sind zu niedrig und ich kann sie nicht erzeugen. Wie überprüfen Ingenieure diese Art von Filtern?

Es gibt drei gute Möglichkeiten, die Filterantwort zu überprüfen: Eine ist eine Dirac-Delta-Funktion (eine Impulsfunktion oder ein kurzer Impuls), die andere ist ein Stufeneingang und die letzte ist ein Frequenzdurchlauf.

Mit den Instrumenten, die ich benutze, können die Experimente Wochen bis Monate dauern. Einige unserer physikalischen Systeme reagieren im Tagesbereich. Die beste Möglichkeit, diese Systeme und Filter zu überprüfen, besteht darin, eine Stufeneingabe zu verwenden und dann die Zeitkonstante zu messen. Wenn Sie sich an die Zeitkonstante für einen Spannungseingang erinnern, ist:

V(t)=V0(1-e-t/τ)

τ=RC

Bildbeschreibung hier eingeben
Quelle: http://mit6002.blogspot.com/2011/05/1011-parallel-rc-circuit-step-input.html

(Das Bild zeigt eine Stromquelle mit einem Parallelwiderstand, der einer Spannungsquelle mit einem Vorwiderstand entspricht.)


0

Sie könnten wahrscheinlich mit einem Potentiometer und einer Armbanduhr von Hand ein erträglich weiches 50-MHz-Signal erzeugen.

Alternativ können Sie die erwartete Sprungantwort Ihres Filters berechnen . Geben Sie Ihrer Hardware eine schrittweise Eingabe, indem Sie einen Schalter umlegen. Zeichnen Sie die Ausgabe über eine Minute oder so (wenn die Zeitbasis Ihres Oszilloskops nicht so langsam ist, nehmen Sie ein Multimeter auf und schreiben Sie die Messwerte jede Sekunde auf). Vergleichen Sie die gemessene Sprungantwort mit Ihrer Vorhersage. Wenn sie übereinstimmen (genau genug, da ADC / DAC / Timing-Ungenauigkeiten berücksichtigt werden), funktioniert Ihr Filter wie vorgesehen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.