Benutzer-Werkzeuge

Webseiten-Werkzeuge


ss15:tonverarbeitung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ss15:tonverarbeitung [2015/10/05 20:45]
m.schramm [4. Queue]
ss15:tonverarbeitung [2016/05/10 14:46] (aktuell)
Zeile 14: Zeile 14:
  tdauer = 0.05 # Taktlänge in Sekunden  tdauer = 0.05 # Taktlänge in Sekunden
  tl = tdauer*RATE # Taktlänge in Samples  tl = tdauer*RATE # Taktlänge in Samples
- f_0 = 12900*tdauer # Frequenz zur codierung der 0 umgerechnet für das Frequenz-Spektrum in f+ f_0 = 13000*tdauer # Frequenz zur codierung der 0 umgerechnet für das Frequenz-Spektrum in f
  f_1 = 12800*tdauer # Frequenz zur codierung der 1 umgerechnet für das Frequenz-Spektrum in f  f_1 = 12800*tdauer # Frequenz zur codierung der 1 umgerechnet für das Frequenz-Spektrum in f
  
Zeile 44: Zeile 44:
  return l  return l
 </​code>​ </​code>​
 +{{:​ss15:​taktverschiebung.png?​direct&​500 |Signale mit Takteinteilung und Taktverschiebung}}
 ==== 3.2 Decodierung für Taktrückgewinnung 1.2 ==== ==== 3.2 Decodierung für Taktrückgewinnung 1.2 ====
 Diese Decodierungs-Funktion gleicht überwiegend der vorigen. Allerdings wird hier keine Taktverschiebung übergeben, sondern eine Liste ''​idx''​ mit konkreten Indizes zur Einteilung in Abschnitte. Nun werden die Indizes vom ersten bis zum vorletzen durchgegangen und die [[https://​de.wikipedia.org/​wiki/​Diskrete_Fourier-Transformation|Diskrete Fourier-Transformation]] auf den Abschnitt vom jeweils aktuellen bis zum nächsten Index angewendet. Weiter geht es äquivalent zur anderen decode-Funktion. Diese Decodierungs-Funktion gleicht überwiegend der vorigen. Allerdings wird hier keine Taktverschiebung übergeben, sondern eine Liste ''​idx''​ mit konkreten Indizes zur Einteilung in Abschnitte. Nun werden die Indizes vom ersten bis zum vorletzen durchgegangen und die [[https://​de.wikipedia.org/​wiki/​Diskrete_Fourier-Transformation|Diskrete Fourier-Transformation]] auf den Abschnitt vom jeweils aktuellen bis zum nächsten Index angewendet. Weiter geht es äquivalent zur anderen decode-Funktion.
Zeile 49: Zeile 50:
 def decode(y, idx): def decode(y, idx):
  '''​erzeugt aus der Aufnahme y eine Liste der übertragenen Bits'''​  '''​erzeugt aus der Aufnahme y eine Liste der übertragenen Bits'''​
- f_0 = 12900*tdauer # Frequenz zur codierung der 0+ f_0 = 13000*tdauer # Frequenz zur codierung der 0
  f_1 = 12800*tdauer # Frequenz zur codierung der 1  f_1 = 12800*tdauer # Frequenz zur codierung der 1
  f = []  f = []
Zeile 87: Zeile 88:
  l.append(1)  l.append(1)
 </​code>​ </​code>​
 +{{:​ss15:​decode.png?​direct&​500 |Signalintensitäten abschnittsweise und Schranken}}
 ===== 4. Queue ===== ===== 4. Queue =====
-Die Umsetzung der Queue basiert auf ''​microlistener_queue.py''​ von Stefan. Wir haben noch die Funktionen ''​get_frames''​ und ''​set_frames''​ ergänzt.+Die Umsetzung der Queue basiert auf ''​microlistener_queue.py''​ von Stefan. Wir haben noch die Funktionen ''​get_frames''​ und ''​set_frames''​ ergänzt. Über diese Klasse können wir Objekte erzeugen, die einen Stream von der Soundkarte erhalten und diesen kontinuierlich in die ''​queue''​ schreiben. Über ''​get_frames''​ kann man sich daraus immer ''​n''​ Frames zur Weiterverarbeitung holen, die dann zuerst zur Taktrückgewinnung kommen. Mit der Funktion ''​set_frames''​ werden Frames zurück in die ''​queue''​ geschrieben,​ die bei der Weiterverarbeitung übrig geblieben sind und beim nächsten Aufruf von ''​get_frames''​ verarbeitet werden. Leider haben wir das gesamte Programm bisher noch nicht mit Verwendung der Queue zum fehlerfreien Laufen gebracht.
 <code python> <code python>
 #​!/​usr/​bin/​python #​!/​usr/​bin/​python
Zeile 166: Zeile 168:
  
  def set_frames(self,​ r):  def set_frames(self,​ r):
- slef.queue = np.concatenate(r,​ self.queue)+ self.queue = np.concatenate(r,​ self.queue)
 </​code>​ </​code>​
ss15/tonverarbeitung.1444070714.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)