mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Frequenzzähler + digitales Filter mit pic10


Autor: Leon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich möchte mit einem pic10 Controller Impulse zählen und anschließend
die Frequenz mit einem digitalen Filter filtern.
Hat jemand Erfahrungen damit?

Gibt es Programmbeispiele für digitale Filter mit dem pic10?
Besteht die Möglichkeit pic Programme mit dem pc zu simmulieren? Gibt
es einen Emulator?

Vielen Dank!!!!!!!!!
Leon

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Filter dienen dazu, aus einem Frequenzgemisch bestimmte Frequenzen zu
filtern. Dazu muß man aber die Signale analog abtasten.

Hast Du aber Impulse gezählt, ist alles schon vorbei, dann gibt es
nichts mehr zu filtern.


Peter

Autor: Leon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber ich dachte man kann auch im digitalen Bereich filtern!!!
Es gibt doch digitale Filter...

Autor: ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leon,
natürlich gibt es digitale Filter!!! Aber ich denke mir, das Du die
Reihenfolge wohl etwas vertauscht!
Bevor man ein Signal vermisst (Anzahl der Impulse, Impulsbreite,
etc.p.p) filtert man die Störsignale heraus. Danach gelangt das Signal
an einen Prozessor.
So wie Du es im Moment beschreibst, hört es sich so an als wolltest Du
zuerst Auto fahren und dann in das Auto einsteigen!!

GRUSS
INGO

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

"ich möchte mit einem pic10 Controller Impulse zählen und
anschließend
die Frequenz mit einem digitalen Filter filtern."

Was willst Du eigentlich machen? Impulse Zählen? Dann erscheint als
Ergebnis eine bestimmte Anzahl bis in der nächsten Zählung von Null an
wieder gezählt wird. Oder Du zählst Impulse pro Zeitintervall. Als
Ergebnis erscheint beispielsweise 180 Pulse pro Sekunde. Was könnte man
an so einem Ergebnis Filtern, digital, analog, mittels einer
Rechenvorschrift auf dem Papier und mit Bleistift, in einem
Mikrocontroller mittels einem Programm??? Keine Ahnung, wie man an so
einem Wert etwas Filtern könnte. Geht wahrscheinlich beim besten Willen
nicht.

Oder willst Du einfach nur die Periodendauer Deiner Impulse messen ( Du
nennst es Impulse zählen) und daraus in einem Mikrocontroller die
Frequenz berechnen lassen (Du nennst es digitale Filterung)? Dann
müßtest Du einen reziproken Frequenzzähler aufbauen, was mit einem
Mikrocontroller leicht geht. Der Mikrocontroller mißt die Zeit zwischen
zwei Impulsen und berechent daraus jedesmal den Kehrwert und zeigt ihn
per Display beispielsweise an. Nach jeder Messung muß das Programm nur
Eins durch den Meßwert rechnen. Je nach geforderter Genauigkeit genügt
dafür eine 32-Bit Divisionsroutine.

Oder willst Du gleich die Frequenz messen? Das macht ein
Frequenzzähler. Der zählt, wieviele Impulse pro Zeiteinheit z.B. eine
Sekunde vorbei kommen.

Für die von mir genannten Vorschläge brauchtest Du Dich auch nicht in
die digitale Filterung einarbeiten :-)

Gruß

Autor: Leon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht darum: auf einen Photostrom-Frequenzwandler fällt ein gepulstes
Lichtsignal (Licht an/aus) Tastverhältnis 1:1 mit der Frequenz von
10kHz.
Also 50us Licht AUS und 50us Licht AN.
Der Photostrom-Frequenzwandler liefert eine der Lichtleistung
proportionale Anzahl an Impulsen pro Zeiteinheit.

Es soll die Anzahl der Impusle während der AN Phase (50us) und der
Phase AUS (50us) gezählt werden und dann die Differenz davon geblidet
werden um Dunkelstrom und Fremdlicht zu kompensieren. Die nun innerhalb
von 100us gewonnene Impusanzahl entspricht der tatsächlichen
Lichtleistung.

Die entstehenden Frequenzen sollen nun mit einem Bandpass gefiltert
werden der nur Frequenzen von ca 10Hz bis 100kHz durchläßt um ganz
langsame und sehr schnelle Signaländerungen zu unterdrücken.

Das ganze soll ein Sensor werden der Änderungen der Lichtleistung, die
auf den Photostromfrequentzwandler trifft erkennt. Es soll erkannt
werden wenn sich während der AN Phase die Lichtleistung ändert.
Die Reaktionszeit nach der die Signaländerung erkannt wird sollte max.
1ms betragen.

Vielen Dank!!!

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so!

"Die entstehenden Frequenzen sollen nun mit einem Bandpass
gefiltert..."

Ein Bandpaß mit sooo großer Breite ist etwas ungünstig. Besser einen
Hochpaß mit Grenzfrequenz 10 Hz und einen nachgeschalteten Tiefpaß mit
Grenzfrequenz 100 kHz verwenden. Dimensionierung siehe "Aktiv Filter
Kochbuch"

Anstatt 10 Hz sind wohl 10 kHz gemeint?

Die Messung der Hell- und Dunkelphase müßte vermutlich synchron
erfolgen, damit eine sinnvolle Differenz gebildet werden kann. Also muß
das Meßgerät noch hell von Dunkelphasen unterscheiden können. Einfach
einen Zähler während der Hellphase vorwärts laufen lassen und    in der
Dunkelphase rückwärts laufen lassen. Beim Übergang von hell auf dunkel
wird auf Rückwärtsbetrieb geschaltet. Das ganze könnte man nur mit
CMOS-ICs (auf-Ab-Zähler, Schmitt-Trigger, 7-Segment-Treiber...) oder
mit µC lösen.

Nur interessehalber:
Wo und wofür wird ein Photostrom-Frequenzwandler üblicherweise
verwendet? Sowas ist mir bisher noch nicht begegnet. Ist das eine
Vakuumröhre oder ein Halbleiter?

Gruß

Autor: Leon (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja klar...der Bandpass ist schmäler!!!

Das Auf- und Abwärtszählen ist mit der Sendefrequenz (Licht an und aus)
synchron damit bei Licht an aufwärts und bei Licht auf abwärts gezählt
wird.

Das Zählen soll mit einem uC (nach Möglichkeit PIC10xxx) gemacht
werden.
Das Filter soll ebenfalls mit dem uC realisiert werden.
Gibt es da vielleicht Beispiele wie so ein Programm zum Zählen und
Filtern für den PIC aussehen könnte?

Der Photostrom Frequenzwandler ist ein Halbleiter und kann für alle
möglichen optischen Sensoranwendungen verwendet werden: TSL237 von TAOS
siehe Anhang

Danke Für die Tips!!!

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Es soll die Anzahl der Impusle während der AN Phase (50us) und der
Phase AUS (50us) gezählt werden"

Du schaust Dir Datenblätter wohl nicht gerne an ?

Bei den Testbedingungen (21.8 mW/cm2) liefert der typisch 50kHz, das
sind dann bei 50µs Meßzeit gerademal 2 Impulse.
Und die Dunkelfrequenz ist typisch 0,1Hz, also nichts innerhalb 50µs.

Das ganze kannst Du Dir also voll abschminken mit nur 50µs.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.