Forum: Digitale Signalverarbeitung / DSP / Machine Learning Signal im Rauschen finden


von Michael (Gast)


Lesenswert?

Ich sende und empfange ein Signal mit 40kHz (Ultraschall). Das 
empfangene Signal wird auf einem ARM7 uC ausgewertet. Bei nachlassender 
Signalstärke verschwindet das Signal im Rauschen. Bisher wende ich eine 
FFT an, womit ich ca. 5x schwächere Signale dedektieren kann, jedoch 
reicht das für die Anwendung noch nicht aus.

Was kann ich noch tun um das Signal im Rauschen zu finden?
Sendesignal modulieren?
Wer kann mir einen Tipp geben? Das ganze muss sich jedoch auf einem 
Mikrocontroller im Bereich <100ms rechnen lassen.

von Anja (Gast)


Lesenswert?

Michael schrieb:
> Was kann ich noch tun um das Signal im Rauschen zu finden?
> Sendesignal modulieren?

wie sieht die Eingangsstufe im Empfänger aus?
Gibt es dort einen LC-Resonanzkreis oder einen schmalbandigen Bandpaß?

Gruß Anja

von Michael (Gast)


Lesenswert?

>wie sieht die Eingangsstufe im Empfänger aus?
>Gibt es dort einen LC-Resonanzkreis oder einen schmalbandigen Bandpaß?

Das ist ein rauscharmer Verstärker im Frequenzbereich 30-50kHz. Hier 
lassen sich vermutlich noch ein paar Prozent herausholen.

Aber welche Methoden kann man auf der Softwareseite anwenden?

von Salewski, Stefan (Gast)


Lesenswert?


von Uwe (Gast)


Lesenswert?

guck mal Lockin verstärker AD630

von Salewski, Stefan (Gast)


Lesenswert?

>guck mal Lockin verstärker AD630

Und was wäre dann sein Referenzsignal für Sender und Empfänger?
http://de.wikipedia.org/wiki/Lock-in-Verst%C3%A4rker

von krausi (Gast)


Lesenswert?

Eine Frage zu dem Thema Korrelation: Man muss, wenn ich das richtig 
verstanden habe, eine Signalform abprüfen. Das dauert dann aber die 
gesamte Signalform und limitiert somit die Bandbreite oder?

Wenn ich eine 20 Samples lange Kette prüfe, habe ich nur 5%, oder?

von Matthias L. (Gast)


Lesenswert?

>Was kann ich noch tun um das Signal im Rauschen zu finden?

DSSS ?

von Frank M. (aktenasche)


Lesenswert?

kommt drauf an was für ein SNR/eine BER du haben willst.

einen einfachen tipp kann ich dir nicht geben, da brauchen wir schon 
mehr infos über das system. hier mal ein paar stichworte die mir dazu 
einfallen:

http://en.wikipedia.org/wiki/Estimation_theory
http://de.wikipedia.org/wiki/Autokorrelation
http://de.wikipedia.org/wiki/Forward_Error_Correction

und wie schon gesagt, spread spectrum wär auch noch ne option.

@krausi: was heisst "eine signalform abprüfen"???? korrelation heisst 
eigentlich nur "sich ähnlich sein" (frei übersetzt). wie lang du dein 
signal anschaust ist erstmal wurst, jedenfalls für das grundlegene 
verständnis. wie kommst du von 20 samples auf 5%?

von Julia Signal Recovery (Gast)


Lesenswert?

Salewski, Stefan schrieb:
>>guck mal Lockin verstärker AD630
>
>
>
> Und was wäre dann sein Referenzsignal für Sender und Empfänger?
>
> http://de.wikipedia.org/wiki/Lock-in-Verst%C3%A4rker
>
>

Die 40kHz legt Michael doch an (irgendein Signalgenerator wird da ja 
dahinterstecken), also kann er das als Referenzsignal nehmen. Alternativ 
einen Lock-in mit Virtual Reference Mode nutzen 
(http://www.signalrecovery.com/our-products/lock-in-amplifiers/7230.aspx). 
Der sucht das Signal nach periodischen positiven Nulldurchgängen ab und 
generiert sich mit Hilfe seines internen Oszillators seine 
Referenzfrequenz selbst.

von Max G. (l0wside) Benutzerseite


Lesenswert?

Michael schrieb:
> Ich sende und empfange ein Signal mit 40kHz (Ultraschall). Das
> empfangene Signal wird auf einem ARM7 uC ausgewertet. Bei nachlassender
> Signalstärke verschwindet das Signal im Rauschen. Bisher wende ich eine
> FFT an, womit ich ca. 5x schwächere Signale detektieren kann, jedoch
> reicht das für die Anwendung noch nicht aus.
>
> Was kann ich noch tun um das Signal im Rauschen zu finden?
> Sendesignal modulieren?
> Wer kann mir einen Tipp geben? Das ganze muss sich jedoch auf einem
> Mikrocontroller im Bereich <100ms rechnen lassen.

Hallo Michael,

die analoge Vorfilterung wurde ja schon angesprochen. Es lohnt sicher, 
da Aufwand zu spendieren. Was analog fehlt, kriegst du digital nicht 
mehr rekonstruiert.

Die FFT bringt dir nur eingeschränkt etwas, weil sie im Grunde für jede 
Frequenzstützstelle zwei Korrelationen rechnet (mit sin und cos der 
jeweiligen Frequenz). Die FFT-Werte neben 40 kHz bringen dir erst mal 
recht wenig, du rechnest sie quasi ohne weiteren Zweck aus. Oder 
brauchst du sie anderweitig?
Sind Abtastrate und FFT-Länge so gewählt, dass sich bei 40 kHz 
tatsächlich eine Stützstelle ergibt? Wenn nein, dann sind deine 
Parameter nicht optimal.

Ich würde an deiner Stelle erst mal eine Korrelation mit einem 40 
kHz-Sinus und -Cosinus rechnen, ganz einfach im Zeitbereich. Daraus 
kannst du dann den Betrag bestimmen und auf die empfangene 
Gesamtleistung normieren. Der Rechenaufwand ist ziemlich überschaubar, 
wenn dein µC in Hardware multiplizieren kann - pro Tap vier 
Multiplikationen und eine Addition, plus der Aufwand für die 
Gesamtleistungsschätzung (eine Multiplikation und eine Addition je Tap, 
ggf. kann man das auch noch unterabtasten).

Der Sinus ist an sich als Anregungssignal nicht verkehrt, weil die 
Korrelation so schön einfach zu rechnen ist. Natürlich kannst du auch 
höherwertige (dh. breitbandigere) Anregungen nehmen. Ich würde mit 
Phasenmodulation anfangen, d.h. den gesendeten Sinus zwischendrin ein 
bisschen dehnen und stauchen.

Gruß,

Max

von Tom (Gast)


Lesenswert?

Max G. schrieb:
> Ich würde an deiner Stelle erst mal eine Korrelation mit einem 40
> kHz-Sinus und -Cosinus rechnen, ganz einfach im Zeitbereich.

Wozu der Aufwand mit Sin und Cos. Die Multiplikation mit einem Rechteck 
(+/-) reicht völlig aus. Wenn das Eingangssignal keine Frequenzanteile 
bei 120 kHz und höheren Oberwellen enthält, macht das nichtmal einen 
Unterschied.

von Max G. (l0wside) Benutzerseite


Lesenswert?

Tom schrieb:
> Max G. schrieb:
>> Ich würde an deiner Stelle erst mal eine Korrelation mit einem 40
>> kHz-Sinus und -Cosinus rechnen, ganz einfach im Zeitbereich.
>
> Wozu der Aufwand mit Sin und Cos. Die Multiplikation mit einem Rechteck
> (+/-) reicht völlig aus. Wenn das Eingangssignal keine Frequenzanteile
> bei 120 kHz und höheren Oberwellen enthält, macht das nichtmal einen
> Unterschied.

OK, das ist natürlich noch mal billiger. Bei entsprechender Phasenlage 
kriegst Du aber nur eine Nulllinie raus. Du wirst also zwei Rechtecke 
nehmen müssen.

Wenn ihm der SNR wichtig ist, wird er aber mit sin und cos glücklicher 
werden.

Max

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.