Benutzer-Werkzeuge

Webseiten-Werkzeuge


ss15:schallwerkzeuge

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:schallwerkzeuge [2015/10/02 12:28]
m.schramm
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. Wir haben diese Funktionen vielfach in unserem Projekt benutzt. In der Präambel werden einige Module importiert und globale Variablen gesetzt. Dannach findet man die Funktionen. Die Funktion ''​recordsnd''​ dient zur Aufnahme von akustischen Signalen über das Mikrofon. Über ''​wavwrite''​ lassen sich Aufnahmen als wav-Dateien speichern und über ''​wavread''​ wieder einlesen. ''​playsnd''​ ist für uns eine sehr wichtige Funktion, da sie ermöglicht Arrays mit Audio-Daten über den Lautsprecher abzuspielen. Ü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. Auch ''​sinewave''​ ist wichtig zur Schallerzeugung,​ da die Methode ein Sinus-Signal mit der gewünschten Frequenz liefert, welches dann wiedergegeben werden kann.+ 
 +===== 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.1443781730.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)