Ich habe zwei verschiedene Signale auf meinem Android-Telefon erstellt, eines als Taktsignal (unteres Signal) und das andere als Datensignal (unteres Signal), aber das Problem ist, dass das Audiosignal immer in Richtung " Boden"
Warum tut es das? Beachten Sie, dass mein Signal nicht wirklich eine Rechteckwelle ist, sondern eher eine PWM.
Das Signal von der Kopfhörerbuchse ist höchstwahrscheinlich AC-gekoppelt.
Der einfache Weg, dies zu beheben, besteht darin, eine Diode von jeder Signalleitung an Masse hinzuzufügen: Anode beider Dioden an Masse, Kathode jeder Diode an Ihre Signalleitung.
Die Dioden wirken als Klemme und lassen das Signal NICHT unter etwa -0,6 V fallen. Der Rest der Signalamplitude liegt über Masse (positiv).
Beachten Sie, dass dies NUR funktioniert, wenn der Ausgang AC-gekoppelt ist.
Der Grund, warum ich dies erwähne, ist, dass das Kopfhörersignal auf Ihrem Telefon möglicherweise AC-gekoppelt ist, Telefone anderer Modelle oder anderer Hersteller jedoch möglicherweise NICHT .
Es gibt jedoch eine Möglichkeit, das zu beheben.
Das liegt daran, dass Sie ein Audiosignal erzeugen - ein Audiosignal ist wechselstromgekoppelt und möchte immer in Richtung Masse driften, da es um Masse zentriert ist.
Die Kopfhörerbuchse eines Android-Telefons kann keine zuverlässigen digitalen Wellenformen erzeugen, da es sich um einen analogen Ausgang handelt. Sie sollten stattdessen etwas auswählen, das Ihren Wünschen entspricht, anstatt zu versuchen, etwas völlig Falsches zu verwenden und schreckliche Ergebnisse zu erzielen.
Um dieses Problem zu lösen, können Sie stattdessen die Codierung so ändern, dass die Summe der tatsächlich über die Leitung gesendeten 1- und 0-Bits gleich wird und die Anzahl aufeinanderfolgender 1s und 0s minimal ist. Dies bedeutet, dass einige zusätzliche Bits über das Kabel gesendet werden, aber es wird die DC-Komponente entfernen, die die Audio-Hardware nicht verarbeiten kann. Dies bedeutet die Verwendung einer Kodierung mit konstanter Gewichtung oder einer gepaarten Disparitätskodierung .
01
Konstantes Gewicht in seiner einfachsten Form, das bedeutet, ein for 0
und ein 10
for a zu senden 1
. Dieses Schema hat den offensichtlichen Nachteil, dass die Desynchronisation während der Dekodierung/Erfassung bedeutet, dass die gesamte Nachricht verschlüsselt wird.
Fortgeschrittener mit gepaarter Disparität zu werden bedeutet, 2 Pakete pro Symbol zu erstellen, das Sie senden möchten, eines mit mehr 0 und eines mit mehr 1, und dann dynamisch basierend auf der Differenz zwischen der Anzahl der bereits gesendeten 1 und 0 auszuwählen.
Das können Sie per Software kompensieren!
Wie Sie an der Form des Signals sehen können (die Kurve, die Ihr Signal langsam auf Masse zieht), ist eine Zeitkomponente beteiligt. Sie können es in der Software ausgleichen, indem Sie die Zeitkonstante emulieren und kompensieren.
Diese Fähigkeit wird leicht eingeschränkt:
Wenn Sie die Basisamplitude des Signals verringern, kann der verfügbare Headroom länger genutzt werden, wodurch Sie längere Pulse kompensieren können. Sie müssen jedoch bedenken, dass sich Ihr Zeitkonstantenkompensator schließlich auf 0 V neu zentrieren muss, da sonst die DC-Vorspannung schließlich auf die maximale positive oder negative Amplitude kriecht und dann abgeschnitten und verzerrt wird.
Die Idee ist also, einen Filter zu entwickeln, der das verstärkt, was der Kopfhörerverstärker begrenzt.
Hier ist ein Beispiel, in dem ich der Rechteckwelle eine Dreieckwelle überlagert habe. Beachten Sie, dass dieses Beispiel eine Vereinfachung ist, da die Spannung der Dreieckwelle normalerweise von der Spannung der Rechteckwelle abhängt. Diese Schaltung funktioniert nur mit dieser bestimmten Rechteckwelle.
Die Werte wurden empirisch ermittelt. Die Rechteckwelle links repräsentiert Ihr Signal. Die beiden identischen Cluster rechts repräsentieren die kapazitive Kopplung Ihres Kopfhörerverstärkers. Im oberen Teil der Schaltung wird das Signal unverändert durchgelassen, wodurch sich die Wellenform im ersten Diagramm ergibt.
Der untere Teil der Schaltung fügt dem Signal eine Dreieckswelle hinzu. Die Phase wird an die Rechteckwelle angepasst. Der Operationsverstärkerteil ist einfach ein Folgeverstärker, der das Signal etwas dämpft, damit der Ausgang für den Kopfhörerverstärker nicht zu laut ist.
Durch Überlagern der Dreieckswelle auf das Originalsignal sieht die Ausgabe eher wie eine Rechteckwelle aus, wie im zweiten Diagramm.
Das dritte Diagramm zeigt die Ausgabe, bevor sie durch die kapazitive Kopplung gefiltert wird.
Sie sollten also versuchen, die Dreieckswelle in Software neu zu implementieren. Hüten Sie sich vor den Fallstricken!
Bearbeiten: Und wie Dwayne Reid betonte, ist diese kapazitive Kopplung spezifisch für Ihr Telefon. Andere Geräte haben möglicherweise andere Eigenschaften oder gar keine Kopplung. Dies ist also nur eine Lösung für Ihr Gerät.
Matt Jung
Olumid
Benutzer70961
Ratschenfreak
Olumid