Forum: Digitale Signalverarbeitung / DSP / Machine Learning FFT eines pseudo-periodisch forgesetzten Sinus-Signals


von Sebastian B. (mircobolle)


Angehängte Dateien:

Lesenswert?

Hallo erstmal,

Kurz was zu meinem System:
- das System kann beliebige Analogwerte am DAC ausgeben.
- die Analogwerte werden alle 10 ms ausgegeben.
- die Daten gelangen über RS232 vom PC ins System und werden dort im 
EEPROM abgelegt.

Was habe ich getan?
Ich habe in Excel eine Sinus-Periode erzeugt, habe die Werte exportiert 
(als TXT mit Tabstopp) und habe die Daten ins System übertragen.
Nun habe ich die Abarbeitung gestartet -> siehe Oszi Bild

Das funktioniert auch soweit.

Nun habe ich ein Funktion eingebaut, die mir das Signal periodisch 
fortsetzt.

Was passiert nun?
Am Oszilloskop entsteht ein pseudo Sinus-Signal.


Nun meine Frage:
Ich will die Qualität dieses Signals nun auswerten. Ich bin nun so 
vorgegangen, dass ich über ein gewisses Zeitfenster das SIgnal 
aufgenommen und mit Hilfe des Oszi eine FFT durchgeführt habe.

Bei der Auswertung ergab sich ein Peak bei ca. 1.7 Hz was der Frequenz 
des generierten sinus entspricht.
Neben diesem Peak ist nur durchgehend "rauschen" zu erkennen, demnach 
sind alle anderen Frequenz gleich stark vorhanden.

Lässt sich anhand des 2. Oszi Bildes (das gleich folgt) eine Aussage 
über die Qualität treffen?

Vielen Dank!

MFG
sebastian

: Verschoben durch Admin
von Sebastian B. (mircobolle)


Angehängte Dateien:

Lesenswert?

hier die FFT Auswertung ...

von Benedikt K. (benedikt)


Lesenswert?

Du kannst das SNR (Signal to Noise Ratio) ausrechnen, wenn du den 
Abstand zwischen Peak und Rauschen ausmisst. Je größer dieser Abstand 
ist, desto besser das Signal.
Aber selbst wenn du das Rauschen wegbekommst, wirst du noch einige Peaks 
sehen, da du keinen Tiefpass Filter hinter dem DAC hast. Man sieht auf 
dem ersten Bild schön die einzelnen Samplewerte.

von Sebastian B. (mircobolle)


Angehängte Dateien:

Lesenswert?

Benedikt K. wrote:
> Du kannst das SNR (Signal to Noise Ratio) ausrechnen, wenn du den
> Abstand zwischen Peak und Rauschen ausmisst. Je größer dieser Abstand
> ist, desto besser das Signal.
> Aber selbst wenn du das Rauschen wegbekommst, wirst du noch einige Peaks
> sehen, da du keinen Tiefpass Filter hinter dem DAC hast. Man sieht auf
> dem ersten Bild schön die einzelnen Samplewerte.

Danke!

SNR ist eine gute Idee.

Stimmt hinter den DAC muss noch ein TP der mir das Signal glättet.

Mir gings hier in erster Linie darum heraus zu finden ob:
- meine interne Sequenz-Routine deterministisch arbeitet
- der DAC mit SPI Anbindung korrekt funktioniert
- und das Laden der Daten aus dem EEPROM deterministisch ist

das ganze sollte sich dadurch auszeichnen, dass immer das gleiche Signal 
herauskommt.

(hier noch ein bild vom Excel Sinus Signal: zum vergleich)

von Thomas B. (detritus)


Lesenswert?

Du kannst für eine bestimmte Bandbreite ein S/N-Verhältnis ausrechnen, 
aber ob dir das weiterhilft...

Wenn das besser werden soll, kann man mit Bandpass oder Noiseshaping was 
machen.

von T. H. (pumpkin) Benutzerseite


Lesenswert?

Benedikt K. wrote:
> Du kannst das SNR (Signal to Noise Ratio) ausrechnen, wenn du den
> Abstand zwischen Peak und Rauschen ausmisst. Je größer dieser Abstand
> ist, desto besser das Signal.
> Aber selbst wenn du das Rauschen wegbekommst, wirst du noch einige Peaks
> sehen, da du keinen Tiefpass Filter hinter dem DAC hast. Man sieht auf
> dem ersten Bild schön die einzelnen Samplewerte.

Genau das. Den Wert der Messung kannst du dem theoretischen Wert 
gegenüberstellen (SNR durch endliche Auflösung vom DAC). Weichen diese 
Werte sehr voneinander ab liegts entweder an der Messung, am Equipment 
oder an deinem Aufbau/deiner Software. Sinnvoll ist auf jeden Fall der 
von Benedikt angesprochene Filter.

von Michael L. (Gast)


Lesenswert?

Hallo Sebastian,

das theoretisch beste SNR beträgt bei Vollaussteuerung mit einem Sinus:

6dB * [Bitzahl des AD-Wandlers]

Wenn Du nur halb aussteuerst, fällt ein Bit (entsprechend 6dB) weg.

Genaueres bei Wikipedia unter dem Thema Quantisierungsrauschen. Die 1,76 
dB, die bei Wikipedia in der Formel drinstehen, sind in Ordnung. Sie 
berücksichtigen, daß ein voll ausgesteuerter Sinus statistisch gesehen 
häufiger betragsmäßig kleine als große Werte annimmt.


Freundliche Grüße
Michael

von Sebastian B. (mircobolle)


Lesenswert?

Hallo Michael,

danke für die Information.

Ich werde mir den Artikel bei wikipedia unter dem genannten Stichwort 
mal durchlesen.

Der Vollständigkeit halber noch die Informationen zum DA-Wandler:

- mit seiner aktuellen Referenzspannung von 4.096 V hat er auch bei 
Vollaussteuerung 4.096 V am Ausgang, der entsprechende Digitalwert 
beträgt 0x0FFF - 4095. Es ist ein 12-Bit DA Wandler.

nach deiner Formel wäre also ein maximaler SNR von

6dB * 12 Bit = 72 dB zu erreichen. ?
(Ist das nicht sehr viel, also 72 dB ?)

Wenn ich nun noch einen Tiefpaß an den DA-Ausgang hänge, umwieviel 
besser wird dann das SNR? oder kann man so nicht abschätzen. Sprich: 
Erst wieder FFT und dann Peak zu Rauschen auswerten?

Wenn ich die SNR aus dem FFT-Plot auswerten müsste, würde ich sagen, 
dass Verhältnis von Signal zu Rauschen wäre hier 4 zu 1.8.

Also SNR=2,2 , also etwa 3.4 dB

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.