Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss15:tonerzeugung

Dies ist eine alte Version des Dokuments!


Tonerzeugung

code

Wir wissen, dass jeder Datentyp ein Vielfaches von 4 als Bit-Anzahl besitzt und damit eine gerade Anzahl hat. So endet bei einem ständigen Wechsel zwischen An/Aus die Takt-Frequenz immer gleich. Wenn wir nun neben der 0 und 1 Codierung eine Takt-Frequenz als zusätzliche Info miteinbringen wollen, so kommen wir auf 4 verschiedene Kombinationen an Tönen. Die erhaltene Bit-Liste aus der Datei wird deshalb umgeschrieben. Durch die Hinzugabe der Takt-Frequenz geht die 0 und 1 Codierung auch nicht verloren, da die Frequenzen keine Auswirkungen aufeinander haben. Sehr wichtig ist, dass auf jeder geraden Stelle der Liste die Takt-Frequenz gespielt wird, damit es auch damit endet. Dies ist für die Taktrückgewinnung relevant!

Legende:

0: 0-Codierung ohne Takt-Frequenz
1: 1-Codierung ohne Takt-Frequenz
2: 0-Codierung mit Takt-Frequenz
3: 1-Codierung mit Takt-Frequenz

def code(l):
	'''erzeugt aus der Bit-Liste l Töne'''
 
	a=0
 
	for y in l:
		if y == 0 and a%2 == 1: #jeder ungerade index wird geändert
			l[a] = 2
		if y == 1 and a%2 == 1: #jeder ungerade index wird geändert
			l[a] = 3
		a+=1
 
	# Erzeugung der Sinus-Signale
	signale=[sinewave(f_0, RATE, dauer_bit),sinewave(f_1, RATE, dauer_bit),(sinewave(f_0, RATE, dauer_bit)+sinewave(f_t, RATE, dauer_bit))/2,(sinewave(f_1, RATE, dauer_bit)+sinewave(f_t, RATE, dauer_bit))/2]
	signal=np.concatenate([signale[x] for x in l])
	playsnd(signal,RATE)
ss15/tonerzeugung.1442242507.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)