Gast
#1221881
Es ist wahrscheinlich eine recht triviale Verständnisfrage, aber das bereitet mir etwas Kopfzerbrechen. - Ich nehme in MatLab eine viersekündige Mikrofonaufnahme (normale Sprache) auf mit einer Samplerate von 44,1kHz. - Diese wird als wave-Datei gespeichert und dann wieder eingelesen. - Vor der FFT liegen somit 176400 Samples vor. - Diese teile ich in eine Framegröße von 441 Samples ein. - Das ganze noch mit einem Hammingfenster multipliziert und dann in eine 512-FFT eingelesen. - Daraus erhalte ich 512 komplexe Werte, wobei ich nur die ersten 257 Werte benutze und aus denen die Amplituden und Phasen berechne. (Nicht wundern wegen den vielleicht komischen Werten, das ist so gewollt.) Nun möchte ich das Amplitudenspektrum darstellen. Das funktioniert nun (übrigends für alle Frames) problemlos. Kopfzerbrechen bereitet mir nun die Einteilung der Frequenzachse. Die scheint nicht richtig zu sein, da bei einem normalen Satz (männlich) sehr viele Werte um 10kHz liegen. Wie genau berechne ich die Abstände dieser Frequenzwerte im Amplitudenspektrum? Bisher verwende ich als Frequenzbereich beim plot: 0:44100/512:44100/2 (diese Bereich wird in einem Array freq gespeichert) Der Hauptanteil liegt dann bei 10kHz. Problem ist auch, dass die Anzahl der Frequenzwerte den Anzahl der FFT entsprechen muss. plot(freq,amp) (amp enthält die 256 Amplitudenwerte) Wie krieg ich den Frequenzbereich so hin, dass er passt?