|
Giuseppe |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 14.07.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.10.2011, 09:43
Titel: Signal entrauschen
|
|
|
|
|
Hallo Leute,
z.Zt. beschäftige ich mich mit einem optischen Positionsmesssystem. Die erhaltenen Werte sind zwar zufriedenstellend aber leider verrauscht. Im Zeitsignal sind verschiedene Peaks zu sehen, die auch in der FFT dargestellt werden. Leider ist in der kompletten FFT auch ein Rauschniveau zu sehen, siehe Bilder. Wenn ich nun diese Wegmessung im Frequenzbereich zum Beschleunigungssignal "differenziere" (*-Omega^2) wird leider das Rauschen verstärkt. Dieses Rauschen kommt wohl vom Bildrauschen der Messung. Habe schon einiges versucht, aber leider wird es nicht besser. Wavelet klang sehr vielversprechend aber leider wurden die kleinen Peaks, zu Beginn der Zeitmessung, fast vollständig unterdrückt. Teilweise wurde durch Wavelet auch eine weitere Frequenz dem System aufgeprägt, ein zusätzlicher sehr hoher Peak in der FFT. Da ich mich mit Wavelet-Transformation nicht auskenne habe ich diese möglicherweise nicht korrekt angewandt.
Habt ihr da noch weitere Ideen, wie ich das Signal entrauschen oder zumindest "aufpolieren" kann? Die Rauschamplitude sollte ungefähr dem Rauschen in der Mitte des Zeitschriebs entsprechen. Mit der Wavelet Funktion "wden" kann man leider keine Peaks o.ä. angeben. Hier http://cnx.org/content/m18990/latest/ habe ich etwas gefunden, aber leider scheint es kommerziell zu sein.
(Da das Rauschen über alle Frequenzen vorhanden ist, bringt ein Hoch-, Tief- oder Bandpassfilter bisher nicht zum gewünschten Ergebnis )
Beschreibung: |
|
Download |
Dateiname: |
fft_beschleunigung.png |
Dateigröße: |
9.97 KB |
Heruntergeladen: |
1201 mal |
Beschreibung: |
|
Download |
Dateiname: |
fft_verschiebung.png |
Dateigröße: |
7.81 KB |
Heruntergeladen: |
1128 mal |
Beschreibung: |
|
Download |
Dateiname: |
zeitsignal.png |
Dateigröße: |
11.07 KB |
Heruntergeladen: |
1171 mal |
|
|
|
|
|
Ajax |
Forum-Century
|
|
Beiträge: 176
|
|
|
|
Anmeldedatum: 09.09.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.10.2011, 10:22
Titel:
|
|
Hallo,
ich versuche mich gerade auch ein bißchen an der Wavelet-Transformation. Hierzu verwende ich die Toolbox "Wavelab850" (einfach bei google danach suchen). Ob sich die Wavelet Transformation zum entrauschen deines Signals eignet, kann ich natürlich nicht spontan sagen. Aber einen Versuch ist es sicher wert. In einem Paper wurde eine ähnliche Kurve wie deine mit dem Daubechies-2 Wavelet entrauscht. Damit würde ich also einfach mal anfangen und ein paar Tests machen. Als Threshold wurde die Donoho-Johnstone "universal" Methode verwendet. Das sagt mir zwar bis jetzt nichts, aber es gibt sicher ein paar Paper dazu bei google.
Am Anfang könntest du allerdings auch einfach mal einen Median oder einen Mittelwert- Filter verwenden - vielleicht reicht das ja schon und du musst nicht erst Wavelets verwenden.
mfg
|
|
|
Giuseppe |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 14.07.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.10.2011, 08:49
Titel:
|
|
Danke,
mit einem Medianfilter klappt es leider nicht, da die signifikanten Peaks dadurch auch abgeschwächt werden. Zum Thema Wavelet, da konnte ich die empfohlene Funktion db2 anwenden, allerdings auch ohne den gewünschten Effekt, allerdings konnte ich die Threshold-Funktion "Donoho-Johnstone "universal" Methode" nicht anwenden, sie steht anscheinend bei der Wavelet-Toolbox von Matlab nicht zur Verfügung.
Aber trotzdem Danke für deine Hilfe.
Gruß,
Giuseppe
|
|
|
Kevin |
Forum-Fortgeschrittener
|
|
Beiträge: 93
|
|
|
|
Anmeldedatum: 18.08.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.10.2011, 14:04
Titel:
|
|
Hi,
deine Daten sind doch recht gut. Versuch mal eine Faltung mit einer Gausskurve,d.h. nach der FFT die Hohen Frequenzen abzuschneiden. Mit der Halbwertsbreite kannst du dann die Stärke der Rauschunterdrückung einstellen. Würd mich wundern wenn das nicht geht mit deinen Daten.
Gruß
Kevin
_________________
1000 Buchstaben? Warum nur 6?
|
|
|
Giuseppe |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 14.07.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.10.2011, 15:09
Titel:
|
|
Hi Kevin,
wie meinst du das mit "hohen Frequenzen abschneiden"? In der FFT zu Null setzen? Ich habe ja auch im hohen Frenquenzbereich 2 Peaks, die ich darstellen will. Wenn du irgendeinen Link hast damit ich mich einlesen kann wäre ich dir dankbar.
Gruß,
Giuseppe
|
|
|
Kevin |
Forum-Fortgeschrittener
|
|
Beiträge: 93
|
|
|
|
Anmeldedatum: 18.08.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.10.2011, 15:15
Titel:
|
|
Hi,
nach der FFT bekommst du ja die Fourierkoeffizienten über der Frequenz (oder wahrscheinlich omega). Diese Koeffizienten multiplizierst du dann mit einer Gausskurve. Danach machst du eine Rücktransformation und hast das geglättete Signal. Mit der Halbwertsbreite der Gausskurve kannst du dann einstellen, ab wo die Fourierkoeffizienten klein werden.
Wenns dabei passiert, dass die Ränder krumpelig werden, dann kannst du vor der ersten FFT die Daten künstlich verlängern.
Nen vernünftigen link hab ich nicht gefunden. Und der Wikiartikel ist ein Beispiel für eine didaktische Verfehlung.
Gruß
Kevin
_________________
1000 Buchstaben? Warum nur 6?
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 13.10.2011, 15:46
Titel:
|
|
In meinen Augen wird dann aber auch der hochfrequente Teil gedämpft.
Die Multiplikation mit der Gaussglocke im Frequenzraum ist ja nichts weiter als eine Faltung im Zeitbereich. Die Gaussglocke hat Tiefpassverhalten und wird somit höhe Frequenzen dämpfen. Das ist ja aber nicht erwünscht. Es sollen bestimmte sowohl nieder- als auch hochfrequente Signalanteile bestehen bleiben.
Hast du das Signal mal mit der Toolbox und Wavelet - 1D zerlegt? Kann das Signal überhaupt in die gewünschten Anteile zerlegt werden?
|
|
|
Kevin |
Forum-Fortgeschrittener
|
|
Beiträge: 93
|
|
|
|
Anmeldedatum: 18.08.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.10.2011, 15:59
Titel:
|
|
@DSP
Hast du meinen Vorschlag mal probiert?
Welche hochfrequenten Signale denn? Das Rauschen ist wesentlich höher als die Peaks.
@Guiseppe
geht das dass du einen Auschnitt der Daten hochlädst? Dann könnte man mal ein bisschen rumprobieren. Das Problem sieht mir nämlich bekannt aus.
_________________
1000 Buchstaben? Warum nur 6?
|
|
|
Giuseppe |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 14.07.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.10.2011, 16:14
Titel:
|
|
|
|
|
Hi,
das Rauschen ist über den kompletten Frequenzband zu sehen. Daher ist es in allen Frequenzen vorhanden. Die FFT ist über der Frequenz geplottet. Die Samplingrate war 300Hz, daher die FFT bis 150Hz.
Wenn ich eine Gaußkurve über die FFT lege gehe ich stark davon aus, dass die hohen Peaks auch gedämpft werden.
Ich lade gleich mal ein Datensatz hoch...ich denke *.mat wird das beste sein
Meine Schwierigkeit liegt ja darin, dass ich das Rauschen über einen Hoch-, Tief- oder Bandpass nicht rausbekomme. Eine Gaußkurve wär ja quasi ein Bandpass (oder Tiefpass, wie schon DSP schrieb, wenn sie von -150 bis +150Hz einhüllt) welches die hohen und niedrigen Frequenzen stark abschwächt.
Mit Wavelet kenne ich mich nicht aus. Aber ich habe verschiedene Funktionen mit unterschiedlichen Parametern getestet, leider nicht besonders erfolgreich. Ich bräuchte eine Waveletfunktion, bei der ich das Rauschniveau (Threshold) manuell vorgebe, so wie die Funktion, auf die der Link in meinem ersten Post hinführt. Vor allem die Matlab-Funktion WDEN habe ich zur genüge getestet. Aber der Threshold wird bei den möglichen Parametern irgendwie automatisch "erkannt". Leider sind meine Peaks bei den hohen Frequenzen so klein im Vergleich zum Rauschen, dass diese auch stark gedämpft werden...
Danke übrigens für eure Hilfe
Beschreibung: |
|
Download |
Dateiname: |
zeitsignal.rar |
Dateigröße: |
200.01 KB |
Heruntergeladen: |
658 mal |
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 14.10.2011, 10:19
Titel:
|
|
|
|
|
@ Kevin: Nein...ich hatte es nicht getestet, da ja noch keine Daten vorlagen. Ich kenne aber die Frequenzantwort der Gausskurve und die hat nun mal Tiefpassverhalten.
Ich habe es nun auch mit den Daten probiert und kann das Signal nicht wie gewünscht Filtern, egal wie ich die Fensterlänge oder den alpha Wert wähle.
Ich habe mir dann signal und signal_filt im Frequenzbereich angesehen und meine Vermutung hat sich bestätigt. Ob ich die Filterung nun im Zeit- oder Frequenzbereich durchführe, ist ja egal. Oder habe ich dein Vorgehen etwa missverstanden...
Zitat: |
...nach der FFT bekommst du ja die Fourierkoeffizienten über der Frequenz (oder wahrscheinlich omega). Diese Koeffizienten multiplizierst du dann mit einer Gausskurve |
Wenn du hiermit eine Faltung im Frequenzraum meinst, muss die Gausskurve aber auch erstmal in den Frequenzraum transformiert werden, bevor man die Multiplikation durchführt. Man kann doch nicht einfach die Koeffizienten des Filters (Gausskurve = Impulsantwort des Filters) aus dem Zeitbereich nehmen.
Aber wie gesagt...evtl. habe ich dich auch einfach missverstanden. Ich lasse mich da gern belehren und vom Gegenteil überzeugen.
|
|
|
Kevin |
Forum-Fortgeschrittener
|
|
Beiträge: 93
|
|
|
|
Anmeldedatum: 18.08.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.10.2011, 11:43
Titel:
|
|
Hi ,
im Moment kann ich erstmal garnix sagen, weil ich die Daten nicht lesen kann. Ich benutze hier scilab, daher bringt mir ein *.mat file nicht viel. Hast du den file als ASCII oder evtl. die file descritpion zum mat file?
Gruß
Kevin
_________________
1000 Buchstaben? Warum nur 6?
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|