Aufgabe 1 – Klirrfaktor
Durch Multiplikation wird unser cd_rec.wav mit Hilfe der wave_io.c lauter gemacht. Bei der ersten Multiplikation wird das Beispiel um 3 db lauter. Beim zweiten mal um 6 db und beim dritten mal um 9 db. Immer gemessen am Ausgangsfile.
Wenn die Verstärkung zu hoch ist, entsteht ein sog. Clipping. Auf folgenden Bilder wird das Phänomen gezeigt.
Dateien
Aufgabe 1 – Sinunsschwingnung
| Frequenz in Hz | Dezibel | Prozent |
| 1000 | -6 | 100 |
Frequenzen:
| Frequenz in Hz | Dezibel | Dezibel normiert | Prozent |
| 1000 | -4 | 0 | 100 |
| 3000 | -24 | -20 | 10 |
| 5000 | -34 | -30 | ~3,2 |
| 7000 | -40 | -36 | ~1,6 |
Frequenzen:
| Frequenz in Hz | Dezibel | Dezibel normiert | Prozent |
| 1000 | -3,5 | 0 | 100 |
| 3000 | -18 | -14,5 | ~18,8 |
| 5000 | -36 | -32,5 | ~2,3 |
| 7000 | -47 | -43,5 | ~0,7 |
Dateien:
Effektivwertberechnung des Klirrfaktors
Der Klirrfaktor wird durch Division der Effektivwerte ohne Grundwelle und der Effektivwerte mit Grundwelle errechnet.
Berechnung: 12 dB Verstärkung
Effektivwert ohne Grundwelle: 0,1882 + 0,0232 + 0,00072 = 0,035922.
Effektivwert mit Grundwelle: 12 + 0,1882 + 0,0232 + 0,00072 = 1,035922.
K = 0,316
Aufgabe 2 – Echo
Ein wichtiger Effekt in der Studiotechnik ist das Echo. Dabei wird zu einem Signal eine zeitverzögerte und in der Amplitude gedämpfte Überlagerung hinzugemischt: y(k)=x(k)+a*x(k-T)
wobei T eine ganze Zahl zwischen 1 und N sein kann.
Wave_io modifiziert, dass eine Verzögerung von 10ms und 200 ms entsteht.
Bei dem Einlesen der Dateien muss darauf geachtet werden, ob diese Stereo oder Mono sind. Wenn darauf nicht geachtet werden würde, dann wird im Stereo File nur ein >Kanal angesprochen werden und somit nicht das gewünschte Ergebnis erreicht werden.
|
Verzögerung |
File |
|
10 ms |
cdl10.wav |
|
200 ms |
cdl200.wav |
|
10 ms |
stimmel10.wav |
|
200 ms |
Stimmel200.wav |
Der entsprechende Code in der veränderten wave_io Datei:
//ECHO
//Echo von 10 ms bei 44100 Hz -> echo = 435
//Echo von 200 ms bei 44100 Hz -> echo = 8696
echo = 8696;
daempfung = 0.6;
new_wave = malloc(n_wace * sizeof(short));
for(i=0; i<n_wave; i++){
}
else { //rechts
}
}
else { //Mono
}
}
//Ende Echo
Berechnung der Verzögerungswerte
Abtastfrequenz von 44100 Hertz abgetastet entspricht Abtastung aller 1 / 44100 Sekunden,
~ alle 0,023 ms. Das bedeutet:
10 ms: 10 / 0,023 = 435 (434,78)
200 ms: 200 / 0,023 = 8696 (8695,65)
Aufgabe 3 – Einfache Filter
Auf Grund der vorgegebenen Formel wurden 2 einfache Filter erzeugt:
Filter A ist ein Tiefpassfilter (noise_tiefpass.wav)
Filter B ist ein Hochpassfilter (noise_hochpass.wav)
Frequenzspektrum: Original Noise.wav
Frequenzspektrum: noise_tiefpass.wav
Frequenzspektrum: noise_hochpass.wav
Code:
//ANFANG Einfaches FILTER
new_wave = malloc(n_wave * sizeof(short));
for(i=0; i<n_wave; i++){
//new_wave[i] = 0.5 * wave[i] – 0.45 * wave[i-1];
new_wave[i] = 0.5 * wave[i] + 0.45 * wave[i-1]; //aktiviert
}
//ENDE Einfaches FILTER





