Frequenz- und Zeitauflösung kielread06 Sprachdatenbank Äußerungen K67*00* Spektra berechnen, N = 512 (Extension dft), N = 64 (Extension dft2) Template-Datei modifizieren, damit die neuen Tracks sichtbar sind (die Template dafür umbenennen). Segmentliste der [i:] Vokale erzeugen segs = emu.query("template", "k67*00*", "Phonetic=i:") Spektrale-Trackdatei, N = 512 segs.dftw = emu.track(segs, "dft") Spektrale-Trackdatei, N = 64 segs.dftn = emu.track(segs, "dft2") Spektrale Matrix, zeitlicher Mittelpunkt, N = 512 segs.dftw5 = dcut(segs.dftw, .5, prop=T) Spektrale Matrix, zeitlicher Mittelpunkt, N = 64 segs.dftn5 = dcut(segs.dftn, .5, prop=T) par(mfrow=c(1,2)) plot(segs.dftw5[1,0:3500], ylab="Intensitaet (dB)", xlab="Frequency (Hz)") plot(segs.dftn5[1,0:3500], xlab="Frequency (Hz)") 60 50 40 30 40 20 0 Intensitaet (dB) 60 70 Zwei Spektra nebeneinander vom ersten [i:], 0-3500 Hz 0 1000 2000 3000 Frequency (Hz) N = 512 Punkt Fenster 0 1000 2000 3000 Frequency (Hz) N = 64 Punkt Fenster N = 512 Punkt Fenster, 0-1000 Hz par(mfrow=c(1,1)) plot(segs.dftw5[1,0:1000], ylab="Intensitaet (dB)", xlab="Frequency (Hz)", type="h") f0 2e Harmonische 20 40 60 Die Frequenzen der Spektralkomponente? komp = trackfreq(segs.dftw) …vom sechsten komp[6] 0 Intensitaet (dB) f0 ist der 6e Spektralkomponent 0 200 400 600 Frequency (Hz) 800 1000 156.25 Hz Damit die Harmonischen im Spektrum erscheinen, muss das Fenster, mit dem das Spektrum berechnet wurde, mindestens zwei f0-Schwingungen enthalten. Warum erscheinen daher nicht die Harmonischen im N = 64 Fenster? Wenn f0 = 156.25 Hz, die Dauer einer Schwingung: 1000 * 1/156.25 6.4 ms Wir benötigen daher ein Fenster von mindestens 2 x 6.4 = 12.8 ms, damit die Harmonischen sichtbar sind. Wieviele Punkte bei 16000 Hz? N/fskHz = dauer (ms) N = fskHz x dauer (ms) N = 16 * 12.8 …also 256 Punkte, da bei einer FFT N [1] 204.8 einer Potenz zwei sein muss…