SciLab / FFT

OP #3295058
Lesenswert?

Hallo,

kann mir jmd. sagen weshalb Zeile 4 "nur" zu einer Verringerung der 
Sound-Qualität führt? Ich habe eigentlich erwartet, dass im Bereich 
20001 bis 421000 nichts zur hören ist. Ich vermute ich habe irgendwo 
einen grundlegenden Denkfehler ;)

# Einlesen der ersten 441000 Samples
1: [Y,Fs,bits]=wavread("old.wav",441000)
# Durchführung der FFT -> Überführung in den Frequenzbereich
2: FFT=fft(Y)
# Lediglich eine neue Zuweisung
3: FFT_filtered=FFT
# Die Arrayfelder 200001 bis 421000 "nullen"
4: FFT_filtered(20001:421000)=0
# Durchführung der inversen FFT -> Rückführung in den Zeitbereich
5: Y_filtered=real(ifft(FFT_filtered))
# Abspeichern des Ergebnisses in einer neuen wav-Datei
6: wavwrite(Y_filtered, Fs, "new.wav")
OP #3295359
Lesenswert?

Hallo Kai,

danke für die Antwort. Wenn ich aber die Originaldatei und das 
modifizierte File beispielsweise mit Audacity einer Frequenzanalyse 
unterziehe, liegt das Original bei +/- 20kHz und das bearbeitete File 
bei +/- 2.5kHz.

Wenn ich Dich richtig verstanden habe, dann müssten aber mind. Anteile 
bis 10kHz zu sehen sein?

Gruss
Florian
Angehängte Dateien:
#3295381
Lesenswert?

Wenn dein Signal mit 44,1 kHz abgetastet ist und du davon 441000 Samples 
verwendest, dann sind das 10 Sekunden.

Das Spektrum hat gleich viele Punkte wie das Originalsignal, also auch 
441000 Punkte, die Auflösung im Frequenzbereich ist 0,1 Hz (1 / 10 s).

Florian M. schrieb:
> FFT_filtered(20001:421000)=0

Der Array-Index 20000 entspricht 2 kHz.

Das Spektrum einer diskreten Fouriertransformation ist periodisch mit 
der Abtastfrequenz, deshalb entspricht der Index 421000 der Frequenz -2 
kHz.

Du Filterst also alle positiven Frequenzen oberhalb 2 kHz weg und die 
negativen Frequenzen unterhalb -2 kHz.

Vermutlich ist das nicht das, was du haben möchtest.

Teste es mal so:
  FFT_filtered(200001:241000)=0

Damit werden nur die Frequenzen oberhalb 20 kHz (und unterhalb -20 kHz) 
weggefiltert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren