Audiosignal, das versucht, auf Null Nullen zurückzukehren

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"

Signal

Warum tut es das? Beachten Sie, dass mein Signal nicht wirklich eine Rechteckwelle ist, sondern eher eine PWM.

Kommen diese aus der Kopfhörerbuchse?
@ MattYoung Ja, das sind sie. Einer ist der linke Kanal, der andere der rechte Kanal
Spielt das eine Rolle? Solange der Empfänger die steigende Flanke des Impulses erkennt, spielt der DC-Pegel keine Rolle. Oder der Empfänger könnte alles über 0,3 Vmax als 1 und darunter als 0 annehmen.
Übermäßiger Gleichstrom kann einige Geräte beschädigen.
Es spielt eine Rolle, denn wenn ich eine bestimmte Menge aufeinanderfolgender Einsen habe, sagen wir 8, würde es gegen 0 konvergieren, und wenn nicht für 8, würde es für eine andere Menge

Antworten (4)

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.

Es gibt jedoch eine Möglichkeit, das zu beheben. Vielleicht kann eine Art Modulation (AM oder FM) verwendet werden, um das Signal zu übertragen (das Signal scheint bei etwa 100 Hz zu liegen, und ich denke, die maximale Audiofrequenz eines Telefons sollte weit über einigen kHz liegen). Das modulierte Signal wird nullzentriert sein.
Keine Modulation erforderlich. Wenn Sie sich die Wellenform genau ansehen, werden Sie sehen, dass die Pulsform in Ordnung ist. Das einzige Problem ist die Bodendrift. Das lässt sich leicht 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.

Dies ist eine großartige Antwort, mit Ausnahme Ihres zweiten Absatzes. Es gibt eine TONNE kommerzieller Geräte, die den Kopfhöreranschluss von Telefonen verwenden, um Daten zum und vom Telefon zu übertragen. Aus neuerer Erinnerung sind zwei: Ryobi Phone Tools -und- ein Kreditkartenleser von einer Firma namens "Square". Es gibt noch viele mehr.
@DwayneReid Nun ja, aber sie sind für die Verwendung mit analogen Kommunikationssignalen vorgesehen. Die Verwendung eines analogen Signalgenerators zur Erzeugung rein digitaler Signale ist kein guter Plan. Sie können über den Kopfhöreranschluss kommunizieren, aber Sie müssen im analogen Bereich arbeiten, nicht im digitalen Bereich – dh so etwas wie OOK eines Audiosignals.
Ich möchte ehrlich gesagt nicht mit Ihnen streiten - Sie geben im Allgemeinen großartige Antworten und ich respektiere Sie. Lassen Sie mich nur ein weiteres Beispiel nennen: Modems. Diese ermöglichen eine zuverlässige und robuste digitale Kommunikation über (manchmal) schreckliche analoge Kommunikationskanäle. Das Internet, das wir heute für selbstverständlich halten, würde nicht existieren, wenn Modems mit Schnittstellen zu Telekommunikationsleitungen nicht erfunden worden wären. Und es gibt so viele weitere Beispiele für Audio-/analoge Pfade, die verwendet werden, um digitale Informationen hin und her zu übertragen. Wenn Sie Ihre Antwort bearbeiten, um den zweiten Absatz zu entfernen, lösche ich gerne meine Kommentare.
Auch hier befinden sie sich im analogen Bereich – sie verwenden analoge (Audio-)Signale, keine digitalen (Ein/Aus-)Signale. Lernen Sie den Unterschied zwischen einem analogen und einem digitalen Signal kennen. Der Hinweis beim MODEM liegt im Namen: MOdulate / DEModulate. Es ist, was es mit dem digitalen Signal macht, um es in ein analoges Signal umzuwandeln, das über ein analoges System wie ein Telefon übertragen werden kann.
Ein letztes Beispiel, das sich speziell mit digitalen Daten befasst, die direkt in einen analogen (Audio-)Pfad eingespeist werden: SMPTE-Timecode. Dies ist ein rein digitales Signal, das verwendet wird, um sowohl Tonband- als auch Filmtransportsysteme zu synchronisieren. Diese Synchronisierung wurde für viele Dinge verwendet: Maschine-zu-Maschine-Synchronisierung, Maschine-zu-Computer-Synchronisierung (Automatisierung) usw. Ein Großteil der Magie, die Disney in den alten Tagen vollbrachte, hätte ohne SMPTE-Timecode nicht existieren können.
Einige der Live-Audio-Recording-Projekte, an denen ich in den 80er Jahren gearbeitet habe, verwendeten 4-24-Spur-Audio-Mehrspur-Recorder, die als redundante 48-Spur-Systeme eingerichtet waren. Der Timecode wurde auf den Spuren 1 und 24 auf jeder Maschine gestreift, was uns 40 einzelne, aber redundante Spuren gab, mit denen wir die Darbietungen aufnehmen konnten. Die Wellenform des Signals, das die Bandmaschinen speist, sind reine digitale Signale: schnelle Anstiegs- und Abfallzeiten mit absolut flachen Höhen und Tiefen. Was vom Band kam, sah einfach schrecklich aus - viel schlimmer als das Top-Signal in der OP-Post. Aber es funktionierte.
SMPTE ist ein Sonderfall. Obwohl es digital erscheinen mag, da es zwei diskrete Pegel verwendet, ist die Form des Signals analog. Zu keinem Zeitpunkt liegt ein ausgedehnter stationärer Zustand vor. Das Signal ändert sich ständig, auch wenn die Zahl nur 0 ist. Das Endergebnis ist eine analoge Wellenform, die zwei verschiedene Spannungen verwendet.
Technisch gesehen ist ein digitales Signal ein analoges Signal. Und wenn man den üblicherweise in Kopfhörerausgängen verwendeten DC-Sperrkondensator berücksichtigt, gibt es eine Vielzahl von „digitalen“ Signalen, die über einen „analogen“ Kopfhörerausgang originalgetreu wiedergegeben werden können. Es gibt viele, viele mehr, die angemessen reproduziert werden können. Die Unterscheidung zwischen analog und digital ist willkürlich, und Ihr letzter Absatz ist auf mehreren Ebenen falsch.
Ein digitales Signal ist ein beliebiges Signal mit zwei Zuständen, das gültige Daten bei 0 Hz haben kann (d. h. immer aus oder immer an). Ein analoges Signal muss einige >0Hz-Frequenzkomponenten haben. Sie können ein digitales Signal nicht zuverlässig durch irgendeinen Hochpassfilter leiten.
Noch ein Kommentar: Wenn Sie sich das obere Signal in der Oszilloskopaufnahme des OP ansehen, werden Sie sehen, dass das ursprüngliche digitale Signal tatsächlich wiederhergestellt wird, sobald das Signal geklemmt wird. Ich schaue mir die Oszilloskopeinstellungen genauer an - die Durchlassspannung einer Siliziumdiode ist zu hoch für die Amplitude, die in das Oszilloskop gelangt. Aber ein Komparator, der einen MOSFET ansteuert, würde einen guten Job machen, indem er das untere Ende des Signals auf Masse klemmt, und die Daten würden originalgetreu wiederhergestellt. Alte Farbfernsehgeräte hatten ein ähnliches Problem und sie verwenden eine Schaltung namens "DC Restorer", um es auf ähnliche Weise zu beheben.
@DwayneReid Grundsätzlich ein System, um das analoge Signal in ein digitales umzuwandeln. Ja, es gibt Möglichkeiten, das Signal zu decodieren, aber die einfache Tatsache ist, dass das OP fälschlicherweise versucht, ein digitales Signal über ein analoges System zu erzeugen, und das zeigt ein zugrunde liegendes Missverständnis darüber, wie analoge Kommunikation funktioniert. Während es unter Umständen möglich sein kann, das Signal wiederherzustellen, wäre es viel besser, die Tatsache zu nutzen, dass es sich um ein analoges Übertragungsmedium handelt, und von Anfang an aktiv ein richtiges analoges Signal zu erzeugen, das unter allen Umständen funktionieren kann. Wie Sie bemerken
In Ihrer Antwort funktioniert es möglicherweise auf einigen Telefonen und möglicherweise nicht auf anderen, es hängt vom Telefon ab. Wenn Sie ein richtiges analoges Signal erzeugen und dieses dann richtig interpretieren (vielleicht einen einfachen Ton OOK und einen Tiefpass verwenden, um eine Rechteckwelle zu erzeugen, vielleicht mit einer zusätzlichen Codierung, um ein zuverlässigeres System zu erhalten), können Sie dies ziemlich garantieren unter allen Umständen funktionieren, und Sie werden sich nicht darauf verlassen, dass das Telefon eine bestimmte spezifische, nicht spezifizierte Umgebung bereitstellt.
Ich bin mir ziemlich sicher, dass wir das Kommentarsystem missbrauchen, um ein Diskussionsforum zu werden. Ich werde aufhören. Ich schließe damit: Es ist einfach, eine DC-Restorer-Schaltung mit jedem Telefon zum Laufen zu bringen: koppeln Sie einfach das Signal in die Schaltung, wenn es vom Telefon kommt. Und - ich denke, es wäre der bessere Ansatz gewesen, dem OP zu helfen, seine Schaltung zum Laufen zu bringen, anstatt sie zu verprügeln.

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 .

01Konstantes Gewicht in seiner einfachsten Form, das bedeutet, ein for 0und ein 10for 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 habe ich tatsächlich getan, nachdem ich erfahren hatte, dass es sich um eine Wechselstromkopplung handelte und was das war
@Olumide Wenn Sie dies letztendlich getan haben, sollte dies wahrscheinlich die akzeptierte Antwort sein, oder? Nicht derjenige, der vorschlägt, Dioden hinzuzufügen, die möglicherweise funktionieren oder nicht.
@fritz Ich habe gefragt, warum sich das Signal so verhält, nicht was zu tun ist, außerdem glaube ich nicht, dass ich die akzeptierte Antwort ändern kann
@Olumide Sie können einfach erneut auf das Häkchen klicken.

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:

  • Es wird nicht bei allen Frequenzen perfekt sein
  • Lange Impulse erfordern mehr „Headroom“

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.

etw

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.