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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.