Forum: Analoge Elektronik und Schaltungstechnik Phasenproblem beim Bandpass mit OpAmps


von JL Euler (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Mark S. (voltwide)


Lesenswert?

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
von JL Euler (Gast)


Lesenswert?

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?

von Mark S. (voltwide)


Lesenswert?

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.

von Helmut S. (helmuts)


Lesenswert?

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.

von JL Euler (Gast)


Lesenswert?

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.

von Helmut S. (helmuts)


Lesenswert?

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
von JL Euler (Gast)


Lesenswert?

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?

von Helmut S. (helmuts)


Lesenswert?

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
von JL Euler (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Helmut S. (helmuts)


Lesenswert?

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
von JL Euler (Gast)


Lesenswert?

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?

von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

Im Anhang ist meine Datei.
Es gibt übrigens auch ein europäisches Widerstandssysmbol.
[Misc] European resistor

: Bearbeitet durch User
von S------- R. (simonr)


Lesenswert?

Wäre übrigends Einsatzgebiet eines Lock-In Verstärkers

von Mike (Gast)


Lesenswert?

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.

von Dergute W. (derguteweka)


Lesenswert?

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

von JL Euler (Gast)


Lesenswert?

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!

von Dergute W. (derguteweka)


Lesenswert?

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

von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

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
von Mark S. (voltwide)


Lesenswert?

exakt!

von Dergute W. (derguteweka)


Angehängte Dateien:

Lesenswert?

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

von JL Euler (Gast)


Lesenswert?

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?

von Dergute W. (derguteweka)


Lesenswert?

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

von ArnoR (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Rainer V. (a_zip)


Lesenswert?

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

von Egon D. (Gast)


Lesenswert?

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.

von Rainer V. (a_zip)


Lesenswert?

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

von JL Euler (Gast)


Lesenswert?

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.

von JL Euler (Gast)


Lesenswert?

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

von ArnoR (Gast)


Lesenswert?

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.

von JL Euler (Gast)


Lesenswert?

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.

von ArnoR (Gast)


Lesenswert?

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.

von JL Euler (Gast)


Lesenswert?

ArnoR schrieb:
> Legt einfach Grundwelle und
> Harmonische übereinander und entscheidet wie gut es sein muss.

Mit sowas habe ich leider überhaupt keine Erfahrung.

von ArnoR (Gast)


Lesenswert?

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

von Sonstiger (Gast)


Lesenswert?

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.

von Rainer V. (a_zip)


Lesenswert?

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

von JL Euler (Gast)


Lesenswert?

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)

von Roland F. (rhf)


Lesenswert?

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

von Rainer V. (a_zip)


Lesenswert?

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

von JL Euler (Gast)


Lesenswert?

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

von Rainer V. (a_zip)


Lesenswert?

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

von Dergute W. (derguteweka)


Lesenswert?

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

von äxl (Gast)


Lesenswert?

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