Forum: Digitale Signalverarbeitung / DSP / Machine Learning Entfernen eines periodischen Rauschanteils


von Matthias S. (matthias_s780)


Lesenswert?

Hallo Zusammen,

ich habe hier eine Aufgabenstellung bei der ich mich freuen würde, wenn 
ich Informationen zum sinnvollen Vorgehen bekommen könnte. Vielleicht 
ist diese Aufgabenstellung so oder so ähnlich auch in anderen Fällen 
relevant.

Ausgangssituation:
Es wird ein Signal eines Beschleunigungsaufnehmer gesampelt (2kHz) 
welches aus 2 Anteilen besteht:
-) kontinuierliches Signal mit stochastischem Rauschen und Signalspitzen 
(um diese geht es letztlich)
-) periodisches Rauschen mit der Periode x (ca. 1s, aber nicht immer 
gleich)


Randbedingung:
- Frequenzbereich des Nutzsignals und des Störsignals in etwas 
identisch. D.h. mit einer FFT kann ich die beiden Anteile nicht trennen 
(denke ich zumindest)
- SV erfolgt bist jetzt komplett in Python, MatLab steht (leider) nicht 
zur Verfügung.

Aufgabe:
Ich würde gerne die Aussagekraft des Nutzsignals verbessern, indem ich 
den Anteil des periodischen Rauschens  aus dem Zeitbereich entferne/ 
reduziere. Gibt es dort Filter im Zeitbereich die man dafür sinnvoll 
einsetzen kann?

Danke&Gruß

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Suchbegriff "adaptive filter dsp"
Man muss das gestörte Signal und ein "Muster" des gewünschten Signals 
oder der Störung eingeben. Die digitale Signalbearbeitung kann dann vor 
allem periodische Signale unterdrücken.
So etwas gibt es für den Funkempfang fertig zu kaufen, oft im 
Lautsprecher eingebaut. Störendes Pfeifen wird ausgelöscht.

https://www.wimo.com/de/catalogsearch/result/index/?p=2&product_list_limit=25&q=lautsprecher+dsp&product_list_order=price_asc

Ich habe einen solchen Lautsprecher der ersten Generation. Darin 
arbeitet ein kleiner Fixkomma-DSP von Analog Devices, an den Parametern 
kann man nichts verändern..

: Bearbeitet durch User
von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Für Python gibt es Zusatzpakete, da scheint etwas zu existieren:
https://pypi.org/project/adaptfilt/
https://pypi.org/project/padasip/
Suchbegriff "adaptive filter" python
das ist aber alles "offline"

Ebenfalls in Python sind viele Gnuradio-Module programmiert, zum Thema:
https://github.com/karel/gr-adapt
https://www.gnuradio.org/doc/sphinx-3.7.0/filter/filter_blk.html
Gnuradio kann "live" Signale filtern.

: Bearbeitet durch User
von Matthias S. (matthias_s780)


Lesenswert?

Ok, viele Dank schon mal für die Antworten.

-) offline ist kein Problem.

-) Aber eine wesentliche Herausforderung ist ja, den periodischen Anteil 
zu identifizieren. Das ist mir noch nicht so klar wie ich das angehen 
soll...


Danke&Gruß

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Meine älteste Literaturstelle ist von 1995, (anscheinend zwei finnische 
Witzbolde, die sich als Großfirma ausgeben "Alef Null International 
Signal Processing Division", aber der Text ist seriös):
https://www.tapr.org/pdf/doc1.pdf
https://www.tapr.org/pdf/doc2.pdf
leider in zwei Hälften geteilt, das Kapitel ist genau an der Trennstelle 
ab PDF-Seite 34 im ersten Teil:
"QRM and QRN reduction filters"
QRM ist die Amateurfunkabkürzung für "man made noise" das andere 
natürliche Störquellen.

Den Quelltext in DSP56000-Assembler müsste ich auch noch irgendwo haben, 
da kann man vielleicht die praktische Realisierung besser sehen.

Die Software wurde später noch auf das Motorola Evaluationsboard 
übertragen:
ftp://ftp.tapr.org/dsp/Motorola/dsp56002/evm56k/TAPR_evmri/OpManDraft_04 
.pdf
aber der Link hier ist tot, kein Wunder nach so langer Zeit.

: Bearbeitet durch User
von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

Hier die Software zur Alef Null DSP Card 4

https://www.arrl.org/files/file/Technology/tis/info/pdf/9609x008.pdf
Der QEX-Artikel von KC7WW zum "Denoiser", PDF-Seiten 7-9
darin noch eine ältere Literaturangabe aus derselben Zeitschrift
Reyer, S. E., and Hershberger, D., “Using the LMS Algorithms for QRM and 
QRN Reduction,” QEX, September 1992, pp 3-8.

Die Software zum Artikel von KC7WW ist noch vorhanden:
http://www.arrl.org/qexfiles -> 1996 -> QEXASP.ZIP "Source for DSP-based 
audio processor". Das File LMS.DSP enthält den Quellcode für "LMS noise 
reduction / Wiener autonotcher" mit einem DSP-Kit von Analog Devices.

https://d1.amobbs.com/bbs_upload782111/files_26/ourdev_534479.pdf
Ein Kapitel aus einem ARRL-Handbook. Ab Seite 18.29 sind 
"INTERFERENCE-REDUCTION TECHNIQUES" ausführlich erklärt.

https://web.archive.org/web/20100504150450/www.johanforrer.net/EVM/article.html
die Version für das Motorola DSP56002 EVM ebenfalls von Johan Forrer, 
Artikel aus QEX 8/95, nur noch im Webarchiv zu finden.

: Bearbeitet durch User
von Sven B. (scummos)


Lesenswert?

Haenge doch mal ein CSV mit solchen Daten an und vllt auch einen Plot 
und einen Plot der FFT. Ich glaube, ohne ein Bild des Signals vor Augen 
ist es schwer da zu beraten.

Das mit dem gleichen Frequenzbereich verstehe ich nicht. Wenn dein 
Nutzsignal kurze Spikes sind, sind diese relativ breitbandig und eine 
nahezu periodische Stoerung per Notch-Filter auf die FFT zu entfernen 
(zum Beispiel) sollte ausser ein bisschen Ringing kaum was ausmachen.

Ausserdem waere es interessant, was du von dem Signal eigentlich wissen 
willst. Es geht ja bei der Datenverarbeitung nicht darum, optisch 
schoene Graphen zu produzieren, sondern bestimmte Eigenschaften des 
Signals moeglichst korrekt zu bestimmen. Was also willst du wissen -- 
Amplitude, genauer Zeitpunkt, Integral ...?

von Matthias S. (matthias_s780)


Angehängte Dateien:

Lesenswert?

Ich habe ein csv erstellt (1.Sp. Abtastinkrement, 2.Spalte m/s²).

Das Signal stammt von einer Metallscheibe mit Radius r, die ein 
unendliches Metallband abtastet.  Beide Teile sind mit Störungen 
behaftet (Scheibe mit Rauschen mit Periode (r*pi), das Band mit 
stochastischem Rauschen).

Detektieren möchte ich die Peaks in dem Signal, wobei der 
Detektionsalgorithmus dafür fertig ist und funktioniert. Mich würde 
einfach interessieren ob es sich lohnt zu versuchen, das Ausgangssignal 
zu "entrauschen", um die Qualitität der Detektion zu verbessern.

von Sven B. (scummos)


Lesenswert?

Hm, wirkt ein bisschen so, als ob die Stoerungen hauptsachlich von 
irgendwelchen Resonanzen kommen (z.B. Durchmesser des Rads durch 
Schallgeschwindigkeit oder so)? Das Signal sieht fuer mich so aus, als 
ob es dieselben Resonanzen anregt -- ich vermute, es handelt sich bei 
dem Signal um Unebenheiten auf dem Band?

So oder so, ich persoenlich sehe keine einfache Moeglichkeit, da 
irgendwas zu verbessern.

von Matthias S. (matthias_s780)


Lesenswert?

Im Prinzip, ja. Die Peaks sind eindeutige Stellen auf dem Band, deren 
Position über ein Korrelationsintegral bestimmt wird. Das Rad weist 
leider ein stark modales Verhalten auf was sich auch nicht ändern lässt.

von Sven B. (scummos)


Lesenswert?

Matthias S. schrieb:
> deren Position über ein Korrelationsintegral

Ja das klingt gut. Ich glaube nicht, dass bei dieser 
Verarbeitungsmethode durch preprocessing viel zu holen ist.

von Uwe Bonnes (Gast)


Lesenswert?

"Periodischen Rauschsignal", ich krieg die Krise. Rauschen ist per se 
unkorreliert, wenn es periodisch ist, ist es ein Stoersignal.

von Sigi (Gast)


Lesenswert?

Na dann schau mal nach, wie in den unterschiedlichsten
Bereichen Rauschen definiert ist.

von Matthias S. (matthias_s780)


Lesenswert?

Naja, diese Aussage ist denke ich falsch. Es gibt sehr wohl 
stochastische Signale, die periodisch sind und die - vielleicht etwas 
flapsig - als Rauschen bezeichnet werden. Und ich möchte es ja auch 
nicht korrelieren, sondern entfernen um die Aussagekraft der Korrelation 
des Nutzsignals robuster zu kriegen.

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.