Benutzer-Werkzeuge

Webseiten-Werkzeuge


ss15:schallwerkzeuge

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
ss15:schallwerkzeuge [2015/10/02 11:26]
m.schramm angelegt
ss15:schallwerkzeuge [2016/05/10 14:46] (aktuell)
Zeile 1: Zeile 1:
 ====== Schallwerkzeuge ====== ====== Schallwerkzeuge ======
-Die Datei ''​schallwerkzeuge.py''​ stammt aus der digitalen Feder von Stefan Born und ist, wie der Name schon vermuten lässt, eine Sammlung von allerlei nützlichen Werkzeugen um mit ''​pyaudio''​ Schall zu erzeugen und zu verarbeiten.+ 
 +===== 1. Über die Datei ===== 
 +Die Datei ''​schallwerkzeuge.py''​ stammt aus der digitalen Feder von Stefan Born und ist, wie der Name schon vermuten lässt, eine Sammlung von allerlei nützlichen Werkzeugen um mit ''​pyaudio''​ Schall zu erzeugen und zu verarbeiten. Wir haben diese Funktionen vielfach in unserem Projekt benutzt und wollen hier die einzelnen Komponenten beschreiben. 
 + 
 +===== 2. Präambel ===== 
 +In der Präambel werden einige Module importiert und globale Variablen gesetzt.
 <code python> <code python>
 #​!/​usr/​bin/​python #​!/​usr/​bin/​python
Zeile 42: Zeile 47:
 # praktisch: Nach Aufnahme oder Lesen werden diese Variablen ​ # praktisch: Nach Aufnahme oder Lesen werden diese Variablen ​
 # entsprechend gesetzt. # entsprechend gesetzt.
 +</​code>​
  
 +===== 3. Funktionen ===== 
 +==== 3.1 recordsnd ==== 
 +Die Funktion ''​recordsnd''​ dient zur Aufnahme von akustischen Signalen über das Mikrofon. 
 +<code python>
 def recordsnd(filename,​ time): def recordsnd(filename,​ time):
  '''​  '''​
Zeile 88: Zeile 97:
  '''​Schreibt ein wav-File aus einem numpy-array'''​  '''​Schreibt ein wav-File aus einem numpy-array'''​
  wavfile.write(filename,​ RATE, np.array(y*2**15,​ dtype=int))  wavfile.write(filename,​ RATE, np.array(y*2**15,​ dtype=int))
-  +</​code>​ 
- +==== 3.2 wavwrite und wavread ==== 
 +Über ''​wavwrite''​ lassen sich Aufnahmen als wav-Dateien speichern und über ''​wavread''​ wieder einlesen. 
 +<code python>
 def wavread(filename):​ def wavread(filename):​
  '''​Liest ein wav-File in ein numpy-Array'''​  '''​Liest ein wav-File in ein numpy-Array'''​
Zeile 106: Zeile 117:
   
  return np.array(y,​dtype=np.float)/​2**15  return np.array(y,​dtype=np.float)/​2**15
-  +</​code>​ 
-  +==== 3.3 playsnd ==== 
-  +''​playsnd''​ ist für uns eine sehr wichtige Funktion, da sie ermöglicht Arrays mit Audio-Daten über den Lautsprecher abzuspielen. 
- +<code python>
 def playsnd(y, r): def playsnd(y, r):
  '''​  '''​
Zeile 126: Zeile 137:
  stream.close()  stream.close()
  p.terminate()  p.terminate()
-  +</​code>​ 
- +==== 3.4 inspectsnd und inspectspec ==== 
 +Über ''​inspectsnd''​ lassen sich Aufnahmen als Graph visualisieren,​ ''​inspectspec''​ stellt dagegen das Frequenz-Spektrum der Aufnahme durch die [[https://​de.wikipedia.org/​wiki/​Diskrete_Fourier-Transformation|Diskrete Fourier-Transformation]] dar. 
 +<code python>
 def inspectsnd(y):​ def inspectsnd(y):​
  '''​Zeigt einen Plot von y'''​  '''​Zeigt einen Plot von y'''​
Zeile 166: Zeile 178:
  plt.plot(x,​ np.log10(B2[0:​n/​2]+eps))  plt.plot(x,​ np.log10(B2[0:​n/​2]+eps))
  plt.show()  plt.show()
- +</​code>​ 
 +==== 3.5 sinewave ==== 
 +Auch ''​sinewave''​ ist wichtig zur Schallerzeugung,​ da die Methode ein Sinus-Signal mit der gewünschten Frequenz liefert, welches dann wiedergegeben werden kann. 
 +<code python>
 def sinewave(f,​r,​d):​ def sinewave(f,​r,​d):​
  '''​erzeugt die Daten einer Sinusschwingung mit Frequenz f, Dauer d  '''​erzeugt die Daten einer Sinusschwingung mit Frequenz f, Dauer d
ss15/schallwerkzeuge.1443777997.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)