Muss ich filtern, bevor ich ein Signal an einen ADC sende?

Ich habe einen ADC mit einer Abtastrate von 25 kHz und einen Sensor mit einer Bandbreite von 200 kHz, an den ich mich anschließen möchte. Das ist ein Stromsensor. Nyquist sagt mir, dass ich die Bandbreite des Sensors auf 12,5 kHz begrenzen muss, um ein Signal rekonstruieren zu können (und Aliasing zu vermeiden). Allerdings frage ich mich ob das so richtig ist? In gewisser Weise möchte ich die Bandbreite des Sensors nicht für Anwendungen wie einen Spitzenwertdetektor einschränken, bei dem ich Spitzensensorwerte messen möchte, und ich könnte Spitzen verpassen, wenn ich sie herausfiltere.

Kann ich das 200-kHz-Signal direkt in den ADC leiten? In welchen Fällen sollte das Nyquist-Kriterium nicht befolgt werden?

Danke

Welcher Inhalt in Ihrem ADC-Eingang soll gealiased werden?
Sie werden das ursprüngliche Signal nach dem DAC niemals rekonstruieren können, es sei denn, Sie dämpfen das gesamte Spektrum >= Fs/2 unterhalb der ADC-Auflösung. Jedes Restsignal >=Fs/2 reduziert Ihr SNR. zB Signale bei 25k, 50k,75k....200k werden zu DC-Fehlern. usw. Eine praktische Lösung ist ein Bessel-Filter 8. Ordnung bei Fs/3, wenn Sie einen Fehler < 0,1 % wollen. Wenn das HF-Spektrum so wichtig ist, müssen Sie eine andere Technik verwenden. wie Peak als DC und RMS oder Durchschnitt messen

Antworten (3)

Nyquist sagt mir, dass ich die Bandbreite des Sensors auf 12,5 kHz begrenzen muss, um ein Signal rekonstruieren zu können (und Aliasing zu vermeiden).

Nyquist sagt Ihnen das nicht. Das Abtasttheorem von Nyquist-Shannon besagt:

Wenn Sie ein Signal haben, das perfekt auf eine Bandbreite von f0 begrenzt ist, können Sie alle Informationen in diesem Signal sammeln, indem Sie es zu diskreten Zeiten abtasten, solange Ihre Abtastrate größer als 2f0 ist

Das Schlüsselstück, das fast jeder übersieht, ist perfekt bandlimitiert . Dies ist ein akausaler Filter und kann realisiert werden, wenn Daten nachbearbeitet werden und Sie einen Sinc-Impuls anlegen, der die gleiche Länge wie Ihre Daten hat.
Dies kann nicht in Echtzeit durchgeführt werden, kann aber (schlecht) über einen kaskadierten integralen Kammfilter angenähert werden, aber dies ist immer noch nicht perfekt bandbegrenzt

Das Nyquist-Theorem besagt nicht, dass Sie mit 100 Hz abtasten sollen, da Sie an einer 50-Hz-Hauptfrequenz interessiert sind. Wenn Sie mit der doppelten interessierenden Frequenz abtasten, haben Sie möglicherweise Informationen darüber, dass eine Komponente existiert, aber Sie können sie nicht rekonstruieren

Geben Sie hier die Bildbeschreibung ein

Eine vernünftige Faustregel lautet: Erwerben Sie das 10-fache der Frequenz, an der Sie wirklich interessiert sind. Dies führt zu ~ 99,5% der Amplitude und einer Phasenverschiebung von 5 Grad (von der Quantisierung vorerst abgesehen ...). Der Schlüssel liegt darin, die maximale Häufigkeit zu bestimmen, auf die Sie reagieren möchten.

In deinem Beispiel

Sensor (200 kHz) -> ADC (25 kHz). Das sagt mir, dass Sie wirklich nicht an Signalen über 2,5 kHz interessiert sind und mit interessiert meine ich wirklich, sie zu nutzen (steuern, reagieren usw.). Wenn das akzeptabel ist, soll es so sein. Ein Anti-Aliasing-Filter um 12,5 kHz wäre also in Ordnung

Aber was ist mit Aliasing? Wenn Sie einen Sensor mit einer Bandbreite von 200 kHz in eine ADC-Abtastung mit 25 kHz einspeisen, treten unerwünschte Signale auf, da Aliasing auftreten kann. Es ist ratsam, einen LPF vor dem ADC zu haben, um als Anti-Alias-Filter zu fungieren. Jetzt hätte der bandbegrenzte Sensorausgang diesem Zweck dienen können, wenn Ihr ADC mit beispielsweise 400 kHz abgetastet wurde, aber das ist nicht der Fall . Es wäre ratsam, einen LPF vor den ADC zu stellen, um alle Komponenten abzurollen, die vom ADC gealiased werden könnten

  1. http://www.ni.com/white-paper/2709/en/
  2. http://www.wescottdesign.com/articles/Sampling/sampling.pdf
  3. http://www.ti.com/lit/an/slyt626/slyt626.pdf

Es ist eine Entweder-Oder-Situation: Entweder das richtige Anti-Alias-Filter anwenden, um den Signalinhalt im 12,5-kHz-Basisband korrekt zu messen, oder kein Anti-Alias-Filter anwenden und Spitzenwerte messen, aber keine gleichzeitige Fähigkeit haben, einen Sinn zu erkennen das Basisbandsignal. Vorausgesetzt, Sie möchten nicht beides zusammen tun, können Sie einen Filter implementieren, der ein- und ausschaltbar ist und möglicherweise von einer IO-Leitung von Ihrer CPU gesteuert wird.

Wenn Sie nicht filtern, können Sie auch nicht GARANTIEREN, dass Sie jeden Peak erfassen. Die beste Antwort ist natürlich, schnell genug zu sampeln, um die Ereignisse zu erfassen, die Sie erfassen müssen, und entsprechend zu filtern.
Oder verwenden Sie einen separaten Peak-Detektor, den Sie regelmäßig abtasten können, wenn Sie nicht in Echtzeit auf die Peaks reagieren müssen.

Ich möchte Sensorspitzenwerte messen und kann Spitzenwerte übersehen, wenn ich sie herausfiltere

Ich denke, es ist unmöglich, Spitzen nicht zu verpassen, selbst wenn kein LPF vorhanden ist. Wenn der Peak schmal genug ist (was aufgrund der hohen Bandbreite des Sensors möglich ist), ist es unwahrscheinlich, dass der Abtastzeitpunkt genau auf dem Peak auftritt. Wenn es jedoch vor oder nach dem Peak auftritt, erhalten Sie eine falsche "Peak" -Amplitude.

Also muss entweder das analoge Signal (auf gut kontrollierte Weise) durch LPF „verzerrt“ werden, damit der ADC alle im gefilterten Signal verbleibenden Informationen erfassen kann, oder es wird (auf unkontrollierte Weise) durch eine unangemessene Abtastrate verzerrt.