Forum: Digitale Signalverarbeitung / DSP / Machine Learning Moduliertes IR Signal Filtern - DSP sinnvoll?


von Simpert Kraemer D. (Firma: skgrobotics) (skg-rob)


Lesenswert?

Guten Tag,

Bisher hat sich dieses Board immer als hilfreich erwiesen, auch wenn ich 
nur gelesen habe. Ich hoffe, ihr könnt mich wieder mal erleuchten.

In der angehängten Grafik (Sorry, meine Quelle ist nicht 
hochauflösender) sieht man das Modulationsverhalten meines Senders, der 
mit 40kHz (mehr oder weniger, das Objekt arbeitet mWn mit einem MCU und 
Quratz) IR Licht aussendet. Ich möchte die Entfernung zu diesem Objekt 
bestimmen.
Ich hätte dazu zwei Lösungsansätze:
a   Einen Phototransistor an den ADC meines 120mHz Cortex M3 und mit 
einem Kondensator glätten. Nachteil: Ich müsste viel rumexperimentieren 
und könnte das Objekt nicht vom Tageslicht unterscheiden (was eigentlich 
der Sinn des Pulsens ist).
b   Ich filtere die Off Time des Signals digital und werte es dann aus.

Ich habe mich nun gefragt, ob ich b wie folgt realisieren könnte, oder 
ob das Overkill wäre:
Das Signal in einen DSP leiten, filtern und dann die On Times 
weiterleiten an den Cortex M3 und die Amplitude messen (dadurch wird die 
Entfernung bestimmt).
Wäre es eventuell sinnvoller den DSP auszulassen und Filterung und 
Auswertung direkt im Cortex M3 zu machen?
Dazu ist zu beachten, dass ein Cortex M3 schon eine PI Regelung 
berechnet und 6 ADC ausliest (allerdings ein kontinuierliches Signal, 
somit schneller zu verarbeiten). 2 Phototransistor Signale sollen dann

Von dem DSP würde ich mir eventuell erhoffen, dass zum einen natürlich 
die Cortex entlasten könnte. Außerdem könnte es sein, dass ich noch mehr 
Cortex auf meinen Roboter packe wenn ich mehr Phototransistoren brauche. 
Ich denke allerdings nicht, dass ein Cortex die 8 Signale schafft zu 
verarbeiten (alle ADC Eingänge damit belegt), somit wären mehr Cortex 
nötig oder eben ein DSP, der die Vorarbeit leistet.

Wie sieht es mit dem Aufwand für DSP aus? Mindestbeschaltung? Evlt. 
teurer Toolchainkauf wie bei manchen FPGA? Lötbarkeit mit Hand?

Welche DSP könntet ihr mir Empfehlen, wenn einer für mein Projekt Sinn 
macht?


Ich hoffe, alles war verständlich. Bei Unklarheiten bitte Fragen.

Vielen Dank und mfG skg-rob

von sincos (Gast)


Lesenswert?

Geht sehr einfach mit wenig Rechenpower:

40kHz = 25µs.

Taste das Signal alle 6.25µs ( = 25/4) ab. Addiere und Subtrahiere die 
Werte abwechselnd 40mal:

s += wert[0];
c += wert[1];
s -= wert[2];
c -= wert[3];

s += wert[4];
c += wert[5];
s -= wert[6];
c -= wert[7];

...

c += wert[159];

Nach 4x40 Messungen, bzw. 1ms hast Du das Ergebnis. Du musst nur noch 
den geometrischen Mittelwert aus s und c bilden.

Das Ergebnis ist die Amplitude des 40kHz Signals, wenn man es mit einem 
Bandpass von 1kHz filtern würde.

von Strubi (Gast)


Lesenswert?

Hi,

solchen Kram mache ich gern mit dem Blackfin wegen seiner 
Hybrid-Fähigkeiten, die "kleineren" gibts auch mit LQFP, das interne RAM 
würde wohl reichen. Aber: die oben beschriebene Goertzel-Variante wird 
wohl auch dein Cortex ev. in mehreren Kanälen schaffen (solang du die 
Finger von float lässt). Du kannst u.U. mit niedrigeren Frequenzen 
arbeiten und das Signal clever unterabtasten. Genau sowas machen wir 
hier mit Kameras..
Die Quartzgenauigkeit ist hier allerdings Kriterium.

Gruss,

- Strubi

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.