Ich versuche derzeit, einen Bandpass zu designen.
Die gesamte Schaltung besteht aus einer Fotodiode mit einem
Transimpedanzverstärker dahinter, dann dem Bandpass und letztlich einem
Schmitt-Trigger. Zweck der Schaltung ist es, ein Rechtecksignal im
Bereich 500Hz - 10kHz aus Rauschen (einmal im bereich ~100Hz und einmal
>30kHz) herauszufiltern.
Der Bandpass besteht zur Zeit aus zwei Hochpässen und einem Tiefpass.
Ich habe mich noch nicht auf einen Operationsverstärker festgelegt, er
sollte nur billig sein. Nach Möglichkeit würde ich gerne den OpAmp auch
noch für den Schmitt-Trigger mitverwenden (entweder also zwei OpAmps mit
je 2 Channels oder einer mit 4).
Leider macht mir die Phasenverschiebung (zu sehen im Bild
"Bandpass_AC.png") allerdings gerade das Signal beim Filtern kaputt. Das
ist zumindest meine Vermutung.
Wie kann ich dieses Problem beheben bzw. ist das überhaupt die richtige
Diagnose?
Es ist unvermeidbar dass ein Bandpaß das Rechtecksignal verformt - egal welchen OPV Du verwendest. Ein 100Hz-Rechtecksignal besteht nach Fourier nun mal nicht nur aus einer 100Hz-Sinus-Grundwelle, sondern einer ganzen Reihe von Fourier-Komponenten, die alle - ohne Amplituden- und Phasenfehler - übertragen werden wollen.
:
Bearbeitet durch User
Hmm, sowas in der Richtung hatte ich befürchtet. Aber an den Frequenzbereich des Rechtecksignals hatte ich gar nicht mehr gedacht. Hast du eine Idee, wie ich dennoch ein brauchbares Signal aus dem Filter bekommen kann?
Entweder Du lebst mit der Kurververformung Deines Rechtecks, oder Du kombinierst einen Bandpass mit einem Allpass. Letzterer zur Korrektur der Phasenfehler des Bandpasses. Bei der praktischen Dimensionierung kann ich Dir nicht weiterhelfen, das ist nun nicht gerade mein Spezialgebiet.
Lass den Hochpass weg. Hast du schon mal die Rauschspannung mit und ohne Hochpass verglichen? Die Anlayse dazu heißt ".NOISE". Bei einem 1MegOhm feedback-Widerstand dürfte der Unterschied nicht mehr so groß sein.
Beitrag "Re: Phasenproblem beim Bandpass mit OpAmps" > Lass den Hochpass weg Den Hochpass kann ich leider nicht weglassen, da bei 100Hz mein Rauschen potentiell größer ist als mein Signal.
JL Euler schrieb: > Beitrag "Re: Phasenproblem beim Bandpass mit OpAmps" > >> Lass den Hochpass weg > > Den Hochpass kann ich leider nicht weglassen, da bei 100Hz mein Rauschen > potentiell größer ist als mein Signal. Also ich schätze da einen Unterschied von 5uV durch das Rauschen von 0 bis 500Hz. Der 1MegOhm Widerstand macht 20uV Rauschen über die 30kHz. Ich ging jetzt davon aus, dass du eine Si-Photodiode hast und keine Ge-Diode. In LTspice kann man V(onoise) integrieren lassen um die Rauschspannung zu bekommen.
:
Bearbeitet durch User
Helmut S. schrieb: > In LTspice kann man V(onoise) integrieren lassen um die Rauschspannung > zu bekommen. Wie genau geht das? Doch eigentlich nur bei einer .trans Analyse, oder? Helmut S. schrieb: > Ich ging jetzt davon aus, dass du eine Si-Photodiode hast Das ist richtig. Eine SFH 2440 um genau zu sein Helmut S. schrieb: > Der 1MegOhm Widerstand macht 20uV Rauschen über die 30kHz. Der Verstärkungswiderstand selbst erzeugt also mehr Rauschen aus als je über die Photodiode ankommen würde?
Häng doch mal den Schaltplan und die Modell-Datei mit OPA381 umd LM321 an. V(onoise) plotten. Die x-Achse auf den Bereich setzen in dem man die Rauschspannungsdichte integrieren will. .noise V(out) I1 dec 100 1 30k Cursor auf V(onoise) bewegen CTRL-linke-Maustaste Damit geht ein kleines Fenster auf in dem die Rauschspannung angezeigt wird.
:
Bearbeitet durch User
Anbei sind die gewünschten Dateien. V(out) wäre in diesem Fall bisher Vbp (Bandpass) oder Vap (Allpass), wobei ich den Allpass noch nicht richtig dimensioniert habe. Die Rauschspannung an Vap beträgt ca 37µV.
Ich habe deine Schaltung mal angeschaut. LTspice in V() gehören immer runde Klammern hin. .noise V(Vbp) I1 dec 100 1 100k Die untere Frequenz habe ich auf 1Hz gelegt. Da LTspice in der Schaltung erst mit der "pseudo transient analysis" den Arbeitspunkt findet, überspringe ich die anderen Versuche. .options noopiter gminsteps=0 srcsteps=0 Bei mir sind die Modell-Dateien immer im Ordner des Schaltplans. Deshalb reicht ein .include OPA381.LIB .include LM321LV.cir Damit hat man alles in einem Ordner. Zum Weitergeben einfach den Ordner zippen. Den kann man dann auf jedem Rechner in jedem beliebigen Verzeichnis entpacken und sofort simulieren. So muss das sein. Schaltung Die Rauschspannung am Ausgang V(bp) ist mit und ohne Hochpass fast identisch. Das bedeutet du kannst den Hochpass entfernen, wenn der nur wegen weniger Rauschen drin ist. Der LM321 hat einen Biasstrom von bis zu 0,5uA. Deshalb macht man da höchstens Widerstände mit wenigen 10kOhm an die Eingänge. Deine Hochpasswiderstände sollten um Faktor 10 kleiner gewählt werden. Photodiode Die Photodiode hat eine Kapazität von C0=135pF, Diese Kapazität gehört in den Schaltplan zwischen Vph und Masse da diese einen starken Einfluß auf das Rauschen hat. Das Rauschen ändert sich von 22uV auf 36uV. Außerdem hat diese Kapazität einen Einfluss auf das Verhalten in der AC-Analyse und im Zeitbereich. Die minimale Kapazität von C1 hängt von C0, dem GBW des Opamps und dem "feedback"-Widerstand ab.
:
Bearbeitet durch User
Helmut S. schrieb: > Das bedeutet du kannst den Hochpass entfernen, wenn der nur > wegen weniger Rauschen drin ist Er soll hauptsächlich Störsignale herausfiltern, das habe ich vielleicht vorher etwas undeutlich formuliert. So soll das 100Hz flimmern und der Gleichanteil von Quellen wie Sonnenlicht abgeschwächt werden. Helmut S. schrieb: > Deine > Hochpasswiderstände sollten um Faktor 10 kleiner gewählt werden. Helmut S. schrieb: > Die Photodiode hat eine Kapazität von C0=135pF, Diese Kapazität gehört > in den Schaltplan zwischen Vph und Masse da diese einen starken Einfluß > auf das Rauschen hat. Helmut S. schrieb: > in V() gehören immer runde Klammern hin. Vielen Dank für die Infos! Helmut S. schrieb: > Den kann man dann auf jedem Rechner in jedem beliebigen > Verzeichnis entpacken und sofort simulieren. Danke für den Tipp :D Könntest Du mir evtl einfach deine Version der Schaltung hochladen?
Im Anhang ist meine Datei. Es gibt übrigens auch ein europäisches Widerstandssysmbol. [Misc] European resistor
:
Bearbeitet durch User
Welchen Polynomkoeffizienten hat denn Dein Filter? Um ein möglichst unverzerrtes Rechteckübertragungsverhalten zu bekommen, sollte der Phasengang im Durchlassbereich linear, d.h. proportional zur Frequenz sein. Dann führt das Filter nur zu einer Verzögerung. Ein Besselfilter wäre also am besten geeignet. Da die obere und die untere Eckfrequenz des Bandpasses weit auseinanderliegen, kann dieser wie in Deiner Simulation als Serienschaltung eines Bessel-Tiefpasses mit einem Bessel-Hochpass realisiert werden. In Deinem Fall hätte der TP die Ordnung 2, der Hochpass die Ordnung 4. Hast Du die Wirkung der beiden Filter auf das Rechtecksignal mal getrennt untersucht? Da das Rechteck mit 1kHz deutlich über der Hochpass-Eckfrequenz von 500 Hz liegt, sollte es nahezu unverzerrt durchgelassen werden. Ein Bessel-Tiefpass mit 30kHz sollte die Ecken allenfalls ein wenig abrunden. Ich vermute, dass Dein Filter von der idealen Besselform stark abweicht und deswegen zu Verzerrungen führt.
Moin, Was ist denn eigentlich das Problem? Inwiefern schauen denn die Signale nach dem Bandpass nicht mehr "schoen" aus? Wie sollten sie denn ausschauen? Das mit dem Bessel fuer weniger Phasenfaxen stimmt zwar prinzipiell, aber bei Filtern mit niedriger Ordnung wie hier, ist der Unterschied zwischen den verschiedenen Approximationen eher klein. Also das wird nicht wesentlich anders werden. Gruss WK
Helmut S. schrieb: > Im Anhang ist meine Datei. > Es gibt übrigens auch ein europäisches Widerstandssysmbol. > [Misc] European resistor Vielen Dank! Ah, den hatte ich noch nicht gefunden. Danke für den Hinweis. Dergute W. schrieb: > Inwiefern schauen denn die Signale > nach dem Bandpass nicht mehr "schoen" aus? Wie sollten sie denn > ausschauen? "nicht mehr schön" heißt, dass das Eingangsignal zu verzerrt ist. Mein Ziel ist es, das Rechtecksignal möglichst genau wieder zu bekommen, so wie es ankommt. Der Filter sit wie gesagt dazu da, um Störsignale bei ~100Hz und >30kHz herauszufiltern. Mike schrieb: > Welchen Polynomkoeffizienten hat denn Dein Filter? Das weiß ich leider gerade nicht, Ist auch das erste Mal, dass ich das im Zusammenhang mit Filtern höre. Filterdesign ist für mich noch etwas Neuland. Mike schrieb: > Ein Besselfilter > wäre also am besten geeignet. Ich muss ganz ehrlich sein, ich weiß leider nicht, wie man einen solchen designt. Trotzdem schonmal vielen Dank für eure Hilfe bisher!
Moin, Hier gibts ein tolles Spielzeug: https://www.analog.com/designtools/en/filterwizard/ Da kannst du probieren, ob's mit Besselfiltern schoen genug wird. Gruss WK
Dergute W. schrieb: > Moin, > > Hier gibts ein tolles Spielzeug: > > https://www.analog.com/designtools/en/filterwizard/ > > Da kannst du probieren, ob's mit Besselfiltern schoen genug wird. > > Gruss > WK Hab mal damit ein Bessel-Filter berechnen lassen. Das Ergebnis mit dem Puls im Zeitbereich zeigt kaum Verbesserungen. Wenn man auf einen Hochpass ein Rechteck mit zu tiefer Frequenz gibt, dann wird der differenziert. Steigert man die Frequenz der Pulse, dann erkennt man den Puls schon besser aber man hat eine Dachschräge. Erst wenn man weit über der Grenzfrequenz liegt, bekommt man wieder ein "schönes" Rechteck am Ausgang.
:
Bearbeitet durch User
Moin, Hab's mir mal angeschaut; also ich wuerd' sagen: Es ist tatsaechlich der Phasengang/Gruppenlaufzeit, die die Probleme macht. Hab' mal aus 3 Sinuessen was "rechteckartiges" gebastelt (gruen) und dann noch diese Sinuesse mal in der Phase so aehnlich verschoben, wie's der Filterwizard bei der Gruppenlaufzeit angezeigt hat(schwarz). Die Gruppenlaufzeit beim Bessel biegt zu tieferen Frequenzen hin schon arg zu hoeheren Werten ab. So wie's aussieht, koennt's sogar besser sein, entgegen der klassischen Lehrmeinung, einen Tschebyscheff-Hochpass niedrigerer Ordunung (also 2.) zu nehmen, weil dessen grosse GLZ-Beule im Sperrbereich ist; und im Durchlass dann weniger. Wenn das nicht reicht, wirds halt arg aufwendig. Dann kann man noch mit ein paar Allpaessen zusaetzliche Beulen in die Gruppenlaufzeit dengeln und muss gucken, dass die zusaetzlichen Beulen zusammen mit der Original-hochpass-gruppenlaufzeitkante sich halbwegs ausbuegeln. Ist ne unangenehme Rechnerei und die Bauteile/OpAmp Anzahl wird sich dann locker verdoppeln bis ver-N-fachen. Gruss WK
Beitrag "Re: Phasenproblem beim Bandpass mit OpAmps" Danke für die Antwort. Es scheint also wirklich keine sehr einfache Lösung zu geben, die nicht gleich die Zahl der OpAmps stark in die Höhe treibt, oder? Was ratet ihr mir als einfachste Lösung?
Moin, JL Euler schrieb: > Es scheint also wirklich keine sehr einfache Lösung zu geben, die nicht > gleich die Zahl der OpAmps stark in die Höhe treibt, oder? Ich seh' sogar nur eine sehr schwierige Loesung mit vielen OpAmps :-) Kommt halt drauf an, was du mit dem Signal weiter anstellen willst. Wenns eh' irgendwann mal digitalisiert wird, dann wird da eine Laufzeitentzerrung wohl simpler sein, kostet aber dann CPU-Power statt Opamps+R+C. Oder eben mit dem komischen Signal leben, von dem man weiss, dass es mal ein Rechteck war, wenns so aussieht. Gruss WK
JL Euler schrieb: > So soll das 100Hz flimmern und der > Gleichanteil von Quellen wie Sonnenlicht abgeschwächt werden. JL Euler schrieb: > Was ratet ihr mir als einfachste Lösung? Wenn deine Probleme tatsächlich nur die 100Hz und der Gleichanteil sind, kannst du vielleicht ein 100Hz-Kerbfilter nehmen, das je nach Güte bei 500Hz vernachlässigbare Phasendrehung macht, und den Gleichanteil einfach durch einen Koppelkondensator abtrennen.
JL Euler schrieb: > Die gesamte Schaltung besteht aus einer Fotodiode mit einem > Transimpedanzverstärker dahinter, dann dem Bandpass und letztlich einem > Schmitt-Trigger. Zweck der Schaltung ist es, ein Rechtecksignal im > Bereich 500Hz - 10kHz aus Rauschen (einmal im bereich ~100Hz und einmal >>30kHz) herauszufiltern. Hallo, es wäre vielleicht mal interessant, wenn du zeigst, wie dein Rohsignal überhaupt aussieht! Kenne mich mit Photodioden nicht so aus...zumal du nicht gesagt hast, was du da eigentlich messen willst...aber wenn du sowohl 50/100Hz als auch Rauschen draufhast, wäre zu überlegen, ob deine Kette Filter-Schmitt-Trigger überhaupt ein sinnvoller Ansatz ist. Wenn es nur um eine Frequenz, 50 oder 100Hz geht, würde ich auch ein Kerbfilter vorschlagen. Das ist aber auch nicht ohne, wenn es mehr als -30dB Unterdrückung bringen soll. Ich vermute jetzt mal einfach, dass du ein anderes Problem hast! Gruß Rainer
JL Euler schrieb: > Es scheint also wirklich keine sehr einfache Lösung > zu geben, die nicht gleich die Zahl der OpAmps stark > in die Höhe treibt, oder? > > Was ratet ihr mir als einfachste Lösung? Naja. Mein Vater pflegt immer zu sagen: "Eine gut gestellte Frage ist schon die halbe Antwort." Oder auch medizinisch: Vor der Therapie kommt die Diagnose. Du sprichst in Deinem Ursprungsbeitrag (anfängertypisch) von "Rauschen". Nun ist Rauschen aber ein zufälliges, breitbandiges, unkorreliertes Signal. Das trifft zum Beispiel auf das thermische Rauschen, das Schrotrauschen und das Funkelrauschen zu. Bereits das sogenannte "Quantisierungsrauschen" bei der A/D-Wandlung ist eigentlich keins (es hängt nämlich direkt funktional vom Nutzsignal ab) und müsste korrekt als "Quantisierungsverzerrung" bezeichnet werden. Fast alles, was von Laien als "Rauschen" bezeichnet wird, ist keins. Allenfalls handelt es sich um Störungen, und die bekämpft man am besten, indem man ihre Ursache abstellt, soweit das möglich ist. Häufig kann man Sensorik auch gegen bestimmte Typen von Störungen abhärten, aber dazu muss man deren Charakteristik erstmal kennen. Steht also die Frage, welches Problem Du EIGENTLICH hast. Darüberhinaus: Hochpässe bestimmen im Sperrbereich die Ableitung (=Anstieg); bei einem Hochpass 4. Ordnung ist das die 4. Ableitung. Es ist also unvermeidlich, dass bei Signalen in der Nähe der Grenzfrequenz starke Verformungen auftreten. Darauf wurdest Du ja schon hingewiesen. Das hängt auch nur wenig vom konkreten Filtertyp ab, sondern ist prinzipbedingt.
Egon D. schrieb: > Es ist also unvermeidlich, dass bei > Signalen in der Nähe der Grenzfrequenz starke Verformungen > auftreten. Darauf wurdest Du ja schon hingewiesen. Das > hängt auch nur wenig vom konkreten Filtertyp ab, sondern > ist prinzipbedingt. Und Rechtecksignale mit analogen Filtern zu "säubern" ist ja eh aussichtslos... Wir brauchen also weitere Infos!!! Gruß Rainer
Danke für die vielen Vorschläge und Ansätze! Egon D. schrieb: > Naja. > Mein Vater pflegt immer zu sagen: "Eine gut gestellte > Frage ist schon die halbe Antwort." Oder auch medizinisch: > Vor der Therapie kommt die Diagnose. Dann möchte ich hier nocheinmal den Sachverhalt genau beschreiben: Ich soll für einen Workshop mit einem Mikrocontroller über eine High-Power LED Daten an einen weiteren Mikrocontroller mit Photodiode senden (beide Controller haben hierbei sowohl eine LED als auch eine Diode). Da das Ganze in geschlossenen Räumen nutzbar sein soll, kommen durch gewöhnliche Lampen Störsignale (kein Rauschen, das ist richtig) in den Bereichen zwischen 0Hz und 100 Hz von Sonnenlicht und gewöhnlichen Lampen und über 30kHz durch Leuchtstoffröhren u.ä. an den Photodioden an. Das übertragene Signal soll hier zu Vorführungszwecken die Werte 500Hz, 1kHz, 2kHz, 4kHz und 10kHz haben. Somit liegen die Störsignale bei N1 = [0Hz, 100Hz] und N2 = [30000Hz, inf) und das Nutzsignal bei S = [500Hz, 10000Hz]. Auf dem Mikrocontroller habe ich 3 Timer zur Verfügung, wobei zwei häufig von anderen Libraries verwendet werden und ich den dritten zur Übertragung meines Signals nutze. Dadurch kann ich auf dem Mikrocontroller selbst nicht digital filtern und müsste das Ganze analog angehen. Unser Budget ist leider stark begrenzt, weshalb wir sowohl für den Controller als auch für die analoge Schaltung nicht übermäßig viel Geld ausgeben können. Da das wahrgenommene Licht der LED immer die gleiche Helligkeit haben soll, wird für die Übertragung eine Manchester Kodierung genutzt. Dadurch wird das übertragene Signal aus Rechtecken bestehen. Um die Signale möglichst einfach und zuverlässig verarbeiten zu können arbeite ich zur Zeit nur mit Interrupts auf der Empfängerseite. Dafür brauche ich allerdings möglichst genau das übertragene Rechtecksignal zurück. Bei der ersten Iteration des Workshops haben wir die in diesem Projekt verwendete Schaltung am Ende leicht abgewandelt und mit einem Schmitt-Trigger versehen. Das Ergebnis war aber leider sowohl teuer als auch unzuverlässig, auch bei einer Übertragungsrate von nur 1kHz. Deshalb ist es nun meine Aufgabe, eine billigere, aber möglichst effiziente Schaltung zu designen.
JL Euler schrieb: > Bei der ersten Iteration des Workshops haben wir die in diesem Projekt > verwendete Schaltung am Ende leicht abgewandelt und mit einem > Schmitt-Trigger versehen. Hier der Link: http://www.ti.com/graphics/reserved/eugraphics/TIIC_2016_Website/Leuven-Report.pdf
JL Euler schrieb: > Da das Ganze in geschlossenen Räumen nutzbar sein soll, kommen durch > gewöhnliche Lampen Störsignale (kein Rauschen, das ist richtig) in den > Bereichen zwischen 0Hz und 100 Hz von Sonnenlicht und gewöhnlichen > Lampen und über 30kHz durch Leuchtstoffröhren u.ä. an den Photodioden > an. > Das übertragene Signal soll hier zu Vorführungszwecken die Werte 500Hz, > 1kHz, 2kHz, 4kHz und 10kHz haben. > > Somit liegen die Störsignale bei N1 = [0Hz, 100Hz] und N2 = [30000Hz, > inf) und das Nutzsignal bei S = [500Hz, 10000Hz]. Ich denke ihr seht die Sache zu einfach. 1. Ist das Störsignal am unteren Ende nicht auf 100Hz begrenzt. Dazu müsste der störende Anteil des Lichtstromes der Lampen genau sinusförmig sein. Das ist aber nicht der Fall. Hier mal beispielhaft die Messung einer LED-Lampe: Beitrag "Re: E27 LED-Lampe aus Metall" Man sieht deutlich, dass da auch noch erhebliche Oberwellen drin sind, die ggfs. bis oder über 500Hz merklich sind. 2. Wenn ihr 10kHz "sauberes" Rechteck übertragen wollt, dann muss eure Übertragungsbandbreite weit größer als die 30kHz sein ab der du aber unterdrücken willst, weil so ein Rechtecksignal eben Harmonische der 3., 5. ... Grundfrequenz enthalten muss. Siehe das Beispiel oben vom guten Weka.
ArnoR schrieb: > Man sieht deutlich, dass da auch noch erhebliche Oberwellen drin sind, > die ggfs. bis oder über 500Hz merklich sind. Solange diese Anteile nicht übermäßig groß sind, sollte das kein großes Problem sein, denke ich. ArnoR schrieb: > 2. Wenn ihr 10kHz "sauberes" Rechteck übertragen wollt, dann muss eure > Übertragungsbandbreite weit größer als die 30kHz sein Ich kenne gerade die Rechnung dazu nicht, aber bis zu welcher Frequenz ginge es denn? 10kHz ist eher ein Optimum, das ich nicht einhalten muss.
JL Euler schrieb: > Ich kenne gerade die Rechnung dazu nicht, aber bis zu welcher Frequenz > ginge es denn? Nehmt euch doch mal einen Simulator und legt einfach Grundwelle und Harmonische übereinander und entscheidet wie gut es sein muss. Man könnte evtl. das Sendesignal vorverzerren, d.h. die Signalverformung, die das Empfängerfilter macht, durch gegenläufiges "Übersteuern" der Sendediode kompensieren.
ArnoR schrieb: > Legt einfach Grundwelle und > Harmonische übereinander und entscheidet wie gut es sein muss. Mit sowas habe ich leider überhaupt keine Erfahrung.
JL Euler schrieb: > ArnoR schrieb: >> Legt einfach Grundwelle und >> Harmonische übereinander und entscheidet wie gut es sein muss. > > Mit sowas habe ich leider überhaupt keine Erfahrung. https://de.wikipedia.org/wiki/Rechteckschwingung
Was für eine Güte hat denn eigentlich dein Bandpass? Hohe Güte also kleine Bandbreite ist zwar schön, erhöht aber die Einschwingzeit des Filters. Für mich sieht das so aus als ob das ganze unglücklich dimensioniert ist. Die Flankensteilheit deines Rohsignals ist deutlich kleiner als die Einschwingzeit des Bandpasses - und wird dementsprechend stark verzerrt. Mir sind deine Anforderungen nicht ganz klar geworden, aber möglicherweise gibt es noch einen anderen Ansatz für deine Problemstellung.
JL Euler schrieb: > Das übertragene Signal soll hier zu Vorführungszwecken die Werte 500Hz, > 1kHz, 2kHz, 4kHz und 10kHz haben. Danke für die konkreten Infos zum Projekt. Und obwohl du noch nicht gesagt hast, was für Daten da übertragen werden sollen, kann man ja jetzt schon mal weiter denken. Mein erster Gedanke war, warum nicht sowas wie eine Fernbedienung "kopieren". Ok, ihr sollt eine Power-Led als Sender benutzen, aber das widerspricht noch nicht dem Prinzip "Fernbedienung". Hier gibts bewährte integrierte Bausteine, die nicht die Welt kosten und dir ein sauberes Nutzsignal für den Controller bereit stellen. Zweiter Gedanke, wenn du eh die Übertragungsraten kennst, dann stell doch deinen Empfänger drauf ein. Etwa so, dass du ein "schlaues" Übertragungsprotokoll bastelst, das dir zuallererst die aktuelle Übertragungsfrequenz extrahiert und dann weißt du, in welchem Raster die Nutzdaten kommen müssen. Mit einem simplen Schmitt-Trigger mit einstellbarer Schaltschwelle und Hysterese, sollte der Controller die Nutzdaten mit einer erträglichen Fehlerrate berechnen können. Vor allem kann er Störungen wegen der bekannten Übertragungsfrequenz relativ gut erkennen. Übrigens bringt der Manchester-Code genau das mit, weil der Flankenwechsel immer entweder mit Clock-Frequenz oder der halben Clock-Frequenz erfolgt. Mein kleines Fazit: erst mal ohne große Filterei an der Software spielen... Gruß und viel Erfolg, Rainer
Rainer V. schrieb: > Und obwohl du noch nicht > gesagt hast, was für Daten da übertragen werden sollen, Die Daten können verschiedenes sein: Zum Beispiel Strings oder Bitmaps. Rainer V. schrieb: > Mein erster Gedanke war, warum nicht > sowas wie eine Fernbedienung "kopieren". Inwiefern meinst du das? Denn die LED muss ja immer noch durchgägnig mit der gleichen Helligkeit leuten, egal ob Daten übertragen werden oder nicht. Rainer V. schrieb: > Mit einem simplen Schmitt-Trigger mit > einstellbarer Schaltschwelle und Hysterese, sollte der Controller die > Nutzdaten mit einer erträglichen Fehlerrate berechnen können. Könnte hier nicht die Überlagerung durch andere Signale zu groß werden, um das Signal zu erkennen? Wie gesagt läuft die Erkennung bisher über Interrupts, was das Ganze sehr einfach macht, da man einfach die Zeiten mit der des vorherigen Interrupts vergleichen kann und das Signal so validieren kann. (Bisher schmeiße ich noch alles weg, wenn ein ungültiges Signal kommt)
Hallo, JL Euler schrieb: > Mit sowas habe ich leider überhaupt keine Erfahrung. https://www.j-berkemeier.de/Fouriersynthese.html Das dürfte selbsterklärend sein. rhf
JL Euler schrieb: > Inwiefern meinst du das? Denn die LED muss ja immer noch durchgägnig mit > der gleichen Helligkeit leuten, egal ob Daten übertragen werden oder > nicht. Na dann schick doch immer "Null" bis eine "Eins" das Datenpaket ankündigt...oder so ähnlich... Ich habe allerdings keine Ahnung, ob ein Wechsel von z.B. 500Hz auf 250Hz irgendwie die Helligkeit der Led deutlich verändern würde. Denkbar wäre ja auch, einen Träger mit der entsprechenden Frequenz einfach zu modulieren. Auch das sollte vom Controller gut erkannt werden können und bringt vielleicht eine noch stabilere Helligkeit. Gruß Rainer
Nach einem Zwischenprojekt bin ich nun wieder hier angekommen. Wir haben derzeit folgende Ideen: - Weiter an einem einfachen, günstigen und dennoch guten Filtersystem basteln - Einen billigen Mikrocontroller zur Filterung mit Software nutzen, damit man dort am Ende wieder Signale ausgeben kann, die vom eigentlichen Controller als Interrupts erkannt werden können - Einen günstigen Filterbaustein finden und integrieren Rainer V. schrieb: > Denkbar wäre ja auch, einen Träger mit der > entsprechenden Frequenz einfach zu modulieren. Wie würde man hier konkret vorgehen? Mit Modulationen hatte ich bisher noch weniger zu tun als mit dem, was ich hier mache. Rainer V. schrieb: > Na dann schick doch immer "Null" bis eine "Eins" das Datenpaket > ankündigt...oder so ähnlich... Genau das tue ich zurzeit. Rainer V. schrieb: > Ich habe allerdings keine Ahnung, ob ein > Wechsel von z.B. 500Hz auf 250Hz irgendwie die Helligkeit der Led > deutlich verändern würde. Man sieht bei einer Sendefrequenz von 1kHz kleine Unterschiede (auch wenn das eigentlich zu schnell sein sollte) Ich bin für eure Vorschläge und Tipps offen, warne aber vor, dass ich mich möglicherweise nicht gut auskennen werde. Nochmal eine kurze Zusammenfassung des Projekts: Mit einer High-Power LED (1 Watt) soll von einem Mikrocontroller zu einem anderen Daten mit sichtbarem Licht übertragen werden. Die Art von Daten ist hier ziemlich austauschbar und soll Dinge wie Strings und Bitmaps enthalten. Die Übertragung soll mit Manchester-Codierung stattfinden, damit die LED immer einen Duty-Cycle von 50% hat und somit gleich hell leuchtet. Die Frequenzen, die zur Übertragung genutzt werden sollen sind 500Hz, 1kHz, 2kHz, 4kHz und 10kHz. Durch andere Lichtquellen wie die Sonne, gewöhnliche LED Lampen und Leuchtstoffröhren kommen hier Störsignale in Form eines Gleichanteils sowie Frequenzen bei 50-100Hz und 30-40kHz hinzu, die heraus gefiltert werden müssten, um eine zuverlässige Erkennung zu gewähren. Beim Empfänger wird das Licht durch eine Fotodiode empfangen, soll dann gefiltert werden und wird schließlich vom Mikrocontroller mittels Interrupts erkannt. Ich würde gerne bei der Interrupt-basierten Erkennung bleiben, da sie einfach ist und eine einfache Statemachine genutzt werden kann, um das Signal zu decodieren. Der Mikrocontroller hat 3 Timer zur Verfügung. Der Erste wird oft von Libraries genutzt und da das Board dazu gedacht ist, selbst Projekte damit zu realisieren (die evtl andere Libraries brauchen) würden wir diesen gerne unbenutzt lassen. Der zweite Timer wird derzeit von uns mit einer Library genutzt, um die Daten in gleichmäßigen Zeitabständen immer wieder zu senden. Der Dritte wird zur eigentlichen Übertragung des Signals genutzt. Die Filterschaltung muss möglichst billig sein, da wir nur ein stark begrenztes Budget haben. Die Kosten sollten sich idealerweise auf höchstens 10 bis 15€ belaufen. Vielen Dank noch einmal
Hallo, nachdem ihr euch also auf das Problem "Filter" eingeschossen habt, wäre es vielleicht sinnvoll, mal Sequenzen des empfangenen Manchester-Code aufzunehmen, damit man ein Gefühl dafür bekommt, wie gut oder schlecht der Empfang überhaupt ist! Gruß Rainer
Moin, JL Euler schrieb: > Wie würde man hier konkret vorgehen? Mit Modulationen hatte ich bisher > noch weniger zu tun als mit dem, was ich hier mache. JL Euler schrieb: > Ich bin für eure Vorschläge und Tipps offen, warne aber vor, dass ich > mich möglicherweise nicht gut auskennen werde. Das sind und bleiben halt ziemlich schlechte Voraussetzungen, fuer das was du vorhast. Ich mein' - was soll man einem vorschlagen, der eine Herztransplantation machen will, sich aber moeglicherweise mit Chirurgie nicht gut auskennen wird? JL Euler schrieb: > Die Frequenzen, die zur Übertragung genutzt werden sollen sind 500Hz, > 1kHz, 2kHz, 4kHz und 10kHz. Moeglicherweise vereinfacht es die Filter, wenn du dich vorher auf eine Frequenz festlegst. Gruss WK
frequenz gleich lassen und in den Phasensprüngen die Amplitude runtermodulieren (fenstern) (wie zB. bei PSK31). Da gibt es Modulatoren und demodulatoren hinreichend beschrieben und hohe Spektren weisst das Nutzsignal auch nicht auf. Wäre das 'ne Idee? So kämst Du mit dem Filter viel besser klar. Seite 6: http://www.arrl.org/files/file/Technology/tis/info/pdf/x9907003.pdf
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.