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