DE102012016755B4 - Verfahren zur Übertragung eines digitalen Signals von einem Sender zu einem Empfänger - Google Patents

Verfahren zur Übertragung eines digitalen Signals von einem Sender zu einem Empfänger Download PDF

Info

Publication number
DE102012016755B4
DE102012016755B4 DE102012016755.5A DE102012016755A DE102012016755B4 DE 102012016755 B4 DE102012016755 B4 DE 102012016755B4 DE 102012016755 A DE102012016755 A DE 102012016755A DE 102012016755 B4 DE102012016755 B4 DE 102012016755B4
Authority
DE
Germany
Prior art keywords
sound
bit
frequency
bits
recipient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102012016755.5A
Other languages
English (en)
Other versions
DE102012016755A1 (de
Inventor
Max Franke
Fabian Häusler
Sebastian Eck
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ECK, SEBASTIAN, DE
FRANKE, MAX, DE
Original Assignee
Sebastian Eck
Max Franke
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sebastian Eck, Max Franke filed Critical Sebastian Eck
Priority to DE102012016755.5A priority Critical patent/DE102012016755B4/de
Publication of DE102012016755A1 publication Critical patent/DE102012016755A1/de
Application granted granted Critical
Publication of DE102012016755B4 publication Critical patent/DE102012016755B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C13/00Voting apparatus
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C23/00Non-electrical signal transmission systems, e.g. optical systems
    • G08C23/02Non-electrical signal transmission systems, e.g. optical systems using infrasonic, sonic or ultrasonic waves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B11/00Transmission systems employing sonic, ultrasonic or infrasonic waves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephone Function (AREA)

Abstract

Verfahren zur Übertragung eines digitalen Signals von einem Sender (1, 10) zu einem Empfänger (1, 10), wobei das digitale Signal eine Mehrzahl von Datenbits (28) umfasst, jedem der Datenbits (28) eine vorgegebene Frequenz in einem Tonsignal (8) zugeordnet wird, und das Tonsignal (8) vom Sender (1, 10) an den Empfänger (1, 10) akustisch übertragen wird, dadurch gekennzeichnet, dass die in dem jeweiligen Tonsignal (8) verwendeten Frequenzen größer als 18 kHz und kleiner als 20 kHz sind und der Zustand des jeweiligen Datenbits (28) anhand des Schalldruckverhältnisses einer im Bereich der dem jeweiligen Datenbit (28) zugeordneten Frequenz zu in einem vorgegebenen Frequenzabstand unter und über der jeweiligen Frequenz liegenden Vergleichsfrequenzen ermittelt wird.

Description

  • Die Erfindung betrifft ein Verfahren zur Übertragung eines digitalen Signals von einem Sender zu einem Empfänger, wobei das digitale Signal eine Mehrzahl von Datenbits umfasst, jedem der Datenbits eine vorgegebene Frequenz in einem Tonsignal zugeordnet wird, und das Tonsignal vom Sender an den Empfänger akustisch übertragen wird,
    Derartige Verfahren sind beispielsweise aus der Webseite ”Geere D.: Sonic Notify – the inaudible QR codes only an app can hear. Online Article in WIRED.CO.UK. 08.02.2012. URL: http://www.wired.co.uk/news/archive/2012-02/08/sonicnotifyaudio” sowie den Druckschriften US 2011/0238192 A1 , US 2003/0117987 A1 , US 2005/0100117 A1 und D 19904747 A1 bekannt.
  • Mobile Endgeräte wie z. B. Smartphones sind heute weit verbreitet. Smartphones ermöglichen durch eine permanente, auf dem Telefonfunknetz basierende Internetverbindung die Ausführung einer Vielzahl von Funktionen, die durch entsprechende als Apps bezeichnete Computerprogrammprodukte gesteuert werden. Bestimmte Apps erlauben auch die Auslösung bestimmter Funktionen durch ein entsprechendes, über das Internet gesendetes Auslösesignal.
  • Eine derartige Auslösung einer Funktion und generell die Übertragung von digitalen Signalen wird jedoch problematisch an Orten, an denen eine Internetverbindung nicht oder nur eingeschränkt zur Verfügung steht, wie beispielsweise Großveranstaltungen. Die Netzüberlastung z. B. bei Konzerten mit zehntausenden Besuchern macht es oft schwer, die mobile Internetanbindung von Smartphones zu benutzen. Auch eine in derartigen Situationen gewünschte Interaktion mit dem Publikum, beispielsweise eine Abstimmung über eine Zugabe bei einem Konzert, ist unter derartigen Umständen kaum möglich.
  • Es ist daher Aufgabe der Erfindung, ein Verfahren der eingangs genannten Art anzugeben, das auch in einer Umgebung mit eingeschränkter oder nicht vorhandener Anbindung an ein Telefonfunknetzwerk ausführbar sind.
  • Diese Aufgabe wird erfindungsgemäß dadurch gelöst, dass die in dem jeweiligen Tonsignal verwendeten Frequenzen größer als 18 kHz und kleiner als 20 kHz sind und der Zustand des jeweiligen Datenbits anhand des Schalldruckverhältnisses einer im Bereich der dem jeweiligen Datenbit zugeordneten Frequenz zu in einem vorgegebenen Frequenzabstand unter und über der jeweiligen Frequenz liegenden Vergleichsfrequenzen ermittelt wird. Hierdurch ist es möglich, eine Mehrzahl von Datenbits zeitgleich zu übertragen. Dies erhöht die Informationsdichte und insbesondere die Auswahl ansteuerbarer Funktionen mit einem einzigen Tonsignal. Eine serielle Übertragung auf einer einzelnen Frequenz oder eine Zuordnung von Bits in bestimmten Takten bei einer seriellen Übertragung wäre bei dem angedachten Anwendungsszenario wesentlich langsamer oder fehleranfälliger.
  • Der Zustand des jeweiligen Bits wird dabei anhand des Schalldruckverhältnisses einer im Bereich der dem jeweiligen Bit zugeordneten Frequenz zu Vergleichsfrequenzen in einem vorgegebenen Frequenzabstand unter und über der jeweiligen Frequenz ermittelt. Mit anderen Worten: Wenn ein Bit gesetzt wird, wird auf der dem Bit zugeordneten Frequenz (mit einem gewissen Unsicherheitsbereich) ein Ton ausgesendet, wobei dies im Verhältnis zu einer Vergleichsfrequenz ermittelt wird.
  • Weiterhin sind die in dem jeweiligen Tonsignal verwendeten Frequenzen größer als 18 kHz und kleiner als 20 kHz. Derartige Töne werden von Menschen nicht wahrgenommen: Schallwellen im Infra- und Ultraschallbereich bestehen aus Frequenzen, die unter bzw. über der menschlichen Wahrnehmungsschwelle liegen. Hier gibt es einen Bereich, der vom Menschen nicht gehört wird, vom Smartphone allerdings aufgenommen werden kann. Handelsübliche Mikrofone in heutigen Smartphones nehmen Signale zwischen 20 Hz und 20.000 Hz ab. Tests der Anmelder haben ergeben, dass bestimmte Smartphones beispielsweise Frequenzen über 20 kHz nicht aufnehmen können. Das menschliche Gehör endet im Normalfall allerdings schon vor 20 kHz. In der Zone an der unteren Grenze zum Ultraschall, d. h. zwischen 18 und 20 kHz, lässt sich das Verfahren daher besonders vorteilhaft realisieren.
  • Vorteilhafterweise ermittelt der Empfänger einen Verschiebungswert einer einem Datenbit zugeordneten, empfangenen Frequenz gegenüber der dem Datenbit zugeordneten vorgegebenen Frequenz und korrigiert die den übrigen Datenbits zugeordneten vorgegebenen Frequenzen anhand des Verschiebungswerts. Hierdurch wird eine Kompensation des Dopplereffekts erreicht, der durch ein Schwenken des Smartphones ausgelöst wird. Der Dopplereffekt verändert die empfangene Frequenz gegenüber der gesendeten. Bei einer Frequenz von 19 kHz, einer Schallgeschwindigkeit von 340 m/s und einer Geschwindigkeit des Beobachters von 2 m/s ergibt sich bereits eine Verschiebung um mehr als 100 Hz. Dieser wird durch die Messung eines vorgegebenen Datenbits ermittelt und in die Auswertung einbezogen.
  • In weiterer vorteilhafter Ausgestaltung haben die den jeweiligen Datenbits zugeordneten Frequenzen einen Mindestabstand von 60, vorzugsweise 100 Hz. Je mehr Frequenzen verwendet werden, desto mehr Bits können übertragen werden. Allerdings ergibt sich durch Schwebungen die Möglichkeit der Überlagerung in hörbare Frequenzen; weiterhin können Auswertungsfehler auftreten. Durch einen Mindestabstand der Frequenzen von 60, vorzugsweise 100 Hz werden diese vermieden.
  • Ein Computerprogrammprodukt, welches in den Speicher eines mobilen Endgeräts geladen werden kann, umfasst vorteilhafterweise Softwarecodeabschschnitte, die, wenn sie ausgeführt werden, das mobile Endgerät zum Zusammenwirken, ggf. als Sender oder Empfänger, in dem Verfahren nach einem der vorhergehenden Ansprüche ertüchtigen.
  • Ein Computerprogrammprodukt, welches in den Speicher eines Tonsystems mit einem Schallgenerator und/oder einem Schalldetektor geladen werden kann, umfasst vorteilhafterweise Softwarecodeabschnitte, die, wenn sie ausgeführt werden, das Tonsystem zum Zusammenwirken, ggf. als Sender oder Empfänger, in dem Verfahren nach einem der vorhergehenden Ansprüche ertüchtigen.
  • Eine Vorrichtung umfasst vorteilhafterweise Mittel, die die Vorrichtung zum Zusammenwirken als Tonsystem, mobiles Endgerät, Sender oder Empfänger in dem beschriebenen Verfahren ertüchtigen.
  • Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, dass durch die Ansteuerung einer großen Menge von Smartphones auf parallelen, unhörbaren Tonfrequenzen vielfältige Funktionen ausgelöst werden können, ohne dass eine Internet- oder sonstige Datenverbindung erforderlich ist. Das Verfahren eignet sich auch zur Integration in bestehende Apps.
  • Die Erfindung wird anhand einer Zeichnung näher erläutert. Darin zeigen:
  • 1 schematisch ein Tonsystem auf einer Bühne mit einer Mehrzahl von mobilen Endgeräten im Zuschauerraum,
  • 2 schematisch eine Darstellung eines Anwendungsszenarios mit mehreren Bühnen,
  • 3 schematisch den Programmablauf in einem mobilen Endgerät,
  • 4 die Zuordnung von Datenbits zu einer Arrayposition mit Frequenzen, und
  • 5 die Zuordnung von Datenbits zu einer Arrayposition mit Frequenzen unter Einfluss des Dopplereffekts.
  • Die 1 zeigt ein Tonsystem 1 auf einer Bühne 2 im Rahmen einer Großveranstaltung. Das Tonsystem 1 umfasst Lautsprecher als Schallgeneratoren 4 auf denen z. B. Musik abgespielt wird. Ein Computer 6, der Bestandteil des Tonsystems 1 einer Veranstaltung angeschlossen ist, generiert ein kodiertes Tonsignal 8. Dieses wird unhörbar und parallel zum normalen Bühnensignal über die Schallgeneratoren 4 ausgegeben. Die mobilen Endgeräte 10 der Zuschauer nehmen den Ton auf, erkennen das kodierte Tonsignal 8, entschlüsseln es und starten eine Funktion. Dadurch, dass das bei allen Handys im Zuschauerraum gleichzeitig passiert, lassen sich besondere Effekte erzielen.
  • In einem Anwendungsszenario können auf dem Bildschirm des mobilen Endgeräts 10 beispielsweise Informationen zur Bühne dargestellt werden, die mittels des Tonsignals 8 übermittelt wurden. Dies ist von besonderem Vorteil in einer Umgebung mit mehreren Bühnen, siehe 2. Die Person steht zunächst außerhalb des Geländes (Position P1). Sobald sie sich in den hörbaren Bereich 12 von Bühne 2 begibt, zeigt die App auf dem mobilen Endgerät 10 die aktuell spielende Band und das weitere Programm des Tages an. Hier ist auch Platz für Zusatzinformationen, wie den aktuellen Songtext. Sobald die Person Position 3 erreicht, springt die App auf Bühne 1 um und zeigt die hierfür relevanten Informationen an.
  • In anderen Anwendungsszenarios werden weitere Funktionen auf den mobilen Endgeräten 10 ausgelöst, so z. B. Bildschirminhalte wie Farbmuster dargestellt, Vibrationsalarme oder Blitzlichter ausgelöst, wahlweise im Takt der auf der Bühne 2 abgespielten Musik. Weiterhin können die jeweiligen Kameras der mobilen Endgeräte 10 ausgelöst werden.
  • In einem weiteren, nicht bildlich dargestellten Anwendungsszenario wird eine Abstimmung über einen Song durchgeführt. Über das Tonsignal 8 werden Antwortoptionen an die mobilen Endgeräte 10 mit jeweils zugeordneten Tonsignalen 8 übertragen. Wählt der Benutzer eines mobilen Endgeräts 10 eine der Optionen aus, spielt das mobile Endgerät 10 das Tonsignal 8 in einer vorgegebenen Lautstärke. Je mehr mobile Endgeräte 10 dasselbe Tonsignal 8 abspielen, desto höher wird der Schalldruck des jeweiligen Tonsignals 8. Anhand der aufgefangenen Schalldrücke lässt sich somit das Abstimmungsergebnis ermitteln.
  • Weitere Anwendungsszenarien ergeben sich am sog. Point-of-sale (POS), z. B. in einem Kaufhaus, auf einer Messe, o. ä. Hier kann beispielsweise ein Ton von einem stationären Lautsprecher ausgesendet und vom Handy empfangen werden, um Infos über ein Produkt zu erfahren. Außerdem könnte ein von uns generierter Ton über vorhandene Beschallungsanlagen am POS ausgestrahlt werden, um Informationen über Sonder-Angebote o. ä. zu übermitteln.
  • Im Folgenden wird ein Computerprogrammprodukt, eine sogenante App beschrieben, die entsprechende Verfahren seitens eines mobilen Endgeräts ermöglicht. Die App wurde mit der Entwicklungsumgebung XCode für das Betriebssystem iOS 5.1 umgesetzt.
  • Für die Übertragung werden zehn Frequenzen genutzt. Das heißt, es werden bis zu zehn Frequenzen gleichzeitig übertragen. Dabei stellt jede einzelne Frequenz genau ein Bit dar (Im Folgenden: Bit 0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Wird die Frequenz deutlich stärker als umliegende Frequenzen wahrgenommen, gilt dieses Bit als angeschaltet: Es gibt eine 1 zurück. Wird es schwächer als die umliegenden Frequenzen wahrgenommen, bildet es eine 0 ab.
  • Rein rechnerisch ergeben zehn Bits 1024 verschiedene Werte. Da hier jedoch ein digitales Signal in ein analoges gewandelt wird, durch ein Medium geschickt wird, das nicht immer genau das zurück gibt, was eingespeist wurde, und das Signal dann wieder digitalisiert wird, ergeben sich zu berücksichtigende Fehlerquellen. Dazu werden zwei so genannte Paritätsbits verwendet, die parallel zu den Datenbits übertragen werden. Um sie zu verwenden, wird zunächst die Anzahl der auf 1 geschalteten Bits in einer Übertragung addiert. Der Rest, der bei einer ganzzahligen Teilung durch vier erhalten wird, zeigt die Paritätsbits an, siehe die folgende Tabelle:
    Datenbits Paritätsbits
    0 1 2 3 4 5 6 7 8 9
    0 0 0 0 0 0 0 0 0 0
    0 0 0 1 0 0 0 0 0 1
    1 1 0 0 1 0 1 0 0 0
    1 1 0 1 1 1 1 1 1 1
  • Auch die Datenbits werden noch aufgeteilt: Aus ihnen werden drei Funktionsbits (Bits 0, 1, 2) und fünf Inhaltsbits (Bits 3, 4, 5, 6, 7) gebildet. Die Funktionsbits geben an, welche Funktion des Programms ausgeführt werden soll (z. B. Bühnenspezifische Informationen, Lichtermeer). Insgesamt sind hier acht Funktionen hinterlegbar. Die Inhaltsbits spezifizieren die Funktion (z. B. rote Farbe, Bühne 3). Für die Übertragung von Text gibt es drei Funktionsbits. Das vordere Bit gibt die Textposition an. Aus einem der beiden hinteren Bits wird der benötigte Buchstabe aktiviert.
  • Das Programm übernimmt die Aufgabe, aus dem eingehenden Schalldetektorsignal ein Datensignal zu bauen, dieses zu dekodieren und daraus Daten zu lesen. Dafür schreibt es die aktuell berechneten Amplituden des Schalldetektors in ein Datenpaket. Ist das Datenpaket voll, wird es durch eine Schnelle Fourier-Transformation geschickt. Hier wird für das Paket die Abbildung eines Frequenzspektrums berechnet. Das heißt, es kann ausgelesen werden, wie stark bestimmte Frequenzen in dem Tonpaket vorhanden sind. Je nachdem, wie die Relation zwischen einer bestimmten Frequenz und den umliegenden Frequenzen ist, wird diese Frequenz als aktiv betrachtet. In diesem Fall bildet sie auf dem resultierenden binären Datenausgang eine 1. Der Datenausgang wird dann ausgelesen und das iPhone reagiert mit der Anzeige einer Information bzw. dem Auslösen einer Funktion. Währenddessen läuft bereits das nächste Datenpaket mit Amplituden in die Fourier-Transformation.
  • 3 zeigt schematisch den Programmablauf in einem mobilen Endgerät 10. Nach dem Programmstart 14 wird zunächst der Bildschirminhalt 16 des Programms, d. h. der App generiert, der von der Klasse MainViewController gesteuert wird. Weiterhin wird die Klasse AVKontroller gestartet, die die Audioanalyse 18 mittels der Klasse AVInit steuert. Die Audioanalyse 18 erfolgt durch zyklischen Aufruf (alle 0,046 s) einer Fourier-Transformation 20 des empfangenen Tonsignals 8. Aus der Fouriertransformation 20 werden die entsprechenden Bits ermittelt, und je nach ermittelter Bitfolge entsprechende Funktionen 22 ausgelöst, so z. B. die Klasse AVATon zur Ausgabe eines Tons 24, die Klasse AVAOrt zur Anzeige von Angaben zur Bühne, die Klasse AVAVoting zur Anzeige von Abstimmungsmöglichkeiten, die Klasse AVAText zum Anzeigen eines Texts, oder die Klasse AVAFarbe zur Anzeige einer Farbe, die ggf. auch über die Klasse AVALampe auf die Blitzlampe des mobilen Endgeräts 10 wirkt. Letztere Funktionen 22 wirken auf den Bildschirminhalt 16 zurück.
  • Das Herzstück des Programms ist die Schnelle Fourier-Transformation. Im Programmcode heißt diese Funktion fuehreFFTdurch. Sie liegt in der Klasse AVFast-FourierTransformation:
    Figure DE102012016755B4_0002
  • Für die Funktion werden zwei Parameter übergeben: in datenInput die Amplituden-Werte des Schalldetektors, in frames die Anzahl der Frames, die dieses Paket beinhaltet. Im Ausführungsbeispiel sind es immer 2048 Frames.
  • 2048 Frames werden aus mehreren Gründen verwendet: Zunächst können bei der Eingabe in eine Schnelle Fourier-Transformation als Anzahl der Werte nur Potenzen von 2 (also zum Beispiel 265, 512, 1024) verwendet werden. Mit dieser Grundvoraussetzung haben mehrere Tests ergeben: 2048 ist der beste Kompromiss aus Genauigkeit und Schnelligkeit.
  • Direkt nach Funktionsaufruf wird geprüft, ob das Array_fftsetup gefüllt ist. Das ist eine so genannte Lookup-Table mit Werten, die für die Fourier-Transformation benötigt werden. Dieses Array wird bei der Initialisierung eines Objekts dieser Klasse angelegt.
  • Figure DE102012016755B4_0003
  • Zunächst werden die Werte in datenInput mit einer Fensterfunktion multipliziert. Fensterfunktionen werden angewandt, um verfälschende Randerscheinungen bei der Fourier-Transformation zu minimieren. Hier wird das Instanzarray _fftFenster verwendet, welches vorher mit dem von-Hann-Fenster generiert wurde.
    COMPLEX SPLIT A;
    A.realp = (float *) malloc(frames/2 * sizeof(float));
    A.imagp = (float *) malloc(frames/2 * sizeof(float));
    vDSP_ctoz((COMPLEX *) datenInput, 2, &A, 1, frames/2);
  • Die Schnelle Fourier-Transformation benötigt die vorliegenden Amplituden-Werte des Schalldetektors als komplexe Zahl – genauer: als geteilte reelle Werte. Dazu werden die reellen Werte aus datenInput in den „Complex Split” A gespalten. Zunächst werden zwei Arrays in A mit jeweils halber Größe initialisiert und entsprechend Speicher im System belegt.
    vDSP_fft_zrip(_fftsetup, &A, 1, 10, FFT_FORWARD);
  • Diese Funktion führt die eigentliche Transformation durch. Wichtig ist, dass die eingehenden Werte von einem &-Zeichen eingeleitet werden. Das bedeutet, dass A auch gleichzeitig Ausgangswert der Funktion ist. Hieraus werden jetzt also auch die Werte des Frequenzspektrums gelesen.
    vDSP_zvmags(&A, 1, A.realp, 1, frames/2);
    bzero(A.imagp, (frames/2) * sizeof(float));
    float scale = (float) 1.0/(2 * frames);
    VDSP_vsmul(A.realp, 1, &scale, A.realp, 1, frames/2);
    vDSP_vsmul(A.imagp, 1, &scale, A.imagp, 1, frames/2);
  • Die gewonnenen Werte werden nun quadriert. Damit wird sichergestellt, dass keine negativen Werte vorkommen. Danach werden sie skaliert.
    float* datenOutput = (float *) malloc(frames * sizeof(float));
    vDSP_ztoc(&A, 1, (COMPLEX *) datenOutput, 2, frames/2);
    free(A.realp);
    free(A.imagp);
  • Aus dem „Complex Split” wird nun wieder ein normales Array datenOutput aus Floating Point-Werten generiert. Danach wird A im Speicher freigegeben. Wichtig: Nach der Fourier- Transformation halbiert sich die Anzahl der Datenwerte. Demnach wird nur jeder zweite Platz in datenOutput beschrieben. In diesem Array stehen nun 1024 Werte, die die Frequenzen zwischen 0 und 22.050 Hz abbilden. Pro Schritt im Array wird etwa 21,53 Hz (22.050 Hz/1024) nach oben gesprungen. Diese Ausgabe wird nun weiterverarbeitet (siehe unten).
  • Die oben beschriebene Funktion wird alle 2048 Frames durchgeführt, bei einer Abtastrate von 44.100 Hz also etwa alle 0,46 Sekunden – rund 21,5 Mal pro Sekunde.
  • Wie bereits erwähnt, werden über das Array 1024 Werte des Frequenzspektrums ausgelesen. Jede Stelle gibt die Stärke der jeweiligen Frequenz. Da nur eine begrenzte Anzahl von Werten zur Verfügung steht, finden Sprünge statt: Schritte von etwa 21,53 Hz.
  • Im Ausführungsbeispiel werden folgende Frequenzen verwendet:
    Array-Position Frequenz (Hz) Funktion
    838 18044,82 Rauschen
    840 18087,89 Rauschen
    848 18260,16 Funktionsbit 0
    854 18389,36 Funktionsbit 1
    860 18518,55 Funktionsbit 2
    866 18647,75 Inhaltsbit 0
    872 18776,95 Inhaltsbit 1
    882 18992,29 Doppler- & Sync-Bit
    892 19207,62 Inhaltsbit 2
    898 19336,82 Inhaltsbit 3
    904 19466,02 Inhaltsbit 4
    910 19595,21 Paritätsbit 0
    916 19724,41 Paritätsbit 1
  • Es fällt auf, dass die Array-Positionen kleine Abstände zueinander haben. Das liegt daran, dass die jeweils davor und dahinter liegenden Frequenzen mit ausgewertet werden, um mögliche Verschiebungen abzufangen (siehe unten).
  • Neben den zehn bereits erwähnten Bits wurde eine weitere Frequenz hinzugenommen. Sie dient als Auslöser der Bit-Analyse und als Hilfsmittel zur Korrektur der durch den Doppler-Effekt auftretenden Verschiebungen. Im Folgenden wird zunächst die Auslöser-Funktion beschrieben:
    float staerkeRauschen = (obtainedReal[838*2] + obtainedReal[840*2]) * 100;
  • Hier wird zunächst die Rauschstärke der Vergleichsbits in eine Variable geschrieben. Diese Vergleichswerte werden benötigt, um herauszufinden, ob die Signalübertragung angeschaltet ist. Die Multiplikation mit 100 erfolgt um eine möglichst eindeutige Bestimmung zu treffen.
  • Figure DE102012016755B4_0004
  • Figure DE102012016755B4_0005
  • Jetzt wird die Rauschstärke mit der aktuellen Stärke auf der Position des Sync-Bits und seiner vier benachbarten Frequenzen verglichen. Die Variable _frequenzVerschiebung wird aus der Doppler-Verschiebung berechnet (Erklärung folgt). Ist der Wert an den Sync-Bit-Stellen deutlich höher als an den Rauschstellen, wird das System als angeschaltet betrachtet und die Variable _syncCounter wird um 1 erhöht. Diese Variable gibt also an, wie oft das Sync-Bit angeschaltet ist.
  • Figure DE102012016755B4_0006
  • Die Variable _counter zählt die Durchläufe der Fourier-Transformation. Bei jedem 25. Durchlauf – also fast jede Sekunde – wird überprüft, ob die reguläre Bit-Auswertung gestartet werden kann. Dafür wird gezählt, ob _syncCounter mindestens 13 Mal innerhalb der letzten 25 Durchläufe erhöht wurde. Ist das der Fall, wird _aktiv auf wahr gesetzt und die Aktivitätsanzeige angeschaltet. Beim späteren Abfragen der Variable _aktiv kann dann die reguläre Bit-Auswertung aktiviert werden.
  • Figure DE102012016755B4_0007
  • Figure DE102012016755B4_0008
  • Das Sync-Bit hat auch eine zweite Funktion: Es gleicht die Doppler-Verschiebung aus. Die 4 und 5 erklärt vereinfacht die Funktionsweise anhand der ersten fünf Inhaltsbits 28, nämlich Bits 0, 1, 2, 3, 4. Die 4 und die 5 zeigen jeweils Array-Positionen 30 zusammen mit der Information, ob auf den jeweiligen Array-Positionen 30 Töne detektiert werden (dargestellt durch Punkte). Weiterhin ist die vordefinierte Zuordnung der Datenbits 28 zu den jeweiligen Array-Positionen 30, d. h. Frequenzen gezeigt.
  • In der ersten Zeile ist jeweils das eingeschaltete Doppler-& Sync-Bit 28 gezeigt. Das bedeutet, dass aktuell auf der Frequenz an der Array-Position 882 ein Ton verschickt wird, der über dem festgelegten Schwellwert liegt. In 3 liegt derzeit keine Frequenzverschiebung vor. Deshalb werden die Bits 0, 1, 2 und 4 auch an ihren vordefinierten Positionen wahrgenommen. An der Array-Position 30 des Bit 3 wird in diesem Szenario eine 0 übertragen.
  • 5 zeigt die zweite Auswertung des Szenarios. Hier tritt eine Doppler-Verschiebung ein, bei der das mobile Endgerät 10 vom Schallgenerator wegbewegt wird. Diese Verschiebung wird erkannt, weil das Sync-Bit in jedem Durchlauf an den fünf Positionen in der ersten Zeile (in Zweier-Schritten) überprüft wird. Da hier festgestellt wird, dass es an der Position 880 anliegt, resultiert eine Doppler-Verschiebung von –2. Diese wird im folgenden Schritt auf die Analyse der Inhaltsbits 28 angewandt: Alle Punkte verschieben sich um einen Schritt nach links – also werden sie an der nächst-tieferen Frequenz ausgelesen. Die Doppler-Verschiebung ist zwar für jede Frequenz verschieden stark. In dem verwendeten kleinen Frequenzspektrum überschreiten sie allerdings nicht die von den einzelnen Array-Positionen vordefinierten Rahmen von 21,53 Hz.
  • Im Code wird zunächst ermittelt, welche der fünf Stellen des Doppler- und Sync-Bits gerade übertragen wird:
    Figure DE102012016755B4_0009
  • Mit einer for-Schleife werden die fünf Stellen des Sync-Bits durchlaufen. Die Differenz zur Stelle, an der der stärkste Wert vorliegt, wird in _frequenzVerschiebung geschrieben. Im Folgenden wird noch sicher gestellt, dass diese Differenz nicht unter –4 bzw. über 4 liegt.
  • Figure DE102012016755B4_0010
  • Durch das aktive Sync-Bit wird die Auswertung der Werte veranlasst:
    Figure DE102012016755B4_0011
  • Hier wird das Array frequenzIndexe[] mit den auszulesenden Werten angelegt. Danach wird das Array bits[] initialisiert. In seinen zehn Stellen wird vermerkt, welches Bit gerade eine 1 darstellt, welches eine 0.
  • Figure DE102012016755B4_0012
  • Mit einer for-Schleife werden nun alle zehn Positionen durchlaufen. In die Variable temp wird die Stärke der aktuellen Position gespeichert. Wichtig: Hierbei wird auch die Stärke der vorherigen und der folgenden Position mitgezählt. Außerdem wird mit der Variable _frequenzVerschiebung die Doppler-Verschiebung eingerechnet, um mögliche Verschiebungen abzufangen.
  • Der Vergleichswert wird mit rauschen festgelegt. Hier werden die jeweils vor und hinter der Bit-Frequenz liegenden Frequenzen genommen. Dieser wird mit 5 multipliziert, um sicherzugehen, dass die Bit-Frequenz deutlich über den Rauschwerten liegt.
  • Figure DE102012016755B4_0013
  • Jetzt wird die Stärke der Bit-Frequenz mit der Stärke der Rausch-Frequenzen verglichen und der Ausgabe-Wert in das Bit-Array gesetzt.
  • Figure DE102012016755B4_0014
  • Hier werden die Paritätsbits eingesetzt. Nur wenn der Rest der ganzzahligen Division (Modulo) durch 4 aller Inhaltsbits den Wert der Paritätsbits ergibt, geht es weiter:
    Figure DE102012016755B4_0015
    Figure DE102012016755B4_0016
  • Aus den ersten drei Bits wird der Dezimal-Wert der anzuwendenden Funktion errechnet. Dieser geht dann in eine switch-Abfrage, die die Bits an die entsprechenden Klassen weitergibt. Folgende Funktionen sind in der Anwendung implementiert: Aufruf ortsabhängiger Informationen, Lichtermeer mit Kamera-Leuchte, Ton-Wiedergabe, Abstimmung, Text-Anzeige.
  • Figure DE102012016755B4_0017
  • Das beschriebene Verfahren eignet sich besonders zur Durchführung der oben beschriebenen Anwendungsszenarien. Darüber hinaus besteht auch die Möglichkeit, ein entsprechendes Tonsignal über TV oder Radio auszustrahlen, um mobile Endgeräte wie Smartphones entsprechend anzusteuern.
  • Bezugszeichenliste
  • 1
    Tonsystem
    2
    Bühne
    4
    Schallgenerator
    6
    Computer
    8
    Tonsignal
    10
    mobiles Endgerät
    12
    hörbarer Bereich
    14
    Programmstart
    16
    Bildschirminhalt
    18
    Audioanalyse
    20
    Fourier-Transformation
    22
    Funktion
    24
    Ton
    26
    Blitzlampe
    28
    Datenbit
    30
    Array-Position
    P1, P2, P3
    Position

Claims (6)

  1. Verfahren zur Übertragung eines digitalen Signals von einem Sender (1, 10) zu einem Empfänger (1, 10), wobei das digitale Signal eine Mehrzahl von Datenbits (28) umfasst, jedem der Datenbits (28) eine vorgegebene Frequenz in einem Tonsignal (8) zugeordnet wird, und das Tonsignal (8) vom Sender (1, 10) an den Empfänger (1, 10) akustisch übertragen wird, dadurch gekennzeichnet, dass die in dem jeweiligen Tonsignal (8) verwendeten Frequenzen größer als 18 kHz und kleiner als 20 kHz sind und der Zustand des jeweiligen Datenbits (28) anhand des Schalldruckverhältnisses einer im Bereich der dem jeweiligen Datenbit (28) zugeordneten Frequenz zu in einem vorgegebenen Frequenzabstand unter und über der jeweiligen Frequenz liegenden Vergleichsfrequenzen ermittelt wird.
  2. Verfahren nach Anspruch 1, bei dem der Empfänger (1, 10) einen Verschiebungswert einer einem Datenbit (28) zugeordneten, empfangenen Frequenz gegenüber der dem Datenbit (28) zugeordneten vorgegebenen Frequenz ermittelt und die den übrigen Datenbits (28) zugeordneten vorgegebenen Frequenzen anhand des Verschiebungswerts korrigiert.
  3. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die den jeweiligen Datenbits (28) zugeordneten Frequenzen einen Mindestabstand von 60, vorzugsweise 100 Hz haben.
  4. Computerprogrammprodukt, welches in den Speicher eines mobilen Endgeräts (10) geladen werden kann und Softwarecodeabschnitte umfasst, die, wenn sie ausgeführt werden, das mobile Endgerät (10) zum Zusammenwirken als Sender (1, 10) oder Empfänger (1, 10) in dem Verfahren nach einem der vorhergehenden Ansprüche ertüchtigen.
  5. Computerprogrammprodukt, welches in den Speicher eines Tonsystems (1) mit einem Schallgenerator (4) und/oder einem Schalldetektor geladen werden kann und Softwarecodeabschnitte umfasst, die, wenn sie ausgeführt werden, das Tonsystem (1) zum Zusammenwirken als Sender (1, 10) oder Empfänger (1, 10) in dem Verfahren nach einem der vorhergehenden Ansprüche ertüchtigen.
  6. Vorrichtung (1, 10) mit Mitteln, die die Vorrichtung (1, 10) zum Zusammenwirken als Sender (1, 10) oder Empfänger (1, 10) in dem Verfahren nach einem der vorhergehenden Ansprüche ertüchtigen.
DE102012016755.5A 2012-08-27 2012-08-27 Verfahren zur Übertragung eines digitalen Signals von einem Sender zu einem Empfänger Expired - Fee Related DE102012016755B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102012016755.5A DE102012016755B4 (de) 2012-08-27 2012-08-27 Verfahren zur Übertragung eines digitalen Signals von einem Sender zu einem Empfänger

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012016755.5A DE102012016755B4 (de) 2012-08-27 2012-08-27 Verfahren zur Übertragung eines digitalen Signals von einem Sender zu einem Empfänger

Publications (2)

Publication Number Publication Date
DE102012016755A1 DE102012016755A1 (de) 2013-06-27
DE102012016755B4 true DE102012016755B4 (de) 2014-07-31

Family

ID=48575685

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012016755.5A Expired - Fee Related DE102012016755B4 (de) 2012-08-27 2012-08-27 Verfahren zur Übertragung eines digitalen Signals von einem Sender zu einem Empfänger

Country Status (1)

Country Link
DE (1) DE102012016755B4 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9973887B2 (en) 2016-01-21 2018-05-15 Google Llc Sharing navigation data among co-located computing devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226177A (en) * 1990-03-27 1993-07-06 Viewfacts, Inc. Real-time wireless audience response system
DE19904747A1 (de) * 1998-08-21 2000-02-24 Rudolf Bannasch Verfahren zur Übertragung von Informationen sowie ein geeignetes System hierfür
US20030117987A1 (en) * 2001-10-23 2003-06-26 Gavin Brebner Conveying information to a communication device using sonic representations
US20050100117A1 (en) * 2003-10-27 2005-05-12 Jensen James R. System and method for encoding and decoding digital data using acoustical tones
US20110238192A1 (en) * 2010-03-25 2011-09-29 Mehul Shah Systems and Methods for Providing Access to Resources Through Enhanced Audio Signals

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226177A (en) * 1990-03-27 1993-07-06 Viewfacts, Inc. Real-time wireless audience response system
DE19904747A1 (de) * 1998-08-21 2000-02-24 Rudolf Bannasch Verfahren zur Übertragung von Informationen sowie ein geeignetes System hierfür
US20030117987A1 (en) * 2001-10-23 2003-06-26 Gavin Brebner Conveying information to a communication device using sonic representations
US20050100117A1 (en) * 2003-10-27 2005-05-12 Jensen James R. System and method for encoding and decoding digital data using acoustical tones
US20110238192A1 (en) * 2010-03-25 2011-09-29 Mehul Shah Systems and Methods for Providing Access to Resources Through Enhanced Audio Signals

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Appocalypse: RTAP. Online Artikel. o.D. URL: http://appocalypse.net/apps/614671-rtap *
Geere D. : Sonic Notify - the inaudible QR codes only an app can hear. Online Article in WIRED.CO.UK. 08.02.2012.URL: http://www.wired.co.uk/news/archive/2012-02/08/sonicnotify-audio *

Also Published As

Publication number Publication date
DE102012016755A1 (de) 2013-06-27

Similar Documents

Publication Publication Date Title
EP1977626B1 (de) Verfahren zur aufnahme einer tonquelle mit zeitlich variabler richtcharakteristik und zur wiedergabe
EP3005732B1 (de) Vorrichtung und verfahren zur raumselektiven audiowiedergabe
DE102016118712A1 (de) Sonar basierend auf Ultraschallrauschen
DE102016101316A1 (de) Informationsverarbeitungsverfahren und elektronisches Gerät
EP2754151B2 (de) Vorrichtung, verfahren und elektroakustisches system zur nachhallzeitverlängerung
EP1808853B1 (de) Beschallungsanlage, Beschallungsverfahren und Computerprogramm zur Verbesserung der Sprachqualität und/oder Verständlichkeit von Sprachdurchsagen
DE102017124621A1 (de) Fühlbare Basswiedergabe
EP3158778A1 (de) Vorrichtung und verfahren zum erzeugen und abspielen einer kopiergeschützten wellenfeldsynthese-audiodarstellung
DE102012016755B4 (de) Verfahren zur Übertragung eines digitalen Signals von einem Sender zu einem Empfänger
EP1706951A1 (de) Digitales mikrofon
DE102013225031B4 (de) Kommunikationsverfahren, und Kommunikationssystem
DE112019004139T5 (de) Signalverarbeitungsvorrichtung, signalverarbeitungsverfahren und programm
DE112018003068T5 (de) Fortgeschrittene paketbasierte probenaudioverdeckung
EP3232691B1 (de) Verfahren zur ermittlung der raumimpulsantwort einer fahrgastzelle eines kraftfahrzeugs
DE102005060036B4 (de) Verfahren und Gerät zur Audiosignalverarbeitung
DE202020101973U1 (de) System, Endgerät und Auswahleinrichtung für ein Echtzeit-Feedback
DE102019107173A1 (de) Verfahren und Vorrichtung zum Erzeugen und Ausgeben eines Audiosignals zum Erweitern des Höreindrucks bei Live-Veranstaltungen
DE10254407A1 (de) Vorrichtung und Verfahren zum Unterdrücken einer Rückkopplung
DE102022000776A1 (de) Virtuelle akustische Zuschauerkulisse
DE102017214181A1 (de) Beschallungsanlage zur Beschallung eines Beschallungsbereichs, Verfahren zur Beschallung eines Beschallungsbereichs und Computerprogramm zur Durchführung des Verfahrens
EP1900250B1 (de) Elektroakustisches verfahren
DE940048C (de) Vorrichtung zur stereophonischen Schalluebertragung
DE102008050425A1 (de) Vorrichtung zur aktiven Reduzierung von Fremdschall
EP3267621A1 (de) Verfahren zur erzeugung eines an einen realen endpunkt zu übermittelnden gesamtraumklangs, verwendung des verfahrens sowie telekonferenzsystem
DE1170469B (de) Elektronischer Nachhallerzeuger zum AEndern der Nachhallkennlinie akustischer Signale

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04W0004040000

Ipc: H04W0004000000

R016 Response to examination communication
R016 Response to examination communication
R230 Request for early publication
R081 Change of applicant/patentee

Owner name: ECK, SEBASTIAN, DE

Free format text: FORMER OWNER: SEBASTIAN ECK GBR (VERTRETUNGSBERECHTIGTER GESELLSCHAFTER), 60594 FRANKFURT, DE

Effective date: 20130527

Owner name: SEBASTIAN ECK GBR(VERTRETUNGSBERECHTIGTER GESE, DE

Free format text: FORMER OWNER: SEBASTIAN ECK GBR (VERTRETUNGSBERECHTIGTER GESELLSCHAFTER), 60594 FRANKFURT, DE

Effective date: 20130527

Owner name: FRANKE, MAX, DE

Free format text: FORMER OWNER: SEBASTIAN ECK GBR (VERTRETUNGSBERECHTIGTER GESELLSCHAFTER), 60594 FRANKFURT, DE

Effective date: 20130527

R082 Change of representative

Representative=s name: TERGAU & WALKENHORST PATENTANWAELTE - RECHTSAN, DE

Effective date: 20130527

R016 Response to examination communication
R016 Response to examination communication
R082 Change of representative

Representative=s name: TERGAU & WALKENHORST PATENTANWAELTE - RECHTSAN, DE

R018 Grant decision by examination section/examining division
R081 Change of applicant/patentee

Owner name: ECK, SEBASTIAN, DE

Free format text: FORMER OWNERS: FRANKE, MAX, 64289 DARMSTADT, DE; SEBASTIAN ECK GBR(VERTRETUNGSBERECHTIGTER GESELLSCHAFTER: SEBASTIAN ECK, DEUTSCHHERRNUFER 49, 60594 FRANKFURT), 60594 FRANKFURT, DE

Effective date: 20140325

Owner name: FRANKE, MAX, DE

Free format text: FORMER OWNERS: FRANKE, MAX, 64289 DARMSTADT, DE; SEBASTIAN ECK GBR(VERTRETUNGSBERECHTIGTER GESELLSCHAFTER: SEBASTIAN ECK, DEUTSCHHERRNUFER 49, 60594 FRANKFURT), 60594 FRANKFURT, DE

Effective date: 20140325

Owner name: ECK, SEBASTIAN, DE

Free format text: FORMER OWNER: MAX FRANKE, SEBASTIAN ECK GBR(VERTRETUNGSBE, , DE

Effective date: 20140325

Owner name: FRANKE, MAX, DE

Free format text: FORMER OWNER: MAX FRANKE, SEBASTIAN ECK GBR(VERTRETUNGSBE, , DE

Effective date: 20140325

R082 Change of representative

Representative=s name: TERGAU & WALKENHORST PATENTANWAELTE - RECHTSAN, DE

Effective date: 20140325

R082 Change of representative
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee