SciLab / FFT

OP #3295058
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
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
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

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.