Forum: Digitale Signalverarbeitung / DSP / Machine Learning SNR nach einer Filterung bestimmen


von Christian V. (aureusphoenix)


Lesenswert?

Hi Leute,
erstmal hoffe ich das ich hier im richtigen Forenteil gelandet bin. Hab 
auch schon n bisschen die Suchfunktion benutzt aber leider nichts 
richtiges gefunden.
Ich hab folgendes Problem:

Ich hab nen Versuch im Praktikum gemacht und dort ein Signal verrauscht, 
anschließend durch nen Selektivverstärker gejagt und soll jetzt das SNR 
in Abhängigkeit der Bandbreite bestimmen.
Ich hab von den Signalen jeweils das Zeitsignal, das Spektrum und die 
Autokorrelationsfunktion. Leider scheint das Signal bei sehr schmalen 
filtern ein wenig mit gedämpft zu werden. Deshalb kann ich nicht das 
unverrauschte signal für die Berechnung des SNR nach der Filterung 
benutzen.

Gibt es da eine einfache Methode? Am schönsten wäre es, wenn ich den 
Hauptpeak im Spektrum (es war ein Sinussignal) mit dem untergrund (also 
dem rauschen) in beziehung setzen könnte.
Hab schon versucht da was über das Parsevaltheorem auszurechnen aber so 
richtig will mir das alles nicht gelingen.

Wäre Nett wenn ihr mir helfen könntet!
DANKE

von Michael L. (Gast)


Lesenswert?

Hallo Christian,

wenn es sich beim Rauschen um unkorreliertes Rauschen handelt, dann 
zeigt es sich in der AKF als Dirac-Peak an der Stelle tau=0.

Erklärung: Bei tau=0 hast Du ja bekanntlich die Signalenergie des 
Gesamtsignals aus Signal + Rauschen; da muß das Rauschen also in 
Erscheinung treten; bei allen anderen tau trägt es zur Integralbildung 
nichts bei, da es unkorreliert ist.

Du kannst also die AKF an der Stelle tau=0 interpolieren und das 
Verhältnis aus der Signalenergie ohne Rauschen (Interpoliert) und der 
Signalenergie des Rauschens (zusätzlicher Peak) bilden.

Gruß,
  Michael

von schon (Gast)


Lesenswert?

Sag uns doch, was "SNR" für Dich bedeutet. Was ist es denn für ein 
Signal?

von ---- (Gast)


Lesenswert?

Du kann die Signal und Rausch-Leistung direkt aus den Spektrum 
bestimmen, siehe 
http://www.spec.de/fileadmin/english/applicationnotes/an_002/an_002.pdf. 
Analog Devices hat ein Programm namens Visual Analog welches den SNR 
automatisch bestimmt.

von Christian V. (aureusphoenix)


Lesenswert?

@ Michael:
Danke, werd ich heute nachmittag gleich mal ausprobieren.

@Gast:
SNR=Signal-Noise-Ratio also Signal-Rauschverhältnis.

SNR=P_Signal/P_Rauschen=U_Signal^2/U_Rauschen^2

von Christian V. (aureusphoenix)


Lesenswert?

Also, ich hab das jetzt nochmal durchprobiert. Ich weis nicht ob das 
vielleicht an den von uns ziemlich blöd gewählten 
Digitalisierungsparametern liegt aber es ergibt sich leider kein schöner 
delta-peak.

Für reines rauschen haben wir den natürlich. Aber der verschwindet 
ziemlich schnell und wird eher zu nem breiten dreieck in der AKF (wenn 
wir ein Signal drunter mischen). Da lässt sich dann ganz schlecht sagen 
was noch signal und was rauschen ist.
Außerdem weis ich nicht so ganz was du mit der interpolation meinst (ich 
weis natürlich was ne Interpolation is ... weis aber nicht wo ich da 
eine durchlegen soll).

Ein weiteres Problem in unserer AKF ist, das LabView die Zeitfenster 
erweitert hat, wir also kein unendliches Signal Autokorrelieren. Damit 
nimmt die Amplitude zu tau=0 hin zu und fällt im positiven wieder ab. 
Für ein schönes Sinussignal ergibt sich also ne art karomuster.

von Michael L. (Gast)


Lesenswert?

Hallo Christian,

> Also, ich hab das jetzt nochmal durchprobiert. Ich weis nicht ob das
> vielleicht an den von uns ziemlich blöd gewählten
> Digitalisierungsparametern liegt aber es ergibt sich leider kein schöner
> delta-peak.
> Für reines rauschen haben wir den natürlich. Aber der verschwindet
> ziemlich schnell und wird eher zu nem breiten dreieck in der AKF (wenn
> wir ein Signal drunter mischen). Da lässt sich dann ganz schlecht sagen
> was noch signal und was rauschen ist.
Genau - der Peak ist normalerweise etwas breiter. Trotzdem wollen wir 
uns den "Idealfall" ansehen, um zu wissen, in welche Richtung die Reise 
geht. Für tau=0 lautet die AKF:

Das ist nichts anderes als die Signalenergie von Nutz- und Rauschsignal 
zusammen. Du willst beide einzeln wissen.

> Außerdem weis ich nicht so ganz was du mit der interpolation meinst (ich
> weis natürlich was ne Interpolation is ... weis aber nicht wo ich da
> eine durchlegen soll).

Dein Ziel muß es sein:
a) eine AKF des reinen Nutzsignals und
b) eine AKF von Nutz- und Rauschsignal
zu erhalten.

Punkt b) hast Du vorliegen. Um Punkt a) zu erreichen, mußt Du den 
Einfluß des Rauschens aus der AKF rausbekommen. Wenn das Rauschen 
einigermaßen weiß ist, verteilt es sich links und rechts von tau=0 auf 
ein paar Punkte. Diese Punkte darfst Du so nicht zu Berechnung der 
Nutzsignalleistung heranziehen. Also interpolierst Du die AKF im Bereich 
von tau=0 auf Grundlage der umgebenden Punkte, um entsprechend a) zu 
einer AKF des reinen Nutzsignals zu gelangen.

Vielleicht plottest Du mal Dein Signal und die zugehörige AKF. Dann 
reden wir hier nicht im luftleeren Raum.


Gruß,
  Michael

von Christian V. (aureusphoenix)


Angehängte Dateien:

Lesenswert?

Hier mal die Plots.
Das sind die AKF's des verrauschten Signals ohne Filterung und dann mit 
den Oktavselektivitäten 18 und 36dB

von Christian V. (aureusphoenix)


Lesenswert?

Hi, ich nochmal ...
also ich glaube mittlerweile zu verstehen was du vorgeschlagen hast. Ich 
hatte das Ganze schonmal an nem Signal ausprobiert bei dem wir rauschen 
und signal einmal getrennt und dann zusammen aufgezeichnet haben (damit 
kann man das SNR ja ganz leicht bestimmen - einfach aus den 
Effektivwerten).
Dabei komm ich aber nach deiner Methode auf viel kleinere Werte als wir 
ausgerechnet haben.

Ich hab da ne Vermutung wüsste aber gern ob die hinkommen kann.
Wir hatten bei dem Signal (oder vielmehr den signalen) bei denen ich das 
ausprobiert hatte ne schlechte Zeitauflösung (zu geringe 
Samplingfrequenz). Das SNR was wir aus den analogen Werten haben 
berücksichtigt diese schlechte digitalisierung ja aber nicht. Kann ich 
da in meine Auswertung rein schreiben, dass das SNR nach "deiner 
Methode" einen kleineren Wert liefert weil es das 
"Digitalisierungsrauschen" (gibt es das Wort eigentlich?) 
berücksichtigt?

Nochmal DANKE für die Hilfe!

von Michael L. (Gast)


Lesenswert?

Hallo Christian,

> also ich glaube mittlerweile zu verstehen was du vorgeschlagen hast. Ich
> hatte das Ganze schonmal an nem Signal ausprobiert bei dem wir rauschen
> und signal einmal getrennt und dann zusammen aufgezeichnet haben (damit
> kann man das SNR ja ganz leicht bestimmen - einfach aus den
> Effektivwerten).
Du kannst es ja mal mit Testsignalen machen. Dazu nimmst Du irgendein 
Signal und gibst Rauschen dazu (Funktion 'awgn' mit dem Parameter 
'measured').

> Ich hab da ne Vermutung wüsste aber gern ob die hinkommen kann.
> Wir hatten bei dem Signal (oder vielmehr den signalen) bei denen ich das
> ausprobiert hatte ne schlechte Zeitauflösung (zu geringe
> Samplingfrequenz).
Wie schlecht ist denn "zu schlecht"? Wenn Du unterhalb der 
Nyquist-Frequenz bist, ist Information verloren gegangen.

> Das SNR was wir aus den analogen Werten haben
> berücksichtigt diese schlechte digitalisierung ja aber nicht. Kann ich
> da in meine Auswertung rein schreiben, dass das SNR nach "deiner
> Methode" einen kleineren Wert liefert weil es das
> "Digitalisierungsrauschen" (gibt es das Wort eigentlich?)
> berücksichtigt?
Quantisierungsrauschen kenne ich; das ist aber etwas anderes. Wenn Du 
wirklich Aliasing-Fehler hast, solltest Du mit besserer Zeitauflösung 
neu messen.


Gruß,
  Michael

von Christian V. (aureusphoenix)


Lesenswert?

Hi Michael,
ich glaub ich bin dem Problem mittlerweile noch etwas dichter auf der 
Spur. 100%ig sicher bin ich mir aber noch nicht. (Auf das 
Samplingtheorem haben wir schon geachtet - das haben wir uns in ner 
anderen Aufgabe genauer angeguckt)
Wir hatten ne Samplingfrequenz von 1000Hz und ne Signalfrequenz von 
200Hz. Hab mir das jetzt mal bei ner äquidistanten Abtastung 
vorgestellt. Dabei erreicht man ja im schlimmsten Fall genau ein 
Dreieck. Und ich glaub hier liegt das Problem. Der Effektivwert von nem 
Dreieck is nunmal um den Faktor 1,225 kleiner als von nem Sinus. Das 
Rauschen ist dagegen, weil es ja eh stochastisch ist, nicht in der Weise 
von der Zeitdiskretisierung beeinflusst. Deshalb ist unser 
Signaleffektivwert um diesen Faktor kleiner als er bei ner analogen 
Messung sein sollte während die effektive Rauschspannung gleich bleibt. 
Deshalb ergibt die Messung aus der AKF ein schlechteres SNR.

Hatte ja glaub ich weiter oben schon gesagt das wir eine Messung hatten 
wo wir alles einzeln aufgenommen haben. Mit der hab ich das jetzt 
durchprobiert. Leider sind das auch nur 5-6 Punkte die nicht wirklich 
aussagekräftig sind und recht weit um 1,225 streuen.

Was meinst du dazu? Wäre das ne Begründung die Sinn ergibt?
Was anderes fällt mir nicht mehr ein.

von Michael L. (Gast)


Lesenswert?

Hallo Christian,

ja, sowas kann passieren.

Was Du durch die Summenbildung

ja machst, ist eine Approximation Deines Signals durch eine stückweise 
konstante Funktion. (In der diskreten Theorie fällt natürlich das
 weg, aber das ist ja nur ein Faktor.)
Du schätzt also die Signalenergie falsch ab.

Wie kann das sein, wenn Du doch das Abtasttheorem einhältst?
Die Antwort hierauf ist einfach: Du kannst das Abtasttheorem theoretisch 
betrachtet nie einhalten! Denn nach einem mathematischen Satz sind 
bandbegrenzte Signale (wie Du sie mit f<500Hz forderst) immer zeitlich 
unendlich ausgedehnt. Um das Abtasttheorem einzuhalten, müßtest Du 
unendlich lange messen.

Welche praktische Konsequenz hat das?
Wenn es Dir auf eine genaue Signalrekonstruktion ankommt, mußt Du 
entweder eine sehr hohe Abtastfrequenz wählen (Faktor 10, 20, 30 über 
der maximalen Signalfrequenz bzw. Bandbreite).

Oder Du verwendest lange Signale und verwendest zur Rekonstruktion die 
sogenannte Samplingreihe, siehe auch 
http://de.wikipedia.org/wiki/Sinc-Funktion

In der Formel der Samplingreihe erkennst Du den Fehler durch die zu 
kurze Meßzeit daran, daß Dir für Werte außerhalb Deines Meßzeitraumes 
die Abtastwerte fehlen. Die Samplingreihe geht ja von -oo ... +oo. In 
der Regel setzt man für solche Werte dann Null ein und hofft, daß der 
Fehler nicht zu groß wird.

Je weiter Du vom Signalrand wegkommst, umso besser wird allerdings die 
Interpolation mit der Samplingreihe. Das siehst Du an dem Term
, der nach dem Auflösen der sinc-Funktion sinc=sin(x)/x im Nenner steht.

Fazit: Taste das Signal mal deutlich besser ab und erhöhe (sofern 
möglich) die Meßdauer.


Gruß,
  Michael

von Christian V. (aureusphoenix)


Lesenswert?

Danke nochmal!

Mit den theoretischen Grundlagen sollte ich sogar den Versuchsbetreuer 
überfordern können wenn ich das wollte. Aber ich werd wohl nicht alles 
rein bringen können. Es wird so schon vom Umfang ne halbe Diplomarbeit.

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.