Hallo! Erstmal meine Anforderung an das System: f0= 38400Hz f1= 38700Hz Baudrate = 300 Baud Frequenz und Baudrate sind gegeben und können leider nicht verändert werden! Auf der Suche nach geeigneten Filtermethoden bin ich auf digitale Filter und hier im speziellen auf den Goertzel Algorithmus gestoßen, da dieser im Vergleich zu einer FFT bzw. FIR und IIR Filtern wesentlich schneller arbeiten soll. Nur liegen die Frequenzen, etwa bei DTMF, wesentlich niedriger und deshalb bin ich nicht sicher ob dieser Algorithmus für meine Frequenzen überhaupt funktioniert bzw. sinvoll ist!? Hier habe ich mich einmal in die Grundlagen des Algorithmus eingelesen: http://www.embedded.com/story/OEG20020819S0057 Die Samplingrate wäre demnach bei mir 80000 ( min 38700*2) Die Auflösung hätte ich aufgrund des geringen Abstandes beider Frequenzen auf 100Hz gelegt. Folglich wäre die Blocksize 800. Die Auswertung eines Blocks würde daher 1/80000Hz * 800 = 10ms benötigen, also länger als ein Bit (3.3ms). Als Controller hätte ich mir einen C8051F5X von Silabs mit 50Mips vorgestellt, eventuell auch noch einen Cortex M3. Nur ist eine sinvolle Auswertung der FSK mit gegebenen Parametern mittels Goertzel Algorithmus überhaupt möglich? Und wenn nein, wäre die Messung der Periodendauer sinvoller? Vielen Dank im Voraus! lg, Mathias
probier's aus, Sourcode vom Algorithmus hast du ja.
Was ist denn sonst noch alles auf der Leitung? Evtl. kann man mit Undersampling arbeiten. Wie groß ist die mögliche VErstimmung zwischen Sender und Empfänger? Es wird dir auf jeden Fall nichts bringen, wenn du nur alle 10 ms eine Aussage bekommst, also solltest Du dich mal mit Zero-Padding befassen und das Fenster in kleineren Abständen neu berechnen. Sag mal GENAU, was das werden soll. Und: Versuch macht Kluch. Octave bzw. Matlab sind deine Freunde.
Den goerzel zum demodulieren von FSK ? Was soll das ? Es gibt genau zwei Frequenzen, die detektiert werden muessen. Dann sollte man sich auch einen Zweikanalfilter basteln, der genau das kann. Das waer dann ein FIR Filter mit je ein paar MACs.
Ohne Anpassung der Frequenzen wird es in der gegebenen Konstellation aber schwierig. Den Görtzel könnte man schon nehmen und er wird auch in einigen ASICs verwendet.
Mal so ne Idee: Signal mittels Bandpass filtern, digitalisieren und mit 38550Hz herunter mischen (mittels IQ-Mischer in Software). Die Drehrichtung des Phasors gibt dann Auskunft über die Frequenz.
Danke für eure Vorschläge, nur was ist jetzt am sinvollsten bzw. am einfachsten umsetzbar ohne sich tief in die Mathematik einarbeiten zu müssen? Idealerweise sollte das Ganze mit einem ATMega oder 8051 realisiert werden können. FIR Filter wären sicher eine Möglichkeit. Kann mir vielleicht jemand überschlagsmäßig sagen welche Ordnung ein solcher haben müsste um beide Frequenzen (38,4kHz und 38,7kHz) zu filtern? Die Mischung klingt auch sehr interessant, jedoch auch nicht wirklich einfach zu realisieren? Außerdem wird hier wohl zusätzlicher Hardwareaufwand nötig sein. lg
Wenn es möglich währe den ADC genau auf (38550 * 4) Hz einzustellen, dann könntest du dein Signal direkt herunter mischen. Nach dem Samplen verwendest du für I jedes vierte Sample und für Q jedes vierte Sample + 1 (90°) (I = s[n*4], Q = s[n*4+1]). Danach können die I/Q-Daten noch um den Faktor k reduziert werden (Ir = I[n*k], Qr = Q[n*k]). Die Richtung des Phasors lässt danach einfach bestimmen.
Hallo! Angenomen ich schaffe es die ADC Messung per Timer-IR auf die gewünschte Mittenfrequenz zu triggern. Somit wäre es wie von dir beschrieben möglich Samples für I und Q aufzunehmen. Nur wie werte ich die aufgenommen Samples dann aus und bekomme schließlich die gewünschte Bitfolge? Leider finde ich im Internet keine konkreten Informationen dazu. Wäre dir sehr dankbar wenn du mir etwas weiterhelfen könntest bzw. Literaturangaben, Softwarebeispiele etc. hättest! Wie rechenintensiv würdest du die Auswertung einschätzen, mit 8-Bit uC noch machbar? lg
Die einzelnen I/Q Samples sind eigentlich nur Komplexe Zahlen. Mittels atan() kann die Phase ermittelt werden. Betrachtet man die Phase mehrerer Samples, kann der Phasenverlauf ermittelt werden. Der Phasenverlauf CW/CCW gibt Auskunft ob die Frequenz grösser oder kleiner 38550Hz ist. Damit das funktioniert, müssen störende Frequenzen vor dem Samplen aus dem Signal gefiltert werden. Der Takt des ADCs darf "keinen" Jitter haben. Eine komplette Lösung kann ich dir nicht geben, am besten probierst du es einfach mal aus.
Moin, ich steh/stand auch vor einem ähnlichen Problem. Ich habe mir die Freq. auf etwa 2 KHz runter gemischt und dann per Soundkarte die Daten eingelesen. Die weitere Bearbeitung dann per Software um zu sehen wie rechenintensiv das ganze ist. Leider bin ich bei 2 FIRs mit zu vielen TABs hängen geblieben :-/, der Vergleich der Frquenzen hat danach aber funktioniert und das Signal konnte rekonstruiert werden. Ich könnte einen Soundkartenchip nehmen und die FIRs in Hardware verbauen, das ist aber ein heiden Aufwand. Um es kurz zu machen: An einem Algorithmus und/oder Erklärung wäre ich auch interessiert. Grüße.
Habe was in Matlab gemacht, was das Verfahren erklären sollte. Ich hoffe es funktioniert auch unter realen Bedingungen (Rauschen, Clk-Jitter, ...).
1 | baud = 300; |
2 | fs = 38550 * 4; |
3 | |
4 | % Signal für Simulation generieren |
5 | l = fs/baud; |
6 | w = 2*pi/(fs/(38400)); |
7 | lo = sin(linspace(0,w*l-1,l)); |
8 | w = 2*pi/(fs/(38700)); |
9 | hi = sin(linspace(0,w*l-1,l)); |
10 | |
11 | % Vom ADC abgetastetes Signal fs = 154200 Hz |
12 | signal = [lo, hi, lo, hi, hi, hi, lo]; |
13 | |
14 | % Analytisches Signal fs = 38550 Hz |
15 | inphase = signal(1:4:length(signal)); |
16 | quadratur = signal((1:4:length(signal))+1); |
17 | |
18 | % Samplingrate dezimieren fs = ~2000 Hz. Kann je nach Auswertung noch |
19 | % weiter dezimiert werden (eventuell durch mitteln). |
20 | inphase_r = inphase(1:20:length(inphase)); |
21 | quadratur_r = quadratur(1:20:length(inphase)); |
22 | |
23 | % Phasenverlauf berechnen. Da nicht die Phase selbst interessiert sonden |
24 | % den Verlauf, kann ein effizienteres Verfahren implementiert werden. |
25 | angles = unwrap(angle(inphase_r + 1i*quadratur_r)); |
26 | |
27 | plot(angles, '-o'); |
Hallo ----! Dank deiner Hilfe habe ich das ganze soweit verstanden! Testweise habe ich das ganze mal in Scilab ausprobiert und folgendermaßen umgeschrieben:
1 | baud = 300; |
2 | fs = 38550 * 4; |
3 | |
4 | // Signal für Simulation generieren |
5 | l = fs/baud; |
6 | w = 2*%pi/(fs/(38400)); |
7 | lo = sin(linspace(0,w*l-1,l)); |
8 | w = 2*%pi/(fs/(38700)); |
9 | hi = sin(linspace(0,w*l-1,l)); |
10 | |
11 | // Vom ADC abgetastetes Signal fs = 154200 Hz |
12 | signal = [lo, hi, lo, hi, hi, hi, lo]; |
13 | |
14 | // Analytisches Signal fs = 38550 Hz |
15 | inphase = signal(1:4:length(signal)); // jeden 4ten Wert von Signal verwenden |
16 | quadratur = signal((1:4:length(signal))+1); //jeden 4ten Wert+1 von Signal verwenden |
17 | |
18 | // Samplingrate dezimieren fs = ~2000 Hz. Kann je nach Auswertung noch |
19 | // weiter dezimiert werden (eventuell durch mitteln). |
20 | inphase_r = inphase(1:20:length(inphase)); //jeden 20igsten Wert von inphase verwenden |
21 | quadratur_r = quadratur(1:20:length(inphase)); //jeden 20igsten Wert von quadratur verwenden |
22 | |
23 | // Phasenverlauf berechnen. Da nicht die Phase selbst interessiert sonden |
24 | // den Verlauf, kann ein effizienteres Verfahren implementiert werden. |
25 | z = inphase_r + %i*quadratur_r; |
26 | angles = atan(imag(z),real(z)); |
27 | |
28 | plot(angles, '-o'); |
Das Ergebnis vom plot sieht jedoch ganz anders aus als bei dir! Die angle-Funktion habe ich durch die arctan Funktion ersetzt. (http://www.scilab.org/product/dic-mat-sci/angle.html) Unwrap gibt es bei Scilab standardmäßig wohl nicht!? Bezüglich der Realisierung in einem uc, beschränkt sich die Rechenarbeit ja dann auf eine atan Funktion? Bei Verwendung einer atan Funktion mit CORDIC (http://www.8051projects.net/downloads108.html), welche mit Shiften, Addieren und Subtrahieren auskommt, wäre das doch wohl auch mit einem 8-Bit uC möglich? Vielen Dank nochmal!
Die unwrap Funktion macht den Unterschied, denn der Bildbereich von atan ist definiert für (-pi, pi). Die Berechnung der Phase mittels atan() dient in diesem Beispiel nur für die Darstellung. Die Drehrichtung sollte sich auch ohne atan direkt aus z ermitteln lassen. Dadurch wird der Rechenaufwand minimal und kann IMO auf einem MCU implementiert werden.
Stimmt jetzt fällts mir selber auf! :-) Ist im Prinzip der gleiche Graph nur das er bei meinem Bild immer bei pi abschneidet! Das heißt wenn ich wie in deinem Beispiel das Signal auf ~2KHz dezimiere, dann würden einem Bit ungefähr 6 Messwerte mit der selben Phasendrehrichtung entsprechen? Bezüglich der Bestimmung der Drehrichtung direkt aus Z, stehe ich gerade irgendwie auf der Leitung! Inphase wäre ja "cos*(w*t+phi)" und Quadratur "j*sin(w*t+phi)"? Nur auch wenn alles bis auf phi konstant bleibt, wie kann ich dann direkt auf die Drehrichtung schließen?
Stell dir einen Zeiger auf der Gaußschen Zahlenebene vor, dieser Zeiger bewegt sich im Uhrzeigersinn wenn z.B. im 1. Quadrant von Messung zu Messung real(Z) grösser und imag(Z) kleiner wird. Du brauchst daher nur den Quadranten und die Änderung an Z zu ermitteln um die Drehrichtung bestimmen zu können.
Hallo! Habe jetzt einmal einen ersten Versuch mit einer anderen Frequenz unternommen, welche ich mir exakt mit Timer-Auto Reload erzeugen kann. Der ADC ist damit getriggert und misst exakt in diesen Abständen. Habe zur Überprüfung auch noch einen Pin getoggelt und die Frequenz mit einem Oszi überprüft! Als Mittenfrequenz habe ich jetzt für Testzwecke 18,75kHz gewählt, folglich wird mit 75kHz abgetastet! Dabei habe ich jeden 4rten Wert in ein Array bInphase[] gespeichert und jeden 4rten Wert + 1(90° phasenverschoben) in das Array bQuadratur[]! Zum Testen habe ich mittels Simulator 18.6kHz und 18.9kHz angelegt! 1.) 18.6kHz am Eingang (18,75kHz Mittenfrequenz) I Q 242 170 11 82 245 176 9 76 248 182 6 70 2.) 18.9kHz am Eingang (18,75kHz Mittenfrequenz) I Q 162 64 96 194 156 58 102 199 149 53 109 204 Prinzipiell ist bei beiden Frequenzen eine Tendenz bzw. Drehung zu erkennen. Vielleicht könntest du mir noch bei der Interpretation des Ergebnisses helfen? Bzw. eine Aussage darüber treffen ob eine Filterung beider Frequnen mit dieser Methode aufgrund def Messergebnisse zielführend ist? lg
Habe jetzt noch den Fehler gefunden, warum sich bei mir immer nur jeder 2te Messwert in die selbe Richtung ändert. Habe ja wie beschrieben die 75kHz an einem Pin ausgegeben, nur wenn ich bei jedem Timer-Überlauf einen Pin Toggle habe ich die doppelte Frequenz also 150kHz und nicht 75kHz :-) Habe jetzt die Frequenz mit der ich messe auf 75kHz geändert und erhalte folgendes Ergebnis: 1.) 18.6kHz am Eingang (18,75kHz Mittenfrequenz) I Q 170 7 176 10 182 12 187 15 193 18 198 22 => Realteil wird größer, Imaginärteil wird kleiner => Drehung CW => niedrigere Frequenz! 2.) 18.9kHz am Eingang (18,75kHz Mittenfrequenz) 64 17 58 21 53 24 48 28 43 32 38 37 => Realteil wird kleiner, Imaginärteil wird größer => Drehung CCW => höhere Frequenz! So wie es aussieht funktioniert die Auswertung im Simulator und ist recht simpel! Wichtig ist eben dass die ADC Messung mit höchster Priorität durchgeführt wird! Hier eben per Timer Auto Reload und getriggerter Messung => Frequenz sollte immer stimmen!
Sehr schön ! Hast du mal ein Signal mit Störungen probiert ?
Sieht schon mal gut aus. Beim Abtasten vom Signal muss man aber vorsichtig sein. Hat der Takt vom ADC Jitter verschlechtert sich der Rauschabstand. Was für einen ADC verwendest du eigentlich und wie betreibst du ihn? Gruss Samuel
Hallo! Mit einem Signal mit Störung habe ich es noch nicht probiert! Bisher habe ich den internen ADC eines LPC900 Derivats verwendet und wie gesagt sind die Messwerte mit dem Simulator entstanden!
Kannst du eine WAV-Datei von ein paar Sekunden Länge posten?
>Frequenz und Baudrate sind gegeben und können leider nicht verändert >werden! Wenn Du nur eine der Frequenzen nimmst und auf Phasenkodierung umsteigst, könnte das Verfahren hier für Dich das richtige sein: Beitrag "PSK 31 Modlulation im Mikrocontroller"
Hall! Das Prinzip des IQ Demodulators würde jetzt ja theoretisch funktionieren. Aufgrund der Tatsache, dass ich jetzt doch einen ARM Cortex M3 verwende bin ich beim überlegen ob ich nicht doch mit einem FIR oder IIR Filter arbeiten soll. Habe mir mit "Filter Solutions" einmal angeschaut welche Ordnung ich bei einem IIR Filter benötigen würde, bzw. wieviele Taps ein vergleichbarer FIR filter benötigt. Also bei einem IIR Filter sieht das mit einer Ordnung von 3 schon sehr gut aus (siehe Anhang)! Ein vergleichbarer FIR Filter würde schon an die 5000 Taps benötigen! Laut dem STM32 Appnote: http://www.st.com/stonline/products/literature/um/14988.pdf benötigt aber schon die Berechnung eines 32 Tap FIR Filters ~50us. Schätzungsweise würde also ein 5000Tap FIR an die 10ms benötigen. Hingegen benötigt ein 8 stufiger IIR Filter nur 28us! D.h. ein 3 stufiger müsste sich noch wesentlich schneller berechnen lassen! Bei Verwendung einer Abtastrate von 80kHz ergibt sich eine Periodendauer von 12,5us pro Messwert. Mit einem IIR Filter 2ter oder 3ter Ordnung wäre es also vielleicht sogar möglich laufend zu messen. Wie sind eure Erfahrungen mit IIR Filtern in der Praxis? Wie wirkt sich die nichtlineare Gruppenlaufzeit aus? FIR scheidet ja leider schon mal aus, weil er schon für eine Berechnung länger als die Bitdauer (3.33ms) benötigen würde. Wie würdet ihr die FSK Demodulation realisieren? In gewissen Abständen die Ausgänge beider IIR Filter vergleichen, oder doch wenn möglich laufend? lg, Mathias
Ich kenne dein reelles Signal nicht um eine Aussage über die Notwendigkeit eines so aufwändigen Filters zu machen. Kannst du das Spektrum deines Signals veröffentlichen? Folgende Massnahmen solltest du aber unbedingt beachten damit das ganze zuverlässig funktioniert (nach Priorität sortiert). 1. Vor dem Sampeln muss das Signal mit einem schmalbandigen Bandpassfilter gefiltert werden. 2. Sauberes Abtasten des Signals (Jitter beachten!). 3. Nach des Mischen also bei inphase und quadratur (siehe Script) beträgt die Frequenz des Signals nur noch 150Hz bei einer sampling rate von 38550Hz. Die Dezimierung könnte verbessert werden, wenn ein Filter eingesetzt würde. Wahrscheinlich reich es, wenn man einfach den Mittelwert bildet (bei der Mittelung von 20 Samples kann sich der SNR bis zu 13 dB verbessern!). Gruss Samuel
Mit dem FIR oder IIR Filter oder ähnlchem hat man noch fast nichts gewinnen. Man hat nur einige Störungen rausgefiltert aus anderen Frequenzbereichen. Die Eigenliche demodulation muß man weiterhin machen. Die Lösung mit dem Phasor ist da schon ganz gut. Wenn der AD wandler es hergibt und man die Recehnzeit hat, könnte man auch mit einer anderen Abtastrate arbeiten. Dann muß man nur ggf. die Mischung wirklich rechnen mit sinus und cosinus werten. Wobei sich das vereinfachen kann wenn die Frequenz in einem einigermaßen einfachen Verhältnis zu der Mischfrequenz steht, dann kann man ein tabelle nehmen, die hat in dem Beistpiel oben gerade nur werte von -1,0 und 1 enthielt. Zum Dezimieren muß man auch keine scharf abgegrenzten Blöcke nehmen. Etwas überlapp und ein kontinuierlicher Übergang sind dabei hilfreich ähnlich wie bei der FFT. Das man eine Datenrate von 300 Baud auslesen will, solle die Rate nach dem Dezimieren schon etwas höher liegen, also eher in der Größenordnung 1000 Hz, etwa so viel bei den Tests oben. Durch die geringe Abtastrate ist die darauffolgende Bestimmung der Steigung relativ unkritisch von der Rechenzeit, den arctan braucht man dann nur noch rund 1000 mal die Sekunde berechnen, und eine große Auflösung wird hier auch nicht gebraucht (8 bis 12 Bits sollten reichen). Eine Alternativ zur Berechnung mit dern Arctan, wäre es eventuell die amplituden für Frequenzen von +150Hz und -150 Hz ähnlich dem Görzelagorithmus zu bestimmen, nur dann halt bei der viel niedriegeren Frequenz und aus den IQ-Daten. Ein wirklich scharfer Filter vor der Modulation ist nicht nötig, die Modulation ist gibt schon eine gute Unterdrückung fremder Frequenzen. Ein analoger Antialiasingfilter ist natürlich trotzdem sinnvoll, und das kann hier halt auch mal ein Bandpass sein, weil man die niedriegen Frequenzen ja nicht braucht.
Hallo! Bezüglich des Spektrums. Es handelt sich um ein kabelgebundenes System, auf dem prinzipiell keine anderen Frequenzen vorhanden sein sollten. Jedoch sollen mögliche Störquellen entlang der Leitung mit beliebiger Frequenz keinen Einfluss auf die Datenübertragung haben. (Außer natürlich die Störquelle hat die selbe Frequenz wie die für die Datenübertragung..) Extern möchte ich maximal den nötigen Antialiasfilter (TP oder eben hier BP) verwenden. Also findet ihr ist es sinvoller die Demodulation mittels IQ Mischer zu machen. Bei Verwendung von zwei IIR Filtern müsste ich ja nur noch die Amplituden der Ausgangssignale vergleichen und hätte somit schon meine Information!? Um noch einmal auf die Auswertung des IQ Mischers zurückzukommen: 1. Ich taste mit der 4fachen Frequenz ab 2. Jeder 4rte Wert = I, Jeder 4rte Wert +1 = Q Anschließend erhalte ich beispielsweise folgende Werte bei f0 am Eingang: n I Q n I Q 1 21 56 21 130 0 2 24 50 22 136 0 3 28 45 23 143 1 4 32 41 24 149 2 5 37 36 25 155 3 6 41 32 26 161 5 7 46 27 27 168 6 8 51 24 28 174 9 9 57 20 29 180 11 10 62 17 30 185 14 11 68 14 31 191 17 12 74 11 32 197 21 13 79 8 33 202 24 14 85 6 34 207 28 15 92 4 35 212 32 16 98 3 36 217 37 17 104 1 37 221 41 18 11 0 38 225 46 19 117 0 39 229 51 20 123 0 40 233 57 Diese Werte könnte man jetzt dezimieren, bzw. einen Mittelwert daraus bilden. Jedoch besteht doch immer das Problem des Überlaufs bei 255? lg
Hm. Was du machst ist natürlich deine Sache. Wie die Leute hier drauf reagieren, deren Sache. Soll das nun was praktisches werden oder als Lernplattform für DSP-Demodulation dienen? Für mich ist das auf Spatzen mit Kanonen geschossen. Irritiert - Abdul
Wird was praktisches und war auch schon als fertiges Produkt analog gelöst. Gibt für mich einige Gründe es diesmal in SW zu realisieren! Lieber mit Kanonen auf Spatzen schießen (da ich die Rechenpower so und so habe) und es funktioniert, als umgekehrt! Keiner mehr eine Anregung? lg
Ich sehe einfach keinen Grund eine simple binäre Modulation aufwändig per DSP zu mathematisieren. Das sieht bei 64QAM anders aus, gerne. Soll heißen, deine vorherigen Designs taugten wohl nix. Der Goertzel ist equivalent zu einer FFT ohne Ausgabe der Phase. Interessant, wenn man gleichzeitig mehrere Frequenzen (n>2!!) beobachten muß, z.B. MFW beim Telefon. Wenn es dir auf maximales Rauschabstand ankommt, brauchste ein FIR als 'Matched Filter'. Soll es besonders elegant sein, dann BP, delay, XOR, LP, Schmitt-Trigger. Kann in Software sein oder teils in Hardware wie z.B. beim PSoC von Cypress. AppNote findest du dort. Das habe ich getestet und funzt entsprechend dem Aufwand sehr gut. Ja, ist alles ohne IQ, so ein Mist aber auch. Viel Spaß!
Hallo! Sry für die späte Antwort! Das vorherige Design funktioniert soweit ganz gut. Gründe jetzt einen digitalen Ansatz zu wagen sind unter anderem: Bauteiltoleranzen, Verfügbarkeit (Chips wie NE567, MF10 etc. sind eher beim Aussterben), Kosten Rechenleistung in Form eines ARM Cortex M3 habe ich, also weiß ich ehrlich gesagt nicht was gegen eine digitale Implementierung spricht? Aber bitte belassen wir es jetzt dabei, Grundsatzdiskussionen helfen wir leider nicht weiter. Der Ansatz von Samuel (----) mit dem IQ Demodulator ist doch extrem simpel zu implementieren und außerdem benötigt er kaum Rechenzeit! Ich werde das ganze jetzt auf meiner Zielplattform implementieren und anschließend in der Praxis testen! Vielleicht hat ja noch jemand eine Idee bezüglich der Auswertung?
Gut, ist ein freies Land lol Welche Anregung? Der Überlauf bei 255? Floating-Point oder als auf Integer skalieren oder gebrochene Int-Frac Darstellung. Das alles jetzt durchzukauen, wird zu langwierig. Du wirst Bücher und Google bemühen müssen. Wenn du genug Zeit hast, ist das ja kein Problem. Such dir AppNotes der Hersteller und moddele das auf deine Parameter um. Ist alles ein alter Hut. Grundsätzlich kannst du dir auch alles zur BPSK-Demodulation reinziehen, da der Unterschied nur minimal ist.
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.